<?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>204140</bug_id>
          
          <creation_ts>2019-11-12 21:01:44 -0800</creation_ts>
          <short_desc>[LFC][Invalidation] Introduce InvalidationState and Context</short_desc>
          <delta_ts>2019-11-13 10:39:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589761</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-12 21:01:44 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589762</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-12 21:02:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/57142106&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589763</commentid>
    <comment_count>2</comment_count>
      <attachid>383426</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-12 21:05:16 -0800</bug_when>
    <thetext>Created attachment 383426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589873</commentid>
    <comment_count>3</comment_count>
      <attachid>383458</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-13 08:10:18 -0800</bug_when>
    <thetext>Created attachment 383458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589897</commentid>
    <comment_count>4</comment_count>
      <attachid>383461</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-13 09:28:57 -0800</bug_when>
    <thetext>Created attachment 383461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589932</commentid>
    <comment_count>5</comment_count>
      <attachid>383461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-13 10:39:52 -0800</bug_when>
    <thetext>Comment on attachment 383461
Patch

Clearing flags on attachment: 383461

Committed r252415: &lt;https://trac.webkit.org/changeset/252415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589933</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-13 10:39:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383426</attachid>
            <date>2019-11-12 21:05:16 -0800</date>
            <delta_ts>2019-11-13 08:10:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204140-20191112210503.patch</filename>
            <type>text/plain</type>
            <size>55002</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NjMDBmZmY4ZTgwNzUz
M2I5NGVjNzg1ZWYwOTIwZGU0NTlhOTMwNC4uN2ViZDFjMmNmNTRlMTk5YmVkNDBjNDgwMDRhMWVj
NzY0ZjRjYTcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTExLTEyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW52YWxpZGF0aW9u
XSBJbnRyb2R1Y2UgSW52YWxpZGF0aW9uU3RhdGUgYW5kIENvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTcxNDIxMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0ludmFsaWRhdGlvbi5oOiBSZW1vdmVk
LgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6c3R5bGVDaGFuZ2VkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojp1cGRhdGVBbGwpOiBEZWxldGVkLgorICAg
ICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24u
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBsYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNv
bnRleHQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW52YWxpZGF0aW9uQ29udGV4dDo6SW52YWxpZGF0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkludmFsaWRhdGlvbkNvbnRleHQ6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkludmFsaWRhdGlvbkNvbnRleHQ6OmNvbnRlbnRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uQ29udGV4dDo6c3VidHJlZUNo
YW5nZWQpOgorICAgICAgICAqIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4
dC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lSW52YWxpZGF0aW9uLmguCisgICAgICAgICogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZh
bGlkYXRpb25TdGF0ZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFi
bGVmb3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW52YWxpZGF0aW9uU3RhdGU6OkludmFsaWRhdGlvblN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uU3RhdGU6Om1hcmtOZWVkc1VwZGF0ZSk6CisgICAg
ICAgICogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlv
bi5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbnZhbGlkYXRpb25TdGF0ZTo6Zm9ybWF0
dGluZ0NvbnRleHRSb290cyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpwcmludExheW91
dFRyZWVGb3JMaXZlRG9jdW1lbnRzKToKKwogMjAxOS0xMS0xMSAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6YWRk
SW5saW5lUnVuIHNob3VsZCB0YWtlIGEgdW5pcXVlX3B0cjxEaXNwbGF5OjpSdW4+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDI2ODEyYWU4OTk5NWQ4NzlmOTQwYmVjN2RkZWVlOTFhMzI0MDU0MmQuLmI4ODRh
OTU3NzBlNGZhM2U1ZGMxZjg2NDc0ZjkyZGU3ZjhhZDQ4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
NDM1LDcgKzE0MzUsNiBAQCBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
U3RhdGUuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3Bw
Ci1sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcAogbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50
ZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5jcHAKQEAgLTE0NDYsMTMgKzE0NDUs
MTQgQEAgbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWly
a3MuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3Bw
Ci1sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZS5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2Vy
LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5jcHAKIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKK2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9u
Q29udGV4dC5jcHAKK2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRD
b250YWluZXIuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZC5jcHAKQEAgLTE0
NjEsNyArMTQ2MSw2IEBAIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5j
cHAKIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAotbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUludmFsaWRhdGlvbi5jcHAKIAogbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlv
bi5jcHAKIGxvYWRlci9DYW52YXNBY3Rpdml0eVJlY29yZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MTA0MzIxOTVkZDAx
OWUzZTUwMzc2MzI0NDM3ZmI2MGViYWFiMjgyLi4xMGEyZGNmM2RlYjc1OTA5MTBhYzk4NDY4ZTkx
MTc5Y2UxNjRlZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNjksMTUgKzM2OSwxMiBAQAogCQkwRkZENEQ2MTE4NjUxRkEz
MDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZFIC8q
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGlj
VVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTBGQjA4NEExNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsK
IAkJMTEyQjM0RDUxRTYwQjk4MzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTJCMzRE
NDFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaCAqLzsgfTsK
LQkJMTEzMTBDRjEyMEJBNEExQjAwNjVBOEQwIC8qIEludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Rjc4MDUyMDlDQkNCRDAwNzM5
QzEzIC8qIEludmFsaWRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExMzEwQ0YyMjBCQTRBMzIwMDY1QThEMCAvKiBMYXlvdXRUcmVlQnVp
bGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEx
MDBGRDcyMDk1MTRERjAwODFBQTZDIC8qIExheW91dFRyZWVCdWlsZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjMyMEJBNEEzNzAw
NjVBOEQwIC8qIExheW91dFJlcGxhY2VkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMTFDNjE1NjIwQUQxQUUxMDA1QjgyRkEgLyogTGF5b3V0UmVwbGFj
ZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
MTMxMENGNDIwQkE0QTNEMDA2NUE4RDAgLyogTGF5b3V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2
QyAvKiBMYXlvdXRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1QThEMCAvKiBMYXlvdXREZXNjZW5k
YW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDExQjA0MkZCMjBCMEUyMTQwMDgyOEE2QiAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMx
MENGNjIwQkE0QTU2MDA2NUE4RDAgLyogTGF5b3V0Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGQzkyMDkyN0NCQzAwODFB
QTZDIC8qIExheW91dENoaWxkSXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGNzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0
QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkx
MTMxMENGODIwQkE0QTZBMDA2NUE4RDAgLyogSW5saW5lSW52YWxpZGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTIzQUZEQzIwOUFCQkJBMDA3
MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMTEzMTBDRjkyMEJBNEE3RDAwNjVBOEQwIC8qIEJsb2Nr
SW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxMTIzQUZEOTIwOUFCQjIwMDA3MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTM0MDlEQTIw
M0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMzQwOUQ4MjAzRTAzODAw
MEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oICovOyB9OwogCQkxMTNE
MEI1MjFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzRDBCNTAxRjlGREQyQjAw
RjYxMUJCIC8qIEZyYW1lVmlld0xheW91dENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTVDRkE2QTIwOEFGN0QwMDAxRTY5OTEgLyog
Rm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExNUNGQTY4MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDI5
LDYgKzIwMjYsOCBAQAogCQk2Rjc3ODY4ODIzNDkxQUQ4MDA0RDk2MzYgLyogRGlzcGxheVBhaW50
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNzc4
Njg3MjM0OTFBRDcwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0M2MjA4QzI5NTcwMDJGMjlB
QiAvKiBMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkY3Q0EzQzQyMDhDMjk1NjAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQ0EyMDhD
MkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk2Rjk1REU0RDIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxp
ZGF0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkY5NURFNEIyMzdCODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2Rjk1REU0
RTIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTVERTRDMjM3Qjg4OUMwMEU1MTdFMSAv
KiBJbnZhbGlkYXRpb25TdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGOTk1QTE2MUE3MDc1NjIwMEE3MzVGNCAvKiBXZWJHTFN5bmMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTk1QTE0MUE3
MDc1NjIwMEE3MzVGNCAvKiBXZWJHTFN5bmMuaCAqLzsgfTsKIAkJNkY5OTVBMjAxQTcwNzhCMTAw
QTczNUY0IC8qIFdlYkdMUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGOTk1QTE4MUE3MDc4QjEwMEE3MzVGNCAvKiBXZWJHTFF1ZXJ5LmggKi87
IH07CiAJCTZGOTk1QTIyMUE3MDc4QjEwMEE3MzVGNCAvKiBXZWJHTFNhbXBsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTk1QTFBMUE3MDc4QjEw
MEE3MzVGNCAvKiBXZWJHTFNhbXBsZXIuaCAqLzsgfTsKQEAgLTU4NTcsMTAgKzU4NTYsNiBAQAog
CQkxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTExQzYxNTYyMEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExheW91dFJlcGxhY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEx
MUM2MTU3MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRSZXBsYWNlZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMYXlvdXRSZXBsYWNlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTExMjNBRkQ5MjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxMTIzQUZEQTIwOUFCQjIwMDA3MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmxvY2tJbnZhbGlkYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUludmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUludmFsaWRhdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMkIzNEQwMUU2MEI4QTcwMEJCMzEwQSAvKiBTaW1w
bGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0
UGFnaW5hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5l
TGF5b3V0UGFnaW5hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlE
NzIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg4NSw3ICs1ODgwLDYgQEAKIAkJMTE1Q0ZBODky
MDhCOTIxQTAwMUU2OTkxIC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTExNUNGQTk1MjA4Qjk1MkIwMDFFNjk5MSAvKiBMYXlvdXRCb3guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGF5b3V0Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNGQTk2MjA4
Qjk1MkIwMDFFNjk5MSAvKiBMYXlvdXRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0
Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTE1Rjc4MDUyMDlDQkNCRDAw
NzM5QzEzIC8qIEludmFsaWRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnZhbGlkYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5MzQwNzYxRkU4QjkyMzAwOTM1RjFFIC8q
IFJlbmRlclRyZWVCdWlsZGVyVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJl
ZUJ1aWxkZXJUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExOTM0MDc3
MUZFOEI5MjMwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclRhYmxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclRyZWVCdWlsZGVyVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTE5MzQwODcxRkVCMzU1RDAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTI3MCw2ICs5MjY0LDggQEAKIAkJNkY3Q0EzQzkyMDhDMkIy
RTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkY4RjQ2MDEyMUIwM0JCNDAwNDFBQzNBIC8qIEZvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY4RjQ2MDMyMUIwM0JDNjAwNDFBQzNBIC8qIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTZGOTVERTRCMjM3Qjg4OUIwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludmFsaWRhdGlvbkNvbnRleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY5NURFNEMyMzdCODg5QzAwRTUxN0UxIC8qIEludmFs
aWRhdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludmFsaWRh
dGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGOTk1QTA5MUE3MDcw
RTYwMEE3MzVGNCAvKiBXZWJHTFF1ZXJ5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
TFF1ZXJ5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMEExQTcwNzBF
NjAwQTczNUY0IC8qIFdlYkdMU2FtcGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
R0xTYW1wbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMEIxQTcw
NzBFNjAwQTczNUY0IC8qIFdlYkdMU3luYy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
R0xTeW5jLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMDIsMTcgKzkyOTgs
MTcgQEAKIAkJNkZCNUUyMTIyMjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8qIEZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzVDQTkyMjJFMzU5
OTMwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTZGQzVDQTkzMjJFMzU5OTMwMEIxM0UxMSAvKiBUYWJsZUludmFsaWRhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUYWJsZUludmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTExIC8qIFRhYmxlRm9y
bWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nQ29udGV4dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1Q0E5NjIyRTM1OTk1MDBCMTNFMTEg
LyogVGFibGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5n
U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkZDNUNBOTcyMkUzNTk5NTAw
QjEzRTExIC8qIFRhYmxlSW52YWxpZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxl
SW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDRTFBMTgy
MjYxOEFCMzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJ1
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkQ5Q0Q1MjIyN0UyMUM4MDBFNTM5
NTcgLyogRGlzcGxheVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
cGxheVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3
QjAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVCcmVha2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRTdBQTI2MjFDMzdCNjMwMDI5NkRDRCAv
KiBNYXJnaW5UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJnaW5UeXBlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RkU3Q0ZBMDIxNzdFRUYxMDA1QjE1NzMgLyogSW5saW5lSXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVJdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRThFNkY3MjM3QkE1RTgwMDc1OEQyNiAvKiBJbnZh
bGlkYXRpb25Db250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludmFsaWRhdGlvbkNvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkU4RTZGODIzN0JBNkIyMDA3
NThEMjYgLyogSW52YWxpZGF0aW9uU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxp
ZGF0aW9uU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIy
MjExMDM1MDA0QzUwODIgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlv
dXRQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkZEQzQzRTIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0QXZvaWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjYwNSw2ICsxNjYwMSw3IEBACiAJCTEx
NUNGQTY2MjA4QUY3MjAwMDFFNjk5MSAvKiBsYXlvdXQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZGOTVERTRBMjM3Qjg4MzAwMEU1MTdFMSAvKiBpbnZh
bGlkYXRpb24gKi8sCiAJCQkJMTE1Q0ZBOTkyMDhCQzA5QTAwMUU2OTkxIC8qIGJsb2NrZm9ybWF0
dGluZyAqLywKIAkJCQkxMTk5RkE1ODIwOEUzQzRDMDAyMzU4Q0MgLyogZGlzcGxheXRyZWUgKi8s
CiAJCQkJNkZDRkMwNTUyMTJEQUNDMjAwNzY5NUQyIC8qIGZsb2F0cyAqLywKQEAgLTE2NjE3LDcg
KzE2NjE0LDYgQEAKIAkJCQk2RjhGNDYwMTIxQjAzQkI0MDA0MUFDM0EgLyogRm9ybWF0dGluZ0Nv
bnRleHRRdWlya3MuY3BwICovLAogCQkJCTExNUNGQTc1MjA4QUZFMzAwMDFFNjk5MSAvKiBGb3Jt
YXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc0MjA4QUZFMzAwMDFFNjk5MSAvKiBGb3Jt
YXR0aW5nU3RhdGUuaCAqLywKLQkJCQkxMTVGNzgwNTIwOUNCQ0JEMDA3MzlDMTMgLyogSW52YWxp
ZGF0aW9uLmggKi8sCiAJCQkJNkYyNkJCNjkyMzM0M0U1QTAwMkYyQkVBIC8qIExheW91dENvbnRl
eHQuY3BwICovLAogCQkJCTZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0
LmggKi8sCiAJCQkJNkY0QTVCRDUyMkY5RjE2QjAwQTgwRjI1IC8qIExheW91dFBoYXNlLmNwcCAq
LywKQEAgLTE2NjYwLDggKzE2NjU2LDYgQEAKIAkJCQk2RjhGNDYwMzIxQjAzQkM2MDA0MUFDM0Eg
LyogQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8sCiAJCQkJMTE1Q0ZBNzkyMDhC
OEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKIAkJCQkxMTVDRkE3
ODIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCAqLywKLQkJCQkxMTIz
QUZEQTIwOUFCQjIwMDA3MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24uY3BwICovLAotCQkJCTEx
MjNBRkQ5MjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlvbi5oICovLAogCQkJCTEx
NUNGQTg5MjA4QjkyMUEwMDFFNjk5MSAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmNwcCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gYmxvY2tmb3JtYXR0aW5nOwpAQCAtMTY2NzcsOCArMTY2NzEsNiBAQAog
CQkJCTZGMTBCMDg2MjJCODU2OEQwMDkwRTY5QyAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1
aXJrcy5jcHAgKi8sCiAJCQkJMTE1Q0ZBN0QyMDhCOEUxMDAwMUU2OTkxIC8qIElubGluZUZvcm1h
dHRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJMTE1Q0ZBN0MyMDhCOEUxMDAwMUU2OTkxIC8qIElubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oICovLAotCQkJCTExMjNBRkREMjA5QUJCQkEwMDczNkFDQyAvKiBJ
bmxpbmVJbnZhbGlkYXRpb24uY3BwICovLAotCQkJCTExMjNBRkRDMjA5QUJCQkEwMDczNkFDQyAv
KiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLywKIAkJCQk2RjdCOENFQzIzNjI2RTY2MDBDOUZGMTUg
LyogSW5saW5lSXRlbS5jcHAgKi8sCiAJCQkJNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElu
bGluZUl0ZW0uaCAqLywKIAkJCQk2RjBDRDY5MjIyOUVEMzE5MDBDNTk5NEUgLyogSW5saW5lTGlu
ZS5jcHAgKi8sCkBAIC0yMDc4OSw2ICsyMDc4MSwxNyBAQAogCQkJcGF0aCA9IGFuZ2xlOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNkY5NURFNEEyMzdCODgzMDAwRTUxN0Ux
IC8qIGludmFsaWRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJNkZFOEU2RjgyMzdCQTZCMjAwNzU4RDI2IC8qIEludmFsaWRhdGlvblN0YXRlLmNw
cCAqLywKKwkJCQk2RkU4RTZGNzIzN0JBNUU4MDA3NThEMjYgLyogSW52YWxpZGF0aW9uQ29udGV4
dC5jcHAgKi8sCisJCQkJNkY5NURFNEIyMzdCODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNv
bnRleHQuaCAqLywKKwkJCQk2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9u
U3RhdGUuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gaW52YWxpZGF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNkZDNUNBOTEyMkUzNTkzMzAwQjEzRTExIC8qIHRhYmxl
Zm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC0yMDc5OSw4ICsyMDgwMiw2IEBACiAJCQkJNkZDNUNBOTYyMkUzNTk5NTAwQjEzRTExIC8qIFRh
YmxlRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJNkY1QjdFQUEyMzAwQTc5RTAwNjdEOUMzIC8q
IFRhYmxlR3JpZC5jcHAgKi8sCiAJCQkJNkZCMjJFMzAyMzAwOTdFMzAwQzIwODY2IC8qIFRhYmxl
R3JpZC5oICovLAotCQkJCTZGQzVDQTk3MjJFMzU5OTUwMEIxM0UxMSAvKiBUYWJsZUludmFsaWRh
dGlvbi5jcHAgKi8sCi0JCQkJNkZDNUNBOTMyMkUzNTk5MzAwQjEzRTExIC8qIFRhYmxlSW52YWxp
ZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRhYmxlZm9ybWF0dGluZzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTAwOCw3ICsyOTAwOSw2IEBACiAJCQkJOTc2RDZDN0Yx
MjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCTExNUNGQTZF
MjA4QUZBQjcwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxMTVDRkE3QTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTExMzEwQ0Y5MjBCQTRBN0QwMDY1QThEMCAvKiBCbG9ja0lu
dmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1RTEwRTgxQkU4NzAwQjI1OTY1
IC8qIEJvcmRlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4OTU1NkVEMThENEE0NDAwMDc2
NEIwMyAvKiBCb3JkZXJFZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVEQjBFODFCN0VB
MDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkzNDAsNiArMjkz
NDAsNyBAQAogCQkJCTk0RTgzOTUxMURGQjJBMEUwMDdCQzZBNyAvKiBDU1NOYW1lc3BhY2VSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwMDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFn
ZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCNUJERDlCMjE2NThBMTUwMERENDI2MiAvKiBD
U1NQYWludENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk2Rjk1REU0RTIzN0I4ODlDMDBF
NTE3RTEgLyogSW52YWxpZGF0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCNkU4NzY5
MjE3NkQ2OTIwMDQyMEU1RSAvKiBDU1NQYWludEltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRCQUZEMENCMjE5MEVCRDYwMEMwQUI2NCAvKiBDU1NQYWludFNpemUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk0NkQzNzJFMUQ2Q0IyOTQwMDc3MDg0RiAvKiBDU1NQYXJzZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzAxNTYsNyArMzAxNTcsNiBAQAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBB
NDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTExNUNGQTdFMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTExMzEwQ0Y4MjBCQTRBNkEwMDY1QThEMCAvKiBJbmxpbmVJbnZh
bGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAv
KiBJbmxpbmVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODkxNjExMjBENjA4MDA2MEVD
RTUgLyogSW5saW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMENENjk1MjI5RUQz
MjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjI3LDcgKzMw
MjI3LDYgQEAKIAkJCQlFMTM0RjVBQjEyRUUzNDNGMDA0RUM1OEQgLyogSW50UmVjdEhhc2guaCBp
biBIZWFkZXJzICovLAogCQkJCUIyNzUzNTc1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3NjBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhh
c2guaCBpbiBIZWFkZXJzICovLAotCQkJCTExMzEwQ0YxMjBCQTRBMUIwMDY1QThEMCAvKiBJbnZh
bGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMEI0QUFCMThEQTFDQ0QwMDQzNERFMSAv
KiBJT1N1cmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMjFFNTdEMTgzRUQxRkYwMDFDMjg5
RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDVGRjQ5OTIxNjJFMkJF
MDA0QkQ4NkYgLyogSVNPQm94LmggaW4gSGVhZGVycyAqLywKQEAgLTMwODkwLDYgKzMwODg5LDcg
QEAKIAkJCQlCMkZBM0Q4NTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEODcwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVN
ZXJnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDg5MEFCNzVBNkYwMDBFNUFD
NCAvKiBKU1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY5NURF
NEQyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0MjI0MTg0MTA3RTc3RjQwMDc2NkE4NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDhCMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R0ZFT2Zmc2V0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEOEQwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvSW52YWxpZGF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGUwZGJmNzhjMDQwOWIxMTRlYWZlNWRhMDE4Mjk1MGExZTgyMDhhYmEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0lu
dmFsaWRhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewotCi1jbGFzcyBDb250YWlu
ZXI7Ci0KLXN0cnVjdCBJbnZhbGlkYXRpb25SZXN1bHQgewotICAgIGNvbnN0IENvbnRhaW5lciog
cm9vdDsKLX07Ci0KLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuY3BwCmluZGV4IGU0MzYyZWU3MDgxM2I1YWUzOThlZmNjNjVlMTE4NGE2ZTg4NjgxMDMuLmIw
N2M2NmNiNDY1MzNiNDEyNzMxZmQ5MzkwNGVhY2U4OGVmNGQ5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRl
LmgiCi0jaW5jbHVkZSAiQmxvY2tJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJEaXNwbGF5Qm94
LmgiCiAjaW5jbHVkZSAiRGlzcGxheVBhaW50ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1
ZGUgIklubGluZUludmFsaWRhdGlvbi5oIgotI2luY2x1ZGUgIkludmFsaWRhdGlvbi5oIgorI2lu
Y2x1ZGUgIkludmFsaWRhdGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJJbnZhbGlkYXRpb25TdGF0
ZS5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5o
IgogI2luY2x1ZGUgIkxheW91dFBoYXNlLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHJlZUJ1aWxkZXIu
aCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlICJUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGFi
bGVGb3JtYXR0aW5nU3RhdGUuaCIKQEAgLTU2LDQ2ICs1NiwyNCBAQCBMYXlvdXRDb250ZXh0OjpM
YXlvdXRDb250ZXh0KExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIHsKIH0KIAotdm9pZCBMYXlv
dXRDb250ZXh0OjpsYXlvdXQoKQordm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXQoY29uc3QgSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQogewogICAgIFBoYXNlU2NvcGUgc2Nv
cGUoUGhhc2U6OlR5cGU6OkxheW91dCk7CiAKLSAgICBBU1NFUlQoIW1fZm9ybWF0dGluZ0NvbnRl
eHRSb290TGlzdEZvckxheW91dC5jb21wdXRlc0VtcHR5KCkpOwotICAgIGZvciAoYXV0byYgbGF5
b3V0Um9vdCA6IG1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dCkKLSAgICAgICAg
bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGxheW91dFJvb3QpOwotICAgIG1fZm9ybWF0
dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dC5jbGVhcigpOworICAgIGF1dG8mIGZvcm1hdHRp
bmdDb250ZXh0Um9vdHNGb3JMYXlvdXQgPSBpbnZhbGlkYXRpb25TdGF0ZS5mb3JtYXR0aW5nQ29u
dGV4dFJvb3RzKCk7CisgICAgQVNTRVJUKCFmb3JtYXR0aW5nQ29udGV4dFJvb3RzRm9yTGF5b3V0
LmNvbXB1dGVzRW1wdHkoKSk7CisgICAgZm9yIChhdXRvJiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qg
OiBmb3JtYXR0aW5nQ29udGV4dFJvb3RzRm9yTGF5b3V0KQorICAgICAgICBsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dFN1YnRyZWUoZm9ybWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAotdm9pZCBMYXlv
dXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQ29udGFpbmVy
JiBsYXlvdXRSb290KQordm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4
dFN1YnRyZWUoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7Ci0gICAg
UkVMRUFTRV9BU1NFUlQobGF5b3V0Um9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkp
OwotICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChs
YXlvdXRSb290LCBsYXlvdXRTdGF0ZSgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChmb3JtYXR0aW5n
Q29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICBhdXRvIGZv
cm1hdHRpbmdDb250ZXh0ID0gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRl
eHRSb290LCBsYXlvdXRTdGF0ZSgpKTsKICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5G
bG93Q29udGVudCgpOwogICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dDb250
ZW50KCk7CiB9CiAKLXZvaWQgTGF5b3V0Q29udGV4dDo6c3R5bGVDaGFuZ2VkKGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBTdHlsZURpZmYgc3R5bGVEaWZmKQotewotICAgIFBoYXNlU2NvcGUgc2NvcGUo
UGhhc2U6OlR5cGU6OkludmFsaWRhdGlvbik7Ci0KLSAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUg
PSBsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckJveChsYXlvdXRCb3gpOwotICAgIGNv
bnN0IENvbnRhaW5lciogaW52YWxpZGF0aW9uUm9vdCA9IG51bGxwdHI7Ci0gICAgaWYgKGlzPEJs
b2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKQotICAgICAgICBpbnZhbGlkYXRp
b25Sb290ID0gQmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUobGF5b3V0Qm94LCBzdHlsZURp
ZmYsICp0aGlzLCBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGluZ1N0YXRl
KSkucm9vdDsKLSAgICBlbHNlIGlmIChpczxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRp
bmdTdGF0ZSkpCi0gICAgICAgIGludmFsaWRhdGlvblJvb3QgPSBJbmxpbmVJbnZhbGlkYXRpb246
OmludmFsaWRhdGUobGF5b3V0Qm94LCBzdHlsZURpZmYsICp0aGlzLCBkb3duY2FzdDxJbmxpbmVG
b3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpLnJvb3Q7Ci0gICAgZWxzZQotICAgICAg
ICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgIEFTU0VSVChpbnZhbGlkYXRpb25S
b290KTsKLSAgICBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQuYWRkKGludmFs
aWRhdGlvblJvb3QpOwotfQotCi12b2lkIExheW91dENvbnRleHQ6Om1hcmtOZWVkc1VwZGF0ZShj
b25zdCBCb3gmIGxheW91dEJveCwgT3B0aW9uU2V0PFVwZGF0ZVR5cGU+KQotewotICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCB0cmlnZ2VyIHByb3BlciBpbnZhbGlkYXRpb24gaW5zdGVhZCBvZiBq
dXN0IGFkZGluZyB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgdG8gdGhlIGRpcnR5IGxpc3Qu
IAotICAgIG1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dC5hZGQoJihsYXlvdXRC
b3guaXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgPyBkb3duY2FzdDxDb250YWluZXI+KGxheW91
dEJveCkgOiBsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpKTsKLX0KLQogc3RkOjp1
bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0
aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0
U3RhdGUmIGxheW91dFN0YXRlKQogewogICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3Qu
ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKQEAgLTE1Niw5ICsxMzQsMTEgQEAgdm9p
ZCBMYXlvdXRDb250ZXh0OjpydW5MYXlvdXQoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogICAg
IGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChMYXlvdXRVbml0KGxheW91dFJvb3Quc3R5
bGUoKS5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSkpOwogICAgIGRpc3BsYXlCb3guc2V0Q29udGVu
dEJveFdpZHRoKExheW91dFVuaXQobGF5b3V0Um9vdC5zdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLnZh
bHVlKCkpKTsKIAotICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQobGF5b3V0
U3RhdGUpOwotICAgIGxheW91dENvbnRleHQubWFya05lZWRzVXBkYXRlKGxheW91dFJvb3QpOwot
ICAgIGxheW91dENvbnRleHQubGF5b3V0KCk7CisgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9
IEludmFsaWRhdGlvblN0YXRlIHsgfTsKKyAgICBhdXRvIGludmFsaWRhdGlvbkNvbnRleHQgPSBJ
bnZhbGlkYXRpb25Db250ZXh0IHsgaW52YWxpZGF0aW9uU3RhdGUgfTsKKyAgICBpbnZhbGlkYXRp
b25Db250ZXh0LnN0eWxlQ2hhbmdlZChsYXlvdXRSb290LCBTdHlsZURpZmZlcmVuY2U6OkxheW91
dCk7CisKKyAgICBMYXlvdXRDb250ZXh0KGxheW91dFN0YXRlKS5sYXlvdXQoaW52YWxpZGF0aW9u
U3RhdGUpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IExheW91dENvbnRleHQ6
OnJ1bkxheW91dEFuZFZlcmlmeShjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggNWQzNTczMzYyYTRiMDdiYjgwMmEwMWI0
YTVlOGM0OGExMjIzYTY4Zi4uYjEyOGIwMGRiNTQ3YTNkMTFlNzc4ZGE2MzgzOGNkMzE3MTk1MDdi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC0yOSw3ICsyOSw2IEBA
CiAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM5LDkgKzM4LDggQEAgY2xhc3MgUmVuZGVyVmlldzsKIAogbmFtZXNwYWNlIExheW91dCB7
CiAKLWVudW0gY2xhc3MgU3R5bGVEaWZmOwotY2xhc3MgQm94OwogY2xhc3MgQ29udGFpbmVyOwor
Y2xhc3MgSW52YWxpZGF0aW9uU3RhdGU7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKIGNsYXNzIEZvcm1h
dHRpbmdDb250ZXh0OwogCkBAIC01OSwxOCArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgcGFpbnQoY29uc3QgTGF5b3V0U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRS
ZWN0JiBkaXJ0eVJlY3QpOwogCiAgICAgTGF5b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYpOwotICAg
IHZvaWQgbGF5b3V0KCk7Ci0KLSAgICBlbnVtIGNsYXNzIFVwZGF0ZVR5cGUgewotICAgICAgICBP
dmVyZmxvdyA9IDEgPDwgMCwKLSAgICAgICAgUG9zaXRpb24gPSAxIDw8IDEsCi0gICAgICAgIFNp
emUgICAgID0gMSA8PCAyCi0gICAgfTsKLSAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxV
cGRhdGVUeXBlPiB1cGRhdGVBbGwoKSB7IHJldHVybiB7IFVwZGF0ZVR5cGU6Ok92ZXJmbG93LCBV
cGRhdGVUeXBlOjpQb3NpdGlvbiwgVXBkYXRlVHlwZTo6U2l6ZSB9OyB9Ci0gICAgdm9pZCBtYXJr
TmVlZHNVcGRhdGUoY29uc3QgQm94JiwgT3B0aW9uU2V0PFVwZGF0ZVR5cGU+ID0gdXBkYXRlQWxs
KCkpOwotICAgIGJvb2wgbmVlZHNVcGRhdGUoY29uc3QgQm94JikgY29uc3Q7Ci0KLSAgICB2b2lk
IHN0eWxlQ2hhbmdlZChjb25zdCBCb3gmLCBTdHlsZURpZmYpOworICAgIHZvaWQgbGF5b3V0KGNv
bnN0IEludmFsaWRhdGlvblN0YXRlJik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEZv
cm1hdHRpbmdDb250ZXh0PiBjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXIm
IGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0U3RhdGUmKTsKIApAQCAtODMsNyArNzAsNiBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJ1bkxheW91dChMYXlvdXRTdGF0ZSYpOwogCiAg
ICAgTGF5b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQ29u
dGFpbmVyPiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQ7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52
YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tJbnZhbGlkYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDhhZjdm
YWMyNjFlZmJiY2U5NWQyMjQzZDU1ZDE2ZjQ5MzdlNmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCbG9ja0ludmFs
aWRhdGlvbi5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNp
bmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIkludmFsaWRhdGlvbi5o
IgotI2luY2x1ZGUgIkxheW91dEJveC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgot
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LW5hbWVzcGFjZSBMYXlvdXQgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQmxvY2tJ
bnZhbGlkYXRpb24pOwotCi1zdGF0aWMgYm9vbCBpbnZhbGlkYXRpb25TdG9wc0F0Rm9ybWF0dGlu
Z0NvbnRleHRCb3VuZGFyeShjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwg
Y29uc3QgQm94JiwgU3R5bGVEaWZmKQotewotICAgIFVOVVNFRF9QQVJBTShmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpOwotCi0gICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hl
c0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgT3B0
aW9uU2V0PExheW91dENvbnRleHQ6OlVwZGF0ZVR5cGU+IGNvbXB1dGVVcGRhdGVUeXBlKGNvbnN0
IEJveCYsIFN0eWxlRGlmZiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIHJldHVybiBM
YXlvdXRDb250ZXh0Ojp1cGRhdGVBbGwoKTsKLX0KLQotc3RhdGljIE9wdGlvblNldDxMYXlvdXRD
b250ZXh0OjpVcGRhdGVUeXBlPiBjb21wdXRlVXBkYXRlVHlwZUZvckFuY2VzdG9yKGNvbnN0IENv
bnRhaW5lciYsIFN0eWxlRGlmZiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIHJldHVy
biBMYXlvdXRDb250ZXh0Ojp1cGRhdGVBbGwoKTsKLX0KLQotSW52YWxpZGF0aW9uUmVzdWx0IEJs
b2NrSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURp
ZmYgc3R5bGVEaWZmLCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQotewotICAgIC8vIEludmFsaWRhdGUgdGhpcyBib3gg
YW5kIHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluIGFsbCB0aGUgd2F5IHVwIHRvIHRoZSBmb3Jt
YXR0aW5nIGNvbnRleHQgcm9vdCAoYW5kIGJleW9uZCBpZiBuZWVkZWQpLgotICAgIGxheW91dENv
bnRleHQubWFya05lZWRzVXBkYXRlKGxheW91dEJveCwgY29tcHV0ZVVwZGF0ZVR5cGUobGF5b3V0
Qm94LCBzdHlsZURpZmYsIGZvcm1hdHRpbmdTdGF0ZSkpOwotICAgIGZvciAoYXV0byogY29udGFp
bmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOyBjb250YWluaW5nQmxvY2s7
IGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpIHsK
LSAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4
dCgpICYmIGludmFsaWRhdGlvblN0b3BzQXRGb3JtYXR0aW5nQ29udGV4dEJvdW5kYXJ5KCpjb250
YWluaW5nQmxvY2ssIGxheW91dEJveCwgc3R5bGVEaWZmKSkKLSAgICAgICAgICAgIHJldHVybiB7
IGNvbnRhaW5pbmdCbG9jayB9OwotICAgICAgICBsYXlvdXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0
ZSgqY29udGFpbmluZ0Jsb2NrLCBjb21wdXRlVXBkYXRlVHlwZUZvckFuY2VzdG9yKCpjb250YWlu
aW5nQmxvY2ssIHN0eWxlRGlmZiwgZm9ybWF0dGluZ1N0YXRlKSk7Ci0gICAgfQotICAgIC8vIElu
dmFsaWRhdGlvbiBhbHdheXMgc3RvcHMgYXQgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyBudWxscHRyIH07Ci19Ci0K
LX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMWUyYTFjY2JhNWM2NTkxYjY2MWI1NWU1N2U0NDhhYmEyYTNkZTIwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShMQVlP
VVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotY2xhc3MgQm94OwotY2xh
c3MgQmxvY2tGb3JtYXR0aW5nU3RhdGU7Ci1jbGFzcyBMYXlvdXRDb250ZXh0Owotc3RydWN0IElu
dmFsaWRhdGlvblJlc3VsdDsKLWVudW0gY2xhc3MgU3R5bGVEaWZmOwotCi0vLyBUaGlzIGNsYXNz
IGltcGxlbWVudHMgYm94IGludmFsaWRhdGlvbiBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0
LgotY2xhc3MgQmxvY2tJbnZhbGlkYXRpb24gewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
QmxvY2tJbnZhbGlkYXRpb24pOwotcHVibGljOgotICAgIHN0YXRpYyBJbnZhbGlkYXRpb25SZXN1
bHQgaW52YWxpZGF0ZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIExheW91dENvbnRleHQmLCBCbG9j
a0Zvcm1hdHRpbmdTdGF0ZSYpOwotfTsKLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0
aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE5NGMzNGU0ZWE4MmM4ZmIx
Yzk5MDIyYTQ0ZDg4Mzc0NDMxMzFhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVJbnZhbGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24u
aCIKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAi
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiSW52YWxpZGF0aW9uLmgiCi0jaW5j
bHVkZSAiTGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgotI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFj
ZSBMYXlvdXQgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW5saW5lSW52YWxpZGF0
aW9uKTsKLQotSW52YWxpZGF0aW9uUmVzdWx0IElubGluZUludmFsaWRhdGlvbjo6aW52YWxpZGF0
ZShjb25zdCBCb3gmIGxheW91dEJveCwgU3R5bGVEaWZmLCBMYXlvdXRDb250ZXh0JiBsYXlvdXRD
b250ZXh0LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIGxheW91dENvbnRleHQubWFy
a05lZWRzVXBkYXRlKGxheW91dEJveCk7Ci0gICAgcmV0dXJuIHsgbnVsbHB0ciB9OwotfQotCi19
Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVkYzNmZjVjYjViNzEzMDY0MjhjYjljMWY2ZjQwZGZlN2UyNTVlZjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWNsYXNzIEJveDsK
LWNsYXNzIENvbnRhaW5lcjsKLWNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZTsKLWNsYXNzIExh
eW91dENvbnRleHQ7Ci1zdHJ1Y3QgSW52YWxpZGF0aW9uUmVzdWx0OwotZW51bSBjbGFzcyBTdHls
ZURpZmY7Ci0KLS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciBp
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LgotY2xhc3MgSW5saW5lSW52YWxpZGF0aW9uIHsKLSAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUludmFsaWRhdGlvbik7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIEludmFsaWRhdGlvblJlc3VsdCBpbnZhbGlkYXRlKGNvbnN0IEJveCYsIFN0eWxl
RGlmZiwgTGF5b3V0Q29udGV4dCYsIElubGluZUZvcm1hdHRpbmdTdGF0ZSYpOwotfTsKLQotfQot
fQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9u
L0ludmFsaWRhdGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRh
dGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmI4NzA2NTFmNGM3NTZi
NmQyZjYxMjc1MDRmMzI4NTIzMTA5MzM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkludmFs
aWRhdGlvbkNvbnRleHQuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQorCisjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEludmFsaWRhdGlvbkNvbnRleHQpOworCitJ
bnZhbGlkYXRpb25Db250ZXh0OjpJbnZhbGlkYXRpb25Db250ZXh0KEludmFsaWRhdGlvblN0YXRl
JiBpbnZhbGlkYXRpb25TdGF0ZSkKKyAgICA6IG1faW52YWxpZGF0aW9uU3RhdGUoaW52YWxpZGF0
aW9uU3RhdGUpCit7Cit9CisKK3ZvaWQgSW52YWxpZGF0aW9uQ29udGV4dDo6c3R5bGVDaGFuZ2Vk
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmZlcmVuY2UpCit7CisgICAgbV9pbnZhbGlk
YXRpb25TdGF0ZS5tYXJrTmVlZHNVcGRhdGUobGF5b3V0Qm94KTsKK30KKwordm9pZCBJbnZhbGlk
YXRpb25Db250ZXh0Ojpjb250ZW50Q2hhbmdlZChjb25zdCBCb3gmKQoreworfQorCit2b2lkIElu
dmFsaWRhdGlvbkNvbnRleHQ6OnN1YnRyZWVDaGFuZ2VkKGNvbnN0IEJveCYpCit7Cit9CisKK30K
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRhdGlv
bi9JbnZhbGlkYXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0
aW9uL0ludmFsaWRhdGlvbkNvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzE0NzZlYzNiYWRiOGU3M2M3
NmMxZWI5M2JjNmU2MTgzNjkyYWEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmgKQEAgLTAsMCArMSw1NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2VudW0gY2xhc3MgU3R5bGVEaWZmZXJlbmNlOworCituYW1lc3BhY2UgTGF5b3V0
IHsKK2NsYXNzIEJveDsKK2NsYXNzIEludmFsaWRhdGlvblN0YXRlOworCitjbGFzcyBJbnZhbGlk
YXRpb25Db250ZXh0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEludmFsaWRhdGlvbkNv
bnRleHQpOworcHVibGljOgorICAgIEludmFsaWRhdGlvbkNvbnRleHQoSW52YWxpZGF0aW9uU3Rh
dGUmKTsKKworICAgIHZvaWQgc3R5bGVDaGFuZ2VkKGNvbnN0IEJveCYsIFN0eWxlRGlmZmVyZW5j
ZSk7CisgICAgLy8gRklYTUU6IFdlIG1pZ2h0IGp1c3QgbWVyZ2UgdGhpcyB3aXRoIHN1YnRyZWVD
aGFuZ2VkLgorICAgIHZvaWQgY29udGVudENoYW5nZWQoY29uc3QgQm94Jik7CisgICAgLy8gRklY
TUU6IFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGZvciB0cmVlIGNoYW5nZXMgbGlrZSBnYWlu
aW5nIG9yIGxvc2luZyBkZXNjZW5kYW50cy4gCisgICAgdm9pZCBzdWJ0cmVlQ2hhbmdlZChjb25z
dCBCb3gmKTsKKworcHJpdmF0ZToKKyAgICBJbnZhbGlkYXRpb25TdGF0ZSYgbV9pbnZhbGlkYXRp
b25TdGF0ZTsKK307CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvblN0YXRlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NzkzODRlZTllMzNjNTQ3YzllYTA2MDNkOWViMTMzMjU2N2YzNGE5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5j
cHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJJbnZhbGlkYXRpb25TdGF0ZS5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKEludmFsaWRhdGlvblN0YXRlKTsKKworSW52YWxpZGF0aW9uU3RhdGU6OkludmFs
aWRhdGlvblN0YXRlKCkKK3sKK30KKwordm9pZCBJbnZhbGlkYXRpb25TdGF0ZTo6bWFya05lZWRz
VXBkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIEFTU0VSVCghbGF5b3V0Qm94Lmlz
SW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBqdXN0IGEg
cGxhY2Vob2xkZXIgaW1wbGVtZW50YXRpb24uCisgICAgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Rz
LmFkZCgmbGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKK30KKworfQorfQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFs
aWRhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFs
aWRhdGlvblN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlkYzBhODgzZDMyNzU5NzUwZTRhZjMzNmNjODY0
YmM1OWQzMzgzYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnZh
bGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEludmFs
aWRhdGlvblN0YXRlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEludmFsaWRhdGlvblN0
YXRlKTsKK3B1YmxpYzoKKyAgICBJbnZhbGlkYXRpb25TdGF0ZSgpOworCisgICAgdm9pZCBtYXJr
TmVlZHNVcGRhdGUoY29uc3QgQm94Jik7CisKKyAgICB1c2luZyBGb3JtYXR0aW5nQ29udGV4dFJv
b3RzID0gV2Vha0hhc2hTZXQ8Y29uc3QgQ29udGFpbmVyPjsgCisgICAgY29uc3QgRm9ybWF0dGlu
Z0NvbnRleHRSb290cyYgZm9ybWF0dGluZ0NvbnRleHRSb290cygpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9ybWF0dGluZ0NvbnRleHRSb290czsgfQorCitwcml2YXRlOgorICAgIEZvcm1hdHRpbmdDb250
ZXh0Um9vdHMgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RzOworfTsKKworfQorfQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVp
bGRlci5jcHAKaW5kZXggOTM3Nzg2ODEzMDkwMGMxZGJiN2M4YmJjODQyNDhlN2Y0MzU1ZjA0MS4u
OTZkZWZhZDYwYTRhYzNiZDQzY2U1M2FkODZlNWIyYjA4NjYxMDBjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApA
QCAtNDAzLDcgKzQwMyw3IEBAIHZvaWQgcHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cygp
CiAgICAgICAgIGF1dG8mIHJlbmRlclZpZXcgPSAqZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKICAg
ICAgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0YXRlIHsgVHJlZUJ1aWxkZXI6OmNyZWF0
ZUxheW91dFRyZWUocmVuZGVyVmlldykgfTsKICAgICAgICAgbGF5b3V0U3RhdGUuc2V0UXVpcmtz
TW9kZShyZW5kZXJWaWV3LmRvY3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9kZSgpID8gTGF5b3V0
U3RhdGU6OlF1aXJrc01vZGU6OkxpbWl0ZWQgOiAocmVuZGVyVmlldy5kb2N1bWVudCgpLmluUXVp
cmtzTW9kZSgpID8gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6OlllcyA6IExheW91dFN0YXRlOjpR
dWlya3NNb2RlOjpObykpOwotICAgICAgICBMYXlvdXRDb250ZXh0KGxheW91dFN0YXRlKS5sYXlv
dXQoKTsKKyAgICAgICAgLy8gTGF5b3V0Q29udGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0KCk7CiAg
ICAgICAgIHNob3dMYXlvdXRUcmVlKGxheW91dFN0YXRlLnJvb3QoKSwgJmxheW91dFN0YXRlKTsK
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0
aW5nL1RhYmxlSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVJbnZhbGlkYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhOTgyMTg1OGYxNDg0NDc2YzEzOTMwNzcxYThhOTYxYjI5OTI4ZGViLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVJbnZhbGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJUYWJsZUludmFsaWRhdGlvbi5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCi0KLSNpbmNsdWRlICJJbnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJMYXlvdXRCb3gu
aCIKLSNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCi0jaW5jbHVkZSAiVGFibGVGb3JtYXR0aW5n
U3RhdGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFRhYmxlSW52YWxpZGF0aW9uKTsKLQotSW52YWxpZGF0aW9uUmVzdWx0IFRhYmxlSW52YWxp
ZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmYsIExheW91
dENvbnRleHQmIGxheW91dENvbnRleHQsIFRhYmxlRm9ybWF0dGluZ1N0YXRlJikKLXsKLSAgICBs
YXlvdXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gpOwotICAgIHJldHVybiB7IG51
bGxwdHIgfTsKLX0KLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ3YmYyYTBlNGQ3MjYyYjE0MDAzODM4MDU4ZTRmM2ViMjdiMmIy
ZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlvbi5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewotCi1j
bGFzcyBCb3g7Ci1jbGFzcyBUYWJsZUZvcm1hdHRpbmdTdGF0ZTsKLWNsYXNzIExheW91dENvbnRl
eHQ7Ci1zdHJ1Y3QgSW52YWxpZGF0aW9uUmVzdWx0OwotZW51bSBjbGFzcyBTdHlsZURpZmY7Ci0K
LS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciB0YWJsZSBmb3Jt
YXR0aW5nIGNvbnRleHQuCi1jbGFzcyBUYWJsZUludmFsaWRhdGlvbiB7Ci0gICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChUYWJsZUludmFsaWRhdGlvbik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIElu
dmFsaWRhdGlvblJlc3VsdCBpbnZhbGlkYXRlKGNvbnN0IEJveCYsIFN0eWxlRGlmZiwgTGF5b3V0
Q29udGV4dCYsIFRhYmxlRm9ybWF0dGluZ1N0YXRlJik7Ci19OwotCi19Ci19Ci0jZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383458</attachid>
            <date>2019-11-13 08:10:18 -0800</date>
            <delta_ts>2019-11-13 09:28:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204140-20191113081003.patch</filename>
            <type>text/plain</type>
            <size>56291</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NjMDBmZmY4ZTgwNzUz
M2I5NGVjNzg1ZWYwOTIwZGU0NTlhOTMwNC4uMTNlM2UzM2I1ZDEzOWVmNjgwNWU3ZGFjMGZiNTI5
NDFiMDdmYTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTExLTEyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW52YWxpZGF0aW9u
XSBJbnRyb2R1Y2UgSW52YWxpZGF0aW9uU3RhdGUgYW5kIENvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTcxNDIxMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW52YWxpZGF0aW9uQ29udGV4dCB0YWtlIHN0eWxlL2NvbnRlbnQgY2hhbmdl
cyBhbmQgdHVybiB0aGVtIGludG8gImRpcnR5IGxheW91dCBib3hlcyIgKHN0b3JlZCBpbiBJbnZh
bGlkYXRpb25TdGF0ZSkuCisgICAgICAgIEludmFsaWRhdGlvblN0YXRlIGlzIHRoZSBpbnB1dCB0
byB0aGUgKHBhcnRpYWwpc3Vic2VxdWVudCBsYXlvdXQuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogbGF5b3V0L0ludmFsaWRhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGxheW91dC9MYXlv
dXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5
b3V0Q29udGV4dDo6cnVuTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
Q29udGV4dDo6c3R5bGVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
YXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRD
b250ZXh0Ojp1cGRhdGVBbGwpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBs
YXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNvbnRleHQuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9u
LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uQ29udGV4dDo6SW52
YWxpZGF0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkludmFsaWRhdGlv
bkNvbnRleHQ6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkludmFs
aWRhdGlvbkNvbnRleHQ6OmNvbnRlbnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW52YWxpZGF0aW9uQ29udGV4dDo6c3VidHJlZUNoYW5nZWQpOgorICAgICAgICAqIGxheW91
dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmguCisg
ICAgICAgICogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxp
ZGF0aW9uLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uU3RhdGU6
OkludmFsaWRhdGlvblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0
aW9uU3RhdGU6Om1hcmtOZWVkc1VwZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2ludmFsaWRhdGlv
bi9JbnZhbGlkYXRpb25TdGF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlvbi5oLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbnZhbGlkYXRpb25TdGF0ZTo6Zm9ybWF0dGluZ0NvbnRleHRSb290cyBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKToK
KwogMjAxOS0xMS0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMRkNdIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6YWRkSW5saW5lUnVuIHNob3VsZCB0YWtlIGEg
dW5pcXVlX3B0cjxEaXNwbGF5OjpSdW4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI2ODEyYWU4OTk5NWQ4
NzlmOTQwYmVjN2RkZWVlOTFhMzI0MDU0MmQuLmI4ODRhOTU3NzBlNGZhM2U1ZGMxZjg2NDc0Zjky
ZGU3ZjhhZDQ4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDM1LDcgKzE0MzUsNiBAQCBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKIGxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKIGxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwCiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCi1sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrSW52YWxpZGF0aW9uLmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3Bw
CiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zs
b2F0QXZvaWRlci5jcHAKQEAgLTE0NDYsMTMgKzE0NDUsMTQgQEAgbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAogbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCi1sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJ
dGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKIGxheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAogbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZUxheW91dC5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAK
K2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5jcHAKK2xheW91dC9pbnZh
bGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwCiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRSZXBsYWNlZC5jcHAKQEAgLTE0NjEsNyArMTQ2MSw2IEBAIGxheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKIGxheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAogbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC90YWJsZWZvcm1hdHRp
bmcvVGFibGVHcmlkLmNwcAotbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlv
bi5jcHAKIAogbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAKIGxvYWRlci9DYW52YXNBY3Rp
dml0eVJlY29yZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3MTA0MzIxOTVkZDAxOWUzZTUwMzc2MzI0NDM3ZmI2MGViYWFi
MjgyLi5lZTg4ZmVmYTFmNWJmMWMxM2E0MmFiNzk4YTJlYzIxZDg2MDkxNDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjks
MTUgKzM2OSwxMiBAQAogCQkwRkZENEQ2MTE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
MEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAwQTNE
Qjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKIAkJMTEyQjM0RDUxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTJCMzRENDFFNjBCOTgzMDBCQjMxMEEgLyogU2lt
cGxlTGluZUxheW91dFBhZ2luYXRpb24uaCAqLzsgfTsKLQkJMTEzMTBDRjEyMEJBNEExQjAwNjVB
OEQwIC8qIEludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTE1Rjc4MDUyMDlDQkNCRDAwNzM5QzEzIC8qIEludmFsaWRhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0Yy
MjBCQTRBMzIwMDY1QThEMCAvKiBMYXlvdXRUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGRDcyMDk1MTRERjAwODFBQTZDIC8q
IExheW91dFRyZWVCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjMyMEJBNEEzNzAwNjVBOEQwIC8qIExheW91dFJlcGxhY2Vk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTFDNjE1
NjIwQUQxQUUxMDA1QjgyRkEgLyogTGF5b3V0UmVwbGFjZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGNDIwQkE0QTNEMDA2NUE4RDAg
LyogTGF5b3V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2QyAvKiBMYXlvdXRJdGVyYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0Y1
MjBCQTRBNEMwMDY1QThEMCAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExQjA0MkZCMjBCMEUyMTQwMDgy
OEE2QiAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4RDAgLyog
TGF5b3V0Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTExMDBGQzkyMDkyN0NCQzAwODFBQTZDIC8qIExheW91dENoaWxkSXRlcmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
MTMxMENGNzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGQ0EyMDkyODY4
RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxMTMxMENGODIwQkE0QTZBMDA2NUE4RDAg
LyogSW5saW5lSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MTEzMTBDRjkyMEJBNEE3RDAwNjVBOEQwIC8qIEJsb2NrSW52YWxpZGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTIzQUZEOTIwOUFCQjIwMDA3
MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTM0MDlEQTIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVy
VHJlZUJ1aWxkZXJDb250aW51YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDExMzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5oICovOyB9OwogCQkxMTNEMEI1MjFGOUZERDJCMDBGNjExQkIgLyog
RnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTEzRDBCNTAxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmlld0xheW91
dENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxMTVDRkE2QTIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNGQTY4MjA4QUY3
RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDI5LDYgKzIwMjYsOCBAQAogCQk2Rjc3ODY4
ODIzNDkxQUQ4MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAvKiBE
aXNwbGF5UGFpbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTZGN0NBM0M2MjA4QzI5NTcwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzQyMDhDMjk1
NjAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQ0EyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2
Rjk1REU0RDIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9uQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5NURFNEIyMzdCODg5QjAw
RTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2Rjk1REU0RTIzN0I4ODlDMDBFNTE3RTEgLyogSW52
YWxpZGF0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGOTVERTRDMjM3Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25TdGF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGOTk1QTE2
MUE3MDc1NjIwMEE3MzVGNCAvKiBXZWJHTFN5bmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTk1QTE0MUE3MDc1NjIwMEE3MzVGNCAvKiBXZWJHTFN5
bmMuaCAqLzsgfTsKIAkJNkY5OTVBMjAxQTcwNzhCMTAwQTczNUY0IC8qIFdlYkdMUXVlcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTk1QTE4MUE3
MDc4QjEwMEE3MzVGNCAvKiBXZWJHTFF1ZXJ5LmggKi87IH07CiAJCTZGOTk1QTIyMUE3MDc4QjEw
MEE3MzVGNCAvKiBXZWJHTFNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGOTk1QTFBMUE3MDc4QjEwMEE3MzVGNCAvKiBXZWJHTFNhbXBsZXIu
aCAqLzsgfTsKQEAgLTU4NTcsMTAgKzU4NTYsNiBAQAogCQkxMTEwMEZENzIwOTUxNERGMDA4MUFB
NkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTExQzYxNTYyMEFEMUFFMTAwNUI4
MkZBIC8qIExheW91dFJlcGxhY2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFJlcGxhY2VkLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMUM2MTU3MjBBRDFBRTEwMDVCODJGQSAv
KiBMYXlvdXRSZXBsYWNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRSZXBsYWNlZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTExMjNBRkQ5MjA5QUJCMjAwMDczNkFD
QyAvKiBCbG9ja0ludmFsaWRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja0ludmFsaWRhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTIzQUZEQTIwOUFCQjIwMDA3MzZB
Q0MgLyogQmxvY2tJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tJbnZh
bGlkYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTIzQUZEQzIwOUFC
QkJBMDA3MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGlu
ZUludmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTIzQUZERDIw
OUFCQkJBMDA3MzZBQ0MgLyogSW5saW5lSW52YWxpZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElubGluZUludmFsaWRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTExMkIzNEQwMUU2MEI4QTcwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0
UGFnaW5hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMkIzNEQ0MUU2
MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlENzIwM0UwMzgwMDBDNjY5MTUgLyogUmVu
ZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
VHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTg4NSw3ICs1ODgwLDYgQEAKIAkJMTE1Q0ZBODkyMDhCOTIxQTAwMUU2OTkxIC8qIEJsb2Nr
TWFyZ2luQ29sbGFwc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tNYXJnaW5Db2xsYXBz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNGQTk1MjA4Qjk1MkIwMDFF
Njk5MSAvKiBMYXlvdXRCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0Qm94Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNGQTk2MjA4Qjk1MkIwMDFFNjk5MSAvKiBMYXlvdXRC
b3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTE1Rjc4MDUyMDlDQkNCRDAwNzM5QzEzIC8qIEludmFsaWRhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnZhbGlkYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTE5MzQwNzYxRkU4QjkyMzAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyVGFibGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExOTM0MDc3MUZFOEI5MjMwMDkzNUYxRSAvKiBSZW5k
ZXJUcmVlQnVpbGRlclRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyVGFi
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5MzQwODcxRkVCMzU1RDAwOTM1
RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJUcmVlQnVpbGRlclJ1YnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTI3
MCw2ICs5MjY0LDggQEAKIAkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250
ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY4RjQ2MDEyMUIwM0JCNDAw
NDFBQzNBIC8qIEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkY4RjQ2MDMyMUIwM0JDNjAwNDFBQzNBIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWly
a3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGOTVERTRCMjM3Qjg4OUIwMEU1MTdF
MSAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludmFsaWRhdGlvbkNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NkY5NURFNEMyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvblN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludmFsaWRhdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZGOTk1QTA5MUE3MDcwRTYwMEE3MzVGNCAvKiBXZWJHTFF1ZXJ5
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTFF1ZXJ5LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMEExQTcwNzBFNjAwQTczNUY0IC8qIFdlYkdMU2FtcGxl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xTYW1wbGVyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMEIxQTcwNzBFNjAwQTczNUY0IC8qIFdlYkdMU3lu
Yy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xTeW5jLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMDIsMTcgKzkyOTgsMTcgQEAKIAkJNkZCNUUyMTIyMjFGMjQ0
NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCQjg2
MDUyMEI0NjRCNjAwREFEOTM4IC8qIEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZGQzVDQTkyMjJFMzU5OTMwMEIxM0UxMSAvKiBUYWJsZUZvcm1h
dHRpbmdTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQzVDQTkzMjJFMzU5OTMwMEIxM0Ux
MSAvKiBUYWJsZUludmFsaWRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUludmFsaWRhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNF
MTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZD
NUNBOTUyMkUzNTk5NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkM1Q0E5NjIyRTM1OTk1MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNkZDNUNBOTcyMkUzNTk5NTAwQjEzRTExIC8qIFRhYmxlSW52YWxpZGF0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlSW52YWxpZGF0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQzIC8qIERpc3Bs
YXlSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkQ5Q0Q1MjIyN0UyMUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlY3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUxpbmVC
cmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxp
bmVCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4
Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElubGluZUxpbmVCcmVha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGRTdBQTI2MjFDMzdCNjMwMDI5NkRDRCAvKiBNYXJnaW5UeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNYXJnaW5UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU3
Q0ZBMDIxNzdFRUYxMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmxpbmVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTZGRThFNkY3MjM3QkE1RTgwMDc1OEQyNiAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEludmFsaWRhdGlvbkNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk2RkU4RTZGODIzN0JBNkIyMDA3NThEMjYgLyogSW52YWxpZGF0aW9uU3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uU3RhdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIyMjExMDM1MDA0QzUwODIgLyogQ29udGVu
dENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlvdXRQaGFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkZEQzQzRTIx
MkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZsb2F0QXZvaWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjYwOSw2ICsxNjYwNSw3IEBACiAJCQkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OEND
IC8qIGRpc3BsYXl0cmVlICovLAogCQkJCTZGQ0ZDMDU1MjEyREFDQzIwMDc2OTVEMiAvKiBmbG9h
dHMgKi8sCiAJCQkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcg
Ki8sCisJCQkJNkY5NURFNEEyMzdCODgzMDAwRTUxN0UxIC8qIGludmFsaWRhdGlvbiAqLywKIAkJ
CQkxMTVDRkE5MDIwOEI5NDQxMDAxRTY5OTEgLyogbGF5b3V0dHJlZSAqLywKIAkJCQk2RkM1Q0E5
MTIyRTM1OTMzMDBCMTNFMTEgLyogdGFibGVmb3JtYXR0aW5nICovLAogCQkJCTExNUNGQTY5MjA4
QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCkBAIC0xNjYxNyw3ICsx
NjYxNCw2IEBACiAJCQkJNkY4RjQ2MDEyMUIwM0JCNDAwNDFBQzNBIC8qIEZvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcCAqLywKIAkJCQkxMTVDRkE3NTIwOEFGRTMwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ1N0YXRlLmNwcCAqLywKIAkJCQkxMTVDRkE3NDIwOEFGRTMwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ1N0YXRlLmggKi8sCi0JCQkJMTE1Rjc4MDUyMDlDQkNCRDAwNzM5QzEzIC8qIEludmFsaWRh
dGlvbi5oICovLAogCQkJCTZGMjZCQjY5MjMzNDNFNUEwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0
LmNwcCAqLywKIAkJCQk2RjI2QkI2QjIzMzQzRTVCMDAyRjJCRUEgLyogTGF5b3V0Q29udGV4dC5o
ICovLAogCQkJCTZGNEE1QkQ1MjJGOUYxNkIwMEE4MEYyNSAvKiBMYXlvdXRQaGFzZS5jcHAgKi8s
CkBAIC0xNjY2MCw4ICsxNjY1Niw2IEBACiAJCQkJNkY4RjQ2MDMyMUIwM0JDNjAwNDFBQzNBIC8q
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovLAogCQkJCTExNUNGQTc5MjA4QjhE
OUQwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJMTE1Q0ZBNzgy
MDhCOEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmggKi8sCi0JCQkJMTEyM0FG
REEyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2NrSW52YWxpZGF0aW9uLmNwcCAqLywKLQkJCQkxMTIz
QUZEOTIwOUFCQjIwMDA3MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24uaCAqLywKIAkJCQkxMTVD
RkE4OTIwOEI5MjFBMDAxRTY5OTEgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGJsb2NrZm9ybWF0dGluZzsKQEAgLTE2Njc3LDggKzE2NjcxLDYgQEAKIAkJ
CQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWly
a3MuY3BwICovLAogCQkJCTExNUNGQTdEMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3JtYXR0
aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVG
b3JtYXR0aW5nU3RhdGUuaCAqLywKLQkJCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyogSW5s
aW5lSW52YWxpZGF0aW9uLmNwcCAqLywKLQkJCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0MgLyog
SW5saW5lSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJNkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8q
IElubGluZUl0ZW0uY3BwICovLAogCQkJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxp
bmVJdGVtLmggKi8sCiAJCQkJNkYwQ0Q2OTIyMjlFRDMxOTAwQzU5OTRFIC8qIElubGluZUxpbmUu
Y3BwICovLApAQCAtMjA3ODksNiArMjA3ODEsMTcgQEAKIAkJCXBhdGggPSBhbmdsZTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTZGOTVERTRBMjM3Qjg4MzAwMEU1MTdFMSAv
KiBpbnZhbGlkYXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTZGRThFNkY3MjM3QkE1RTgwMDc1OEQyNiAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmNw
cCAqLywKKwkJCQk2Rjk1REU0QjIzN0I4ODlCMDBFNTE3RTEgLyogSW52YWxpZGF0aW9uQ29udGV4
dC5oICovLAorCQkJCTZGRThFNkY4MjM3QkE2QjIwMDc1OEQyNiAvKiBJbnZhbGlkYXRpb25TdGF0
ZS5jcHAgKi8sCisJCQkJNkY5NURFNEMyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvblN0
YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGludmFsaWRhdGlvbjsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTZGQzVDQTkxMjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZv
cm1hdHRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MjA3OTksOCArMjA4MDIsNiBAQAogCQkJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAvKiBUYWJs
ZUZvcm1hdHRpbmdTdGF0ZS5oICovLAogCQkJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlDMyAvKiBU
YWJsZUdyaWQuY3BwICovLAogCQkJCTZGQjIyRTMwMjMwMDk3RTMwMEMyMDg2NiAvKiBUYWJsZUdy
aWQuaCAqLywKLQkJCQk2RkM1Q0E5NzIyRTM1OTk1MDBCMTNFMTEgLyogVGFibGVJbnZhbGlkYXRp
b24uY3BwICovLAotCQkJCTZGQzVDQTkzMjJFMzU5OTMwMEIxM0UxMSAvKiBUYWJsZUludmFsaWRh
dGlvbi5oICovLAogCQkJKTsKIAkJCXBhdGggPSB0YWJsZWZvcm1hdHRpbmc7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMjkwMDgsNyArMjkwMDksNiBAQAogCQkJCTk3NkQ2QzdGMTIy
QjhBM0QwMDFGRDFGNyAvKiBCbG9iVVJMLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE2RTIw
OEFGQUI3MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTE1Q0ZBN0EyMDhCOEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkxMTMxMENGOTIwQkE0QTdEMDA2NUE4RDAgLyogQmxvY2tJbnZh
bGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNUUxMEU4MUJFODcwMEIyNTk2NSAv
KiBCb3JkZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1ODk1NTZFRDE4RDRBNDQwMDA3NjRC
MDMgLyogQm9yZGVyRWRnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1REIwRTgxQjdFQTAw
QjI1OTY1IC8qIEJvcmRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MjY1LDcgKzI5MjY1
LDYgQEAKIAkJCQk1NzIxQTk4QjFFQ0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
UHNzUGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJEMzMxQTE4MkQ4REREMDBDMDVEOUYg
LyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxMjVGODJDMTgyMkNGRUMwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1TSEExLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFNDVCQTZCNjIzNzYyMkEzMDA0REZDMDcgLyogU3R5bGVBZGp1c3Rlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRUYxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0Fs
Z29yaXRobVNIQTIyNC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRjExODI0REM3OTAwMzQ5
NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMz
RjMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMDE1Niw3ICszMDE1NSw2IEBACiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0
IC8qIElubGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUw
MDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTE1Q0ZBN0UyMDhCOEUxMDAwMUU2OTkxIC8qIElubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMTEzMTBDRjgyMEJBNEE2QTAwNjVBOEQwIC8qIElubGluZUludmFsaWRh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZFN0NGQTIyMTc3RUVGMjAwNUIxNTczIC8qIElu
bGluZUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAv
KiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAw
QzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMzAyMjcsNyArMzAyMjUs
OCBAQAogCQkJCUUxMzRGNUFCMTJFRTM0M0YwMDRFQzU4RCAvKiBJbnRSZWN0SGFzaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NzUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyNzUzNTc2MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplSGFzaC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMTEzMTBDRjEyMEJBNEExQjAwNjVBOEQwIC8qIEludmFsaWRh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY5NURFNEQyMzdCODg5QzAwRTUxN0UxIC8qIElu
dmFsaWRhdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGOTVERTRFMjM3Qjg4OUMw
MEU1MTdFMSAvKiBJbnZhbGlkYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQwQjRB
QUIxOERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMy
MUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFjZVBvb2wuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNENUZGNDk5MjE2MkUyQkUwMDRCRDg2RiAvKiBJU09Cb3guaCBpbiBIZWFkZXJzICovLApA
QCAtMzIyMTUsNiArMzIyMTQsNyBAQAogCQkJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2MiAvKiBT
dHJpbmdXaXRoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDlGNzc3NjBFRkVDNjIw
MDA5MDg0OUQgLyogU3Ryb2tlU3R5bGVBcHBsaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTRC
ODIwNTFENkRGMEU1MDA3N0VCRTMgLyogU3RydWN0dXJlZENsb25lLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNDVCQTZCNjIzNzYyMkEzMDA0REZDMDcgLyogU3R5bGVBZGp1c3Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1RUI2QTMwRTgxREM0RjAwQjI1OTY1IC8qIFN0eWxlQmFja2dyb3VuZERh
dGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHls
ZUJveERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUJBQzA2MjM2QjAxNkQwMEZBNDM0NSAv
KiBTdHlsZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0ludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0ludmFsaWRh
dGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGRiZjc4YzA0MDliMTE0ZWFm
ZTVkYTAxODI5NTBhMWU4MjA4YWJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9JbnZhbGlkYXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotY2xhc3MgQ29udGFpbmVyOwotCi1zdHJ1Y3QgSW52YWxp
ZGF0aW9uUmVzdWx0IHsKLSAgICBjb25zdCBDb250YWluZXIqIHJvb3Q7Ci19OwotCi19Ci19Ci0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCBlNDM2MmVl
NzA4MTNiNWFlMzk4ZWZjYzY1ZTExODRhNmU4ODY4MTAzLi4yMTYxYTNkNWFiZTg5YTdmZDllNGI1
YzU1ZmMzNjNkOWFlZTcxMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
Y3BwCkBAIC0zMCwxNyArMzAsMTcgQEAKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIkJsb2Nr
SW52YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIkRpc3Bs
YXlQYWludGVyLmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRp
b24uaCIKLSNpbmNsdWRlICJJbnZhbGlkYXRpb24uaCIKKyNpbmNsdWRlICJJbnZhbGlkYXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJMYXlv
dXRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlvdXRQ
aGFzZS5oIgogI2luY2x1ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiVGFi
bGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ1N0YXRlLmgi
CkBAIC01Niw0NiArNTYsMjQgQEAgTGF5b3V0Q29udGV4dDo6TGF5b3V0Q29udGV4dChMYXlvdXRT
dGF0ZSYgbGF5b3V0U3RhdGUpCiB7CiB9CiAKLXZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KCkK
K3ZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IEludmFsaWRhdGlvblN0YXRlJiBpbnZh
bGlkYXRpb25TdGF0ZSkKIHsKICAgICBQaGFzZVNjb3BlIHNjb3BlKFBoYXNlOjpUeXBlOjpMYXlv
dXQpOwogCi0gICAgQVNTRVJUKCFtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQu
Y29tcHV0ZXNFbXB0eSgpKTsKLSAgICBmb3IgKGF1dG8mIGxheW91dFJvb3QgOiBtX2Zvcm1hdHRp
bmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQpCi0gICAgICAgIGxheW91dEZvcm1hdHRpbmdDb250
ZXh0U3VidHJlZShsYXlvdXRSb290KTsKLSAgICBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RG
b3JMYXlvdXQuY2xlYXIoKTsKKyAgICBhdXRvJiBmb3JtYXR0aW5nQ29udGV4dFJvb3RzRm9yTGF5
b3V0ID0gaW52YWxpZGF0aW9uU3RhdGUuZm9ybWF0dGluZ0NvbnRleHRSb290cygpOworICAgIEFT
U0VSVCghZm9ybWF0dGluZ0NvbnRleHRSb290c0ZvckxheW91dC5jb21wdXRlc0VtcHR5KCkpOwor
ICAgIGZvciAoYXV0byYgZm9ybWF0dGluZ0NvbnRleHRSb290IDogZm9ybWF0dGluZ0NvbnRleHRS
b290c0ZvckxheW91dCkKKyAgICAgICAgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGZv
cm1hdHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKLXZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRTdWJ0cmVlKGNvbnN0IENvbnRhaW5lciYgbGF5b3V0Um9vdCkKK3ZvaWQg
TGF5b3V0Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGNvbnN0IENvbnRh
aW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogewotICAgIFJFTEVBU0VfQVNTRVJUKGxheW91
dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICBhdXRvIGZvcm1hdHRp
bmdDb250ZXh0ID0gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Um9vdCwgbGF5b3V0U3Rh
dGUoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlz
aGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgbGF5b3V0U3RhdGUo
KSk7CiAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoKTsKICAgICBm
b3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudCgpOwogfQogCi12b2lkIExh
eW91dENvbnRleHQ6OnN0eWxlQ2hhbmdlZChjb25zdCBCb3gmIGxheW91dEJveCwgU3R5bGVEaWZm
IHN0eWxlRGlmZikKLXsKLSAgICBQaGFzZVNjb3BlIHNjb3BlKFBoYXNlOjpUeXBlOjpJbnZhbGlk
YXRpb24pOwotCi0gICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5mb3Jt
YXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94KTsKLSAgICBjb25zdCBDb250YWluZXIqIGludmFs
aWRhdGlvblJvb3QgPSBudWxscHRyOwotICAgIGlmIChpczxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4o
Zm9ybWF0dGluZ1N0YXRlKSkKLSAgICAgICAgaW52YWxpZGF0aW9uUm9vdCA9IEJsb2NrSW52YWxp
ZGF0aW9uOjppbnZhbGlkYXRlKGxheW91dEJveCwgc3R5bGVEaWZmLCAqdGhpcywgZG93bmNhc3Q8
QmxvY2tGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpLnJvb3Q7Ci0gICAgZWxzZSBp
ZiAoaXM8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKQotICAgICAgICBp
bnZhbGlkYXRpb25Sb290ID0gSW5saW5lSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlKGxheW91dEJv
eCwgc3R5bGVEaWZmLCAqdGhpcywgZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihmb3Jt
YXR0aW5nU3RhdGUpKS5yb290OwotICAgIGVsc2UKLSAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1F
TlRFRF9ZRVQoKTsKLSAgICBBU1NFUlQoaW52YWxpZGF0aW9uUm9vdCk7Ci0gICAgbV9mb3JtYXR0
aW5nQ29udGV4dFJvb3RMaXN0Rm9yTGF5b3V0LmFkZChpbnZhbGlkYXRpb25Sb290KTsKLX0KLQot
dm9pZCBMYXlvdXRDb250ZXh0OjptYXJrTmVlZHNVcGRhdGUoY29uc3QgQm94JiBsYXlvdXRCb3gs
IE9wdGlvblNldDxVcGRhdGVUeXBlPikKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdHJp
Z2dlciBwcm9wZXIgaW52YWxpZGF0aW9uIGluc3RlYWQgb2YganVzdCBhZGRpbmcgdGhlIGZvcm1h
dHRpbmcgY29udGV4dCByb290IHRvIHRoZSBkaXJ0eSBsaXN0LiAKLSAgICBtX2Zvcm1hdHRpbmdD
b250ZXh0Um9vdExpc3RGb3JMYXlvdXQuYWRkKCYobGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5p
bmdCbG9jaygpID8gZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpIDogbGF5b3V0Qm94LmZv
cm1hdHRpbmdDb250ZXh0Um9vdCgpKSk7Ci19Ci0KIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5n
Q29udGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkK
IHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRm9ybWF0dGlu
Z0NvbnRleHQoKSk7CkBAIC0xNTYsOSArMTM0LDExIEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6cnVu
TGF5b3V0KExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKICAgICBkaXNwbGF5Qm94LnNldENvbnRl
bnRCb3hIZWlnaHQoTGF5b3V0VW5pdChsYXlvdXRSb290LnN0eWxlKCkubG9naWNhbEhlaWdodCgp
LnZhbHVlKCkpKTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aChMYXlvdXRVbml0
KGxheW91dFJvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpKSk7CiAKLSAgICBhdXRv
IGxheW91dENvbnRleHQgPSBMYXlvdXRDb250ZXh0KGxheW91dFN0YXRlKTsKLSAgICBsYXlvdXRD
b250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRSb290KTsKLSAgICBsYXlvdXRDb250ZXh0Lmxh
eW91dCgpOworICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7
IH07CisgICAgYXV0byBpbnZhbGlkYXRpb25Db250ZXh0ID0gSW52YWxpZGF0aW9uQ29udGV4dCB7
IGludmFsaWRhdGlvblN0YXRlIH07CisgICAgaW52YWxpZGF0aW9uQ29udGV4dC5zdHlsZUNoYW5n
ZWQoKmxheW91dFJvb3QuZmlyc3RDaGlsZCgpLCBTdHlsZURpZmZlcmVuY2U6OkxheW91dCk7CisK
KyAgICBMYXlvdXRDb250ZXh0KGxheW91dFN0YXRlKS5sYXlvdXQoaW52YWxpZGF0aW9uU3RhdGUp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IExheW91dENvbnRleHQ6OnJ1bkxh
eW91dEFuZFZlcmlmeShjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggNWQzNTczMzYyYTRiMDdiYjgwMmEwMWI0YTVlOGM0
OGExMjIzYTY4Zi4uYjEyOGIwMGRiNTQ3YTNkMTFlNzc4ZGE2MzgzOGNkMzE3MTk1MDdiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC0yOSw3ICsyOSw2IEBACiAKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgotI2lu
Y2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5
LDkgKzM4LDggQEAgY2xhc3MgUmVuZGVyVmlldzsKIAogbmFtZXNwYWNlIExheW91dCB7CiAKLWVu
dW0gY2xhc3MgU3R5bGVEaWZmOwotY2xhc3MgQm94OwogY2xhc3MgQ29udGFpbmVyOworY2xhc3Mg
SW52YWxpZGF0aW9uU3RhdGU7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKIGNsYXNzIEZvcm1hdHRpbmdD
b250ZXh0OwogCkBAIC01OSwxOCArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcGFp
bnQoY29uc3QgTGF5b3V0U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QpOwogCiAgICAgTGF5b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYpOwotICAgIHZvaWQg
bGF5b3V0KCk7Ci0KLSAgICBlbnVtIGNsYXNzIFVwZGF0ZVR5cGUgewotICAgICAgICBPdmVyZmxv
dyA9IDEgPDwgMCwKLSAgICAgICAgUG9zaXRpb24gPSAxIDw8IDEsCi0gICAgICAgIFNpemUgICAg
ID0gMSA8PCAyCi0gICAgfTsKLSAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxVcGRhdGVU
eXBlPiB1cGRhdGVBbGwoKSB7IHJldHVybiB7IFVwZGF0ZVR5cGU6Ok92ZXJmbG93LCBVcGRhdGVU
eXBlOjpQb3NpdGlvbiwgVXBkYXRlVHlwZTo6U2l6ZSB9OyB9Ci0gICAgdm9pZCBtYXJrTmVlZHNV
cGRhdGUoY29uc3QgQm94JiwgT3B0aW9uU2V0PFVwZGF0ZVR5cGU+ID0gdXBkYXRlQWxsKCkpOwot
ICAgIGJvb2wgbmVlZHNVcGRhdGUoY29uc3QgQm94JikgY29uc3Q7Ci0KLSAgICB2b2lkIHN0eWxl
Q2hhbmdlZChjb25zdCBCb3gmLCBTdHlsZURpZmYpOworICAgIHZvaWQgbGF5b3V0KGNvbnN0IElu
dmFsaWRhdGlvblN0YXRlJik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRp
bmdDb250ZXh0PiBjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0U3RhdGUmKTsKIApAQCAtODMsNyArNzAsNiBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB2b2lkIHJ1bkxheW91dChMYXlvdXRTdGF0ZSYpOwogCiAgICAgTGF5
b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQ29udGFpbmVy
PiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQ7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZh
bGlkYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDhhZjdmYWMyNjFl
ZmJiY2U5NWQyMjQzZDU1ZDE2ZjQ5MzdlNmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tJbnZhbGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCbG9ja0ludmFsaWRhdGlv
bi5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRl
ICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIkludmFsaWRhdGlvbi5oIgotI2lu
Y2x1ZGUgIkxheW91dEJveC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgotI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVz
cGFjZSBMYXlvdXQgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQmxvY2tJbnZhbGlk
YXRpb24pOwotCi1zdGF0aWMgYm9vbCBpbnZhbGlkYXRpb25TdG9wc0F0Rm9ybWF0dGluZ0NvbnRl
eHRCb3VuZGFyeShjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgY29uc3Qg
Qm94JiwgU3R5bGVEaWZmKQotewotICAgIFVOVVNFRF9QQVJBTShmb3JtYXR0aW5nQ29udGV4dFJv
b3QpOwotCi0gICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0Zvcm1h
dHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgT3B0aW9uU2V0
PExheW91dENvbnRleHQ6OlVwZGF0ZVR5cGU+IGNvbXB1dGVVcGRhdGVUeXBlKGNvbnN0IEJveCYs
IFN0eWxlRGlmZiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIHJldHVybiBMYXlvdXRD
b250ZXh0Ojp1cGRhdGVBbGwoKTsKLX0KLQotc3RhdGljIE9wdGlvblNldDxMYXlvdXRDb250ZXh0
OjpVcGRhdGVUeXBlPiBjb21wdXRlVXBkYXRlVHlwZUZvckFuY2VzdG9yKGNvbnN0IENvbnRhaW5l
ciYsIFN0eWxlRGlmZiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIHJldHVybiBMYXlv
dXRDb250ZXh0Ojp1cGRhdGVBbGwoKTsKLX0KLQotSW52YWxpZGF0aW9uUmVzdWx0IEJsb2NrSW52
YWxpZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmYgc3R5
bGVEaWZmLCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBCbG9ja0Zvcm1hdHRpbmdTdGF0
ZSYgZm9ybWF0dGluZ1N0YXRlKQotewotICAgIC8vIEludmFsaWRhdGUgdGhpcyBib3ggYW5kIHRo
ZSBjb250YWluaW5nIGJsb2NrIGNoYWluIGFsbCB0aGUgd2F5IHVwIHRvIHRoZSBmb3JtYXR0aW5n
IGNvbnRleHQgcm9vdCAoYW5kIGJleW9uZCBpZiBuZWVkZWQpLgotICAgIGxheW91dENvbnRleHQu
bWFya05lZWRzVXBkYXRlKGxheW91dEJveCwgY29tcHV0ZVVwZGF0ZVR5cGUobGF5b3V0Qm94LCBz
dHlsZURpZmYsIGZvcm1hdHRpbmdTdGF0ZSkpOwotICAgIGZvciAoYXV0byogY29udGFpbmluZ0Js
b2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOyBjb250YWluaW5nQmxvY2s7IGNvbnRh
aW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKLSAgICAg
ICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpICYm
IGludmFsaWRhdGlvblN0b3BzQXRGb3JtYXR0aW5nQ29udGV4dEJvdW5kYXJ5KCpjb250YWluaW5n
QmxvY2ssIGxheW91dEJveCwgc3R5bGVEaWZmKSkKLSAgICAgICAgICAgIHJldHVybiB7IGNvbnRh
aW5pbmdCbG9jayB9OwotICAgICAgICBsYXlvdXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZSgqY29u
dGFpbmluZ0Jsb2NrLCBjb21wdXRlVXBkYXRlVHlwZUZvckFuY2VzdG9yKCpjb250YWluaW5nQmxv
Y2ssIHN0eWxlRGlmZiwgZm9ybWF0dGluZ1N0YXRlKSk7Ci0gICAgfQotICAgIC8vIEludmFsaWRh
dGlvbiBhbHdheXMgc3RvcHMgYXQgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyBudWxscHRyIH07Ci19Ci0KLX0KLX0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0ludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0ludmFsaWRhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MWUyYTFjY2JhNWM2NTkxYjY2MWI1NWU1N2U0NDhhYmEyYTNkZTIwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotY2xhc3MgQm94OwotY2xhc3MgQmxv
Y2tGb3JtYXR0aW5nU3RhdGU7Ci1jbGFzcyBMYXlvdXRDb250ZXh0Owotc3RydWN0IEludmFsaWRh
dGlvblJlc3VsdDsKLWVudW0gY2xhc3MgU3R5bGVEaWZmOwotCi0vLyBUaGlzIGNsYXNzIGltcGxl
bWVudHMgYm94IGludmFsaWRhdGlvbiBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LgotY2xh
c3MgQmxvY2tJbnZhbGlkYXRpb24gewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmxvY2tJ
bnZhbGlkYXRpb24pOwotcHVibGljOgotICAgIHN0YXRpYyBJbnZhbGlkYXRpb25SZXN1bHQgaW52
YWxpZGF0ZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIExheW91dENvbnRleHQmLCBCbG9ja0Zvcm1h
dHRpbmdTdGF0ZSYpOwotfTsKLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE5NGMzNGU0ZWE4MmM4ZmIxYzk5MDIy
YTQ0ZDg4Mzc0NDMxMzFhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZh
bGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKLQot
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiSW52YWxpZGF0aW9uLmgiCi0jaW5jbHVkZSAi
TGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlv
dXQgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW5saW5lSW52YWxpZGF0aW9uKTsK
LQotSW52YWxpZGF0aW9uUmVzdWx0IElubGluZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShjb25z
dCBCb3gmIGxheW91dEJveCwgU3R5bGVEaWZmLCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIGxheW91dENvbnRleHQubWFya05lZWRz
VXBkYXRlKGxheW91dEJveCk7Ci0gICAgcmV0dXJuIHsgbnVsbHB0ciB9OwotfQotCi19Ci19Ci0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVkYzNmZjVjYjViNzEzMDY0MjhjYjljMWY2ZjQwZGZlN2UyNTVlZjguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWNsYXNzIEJveDsKLWNsYXNz
IENvbnRhaW5lcjsKLWNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZTsKLWNsYXNzIExheW91dENv
bnRleHQ7Ci1zdHJ1Y3QgSW52YWxpZGF0aW9uUmVzdWx0OwotZW51bSBjbGFzcyBTdHlsZURpZmY7
Ci0KLS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciBpbmxpbmUg
Zm9ybWF0dGluZyBjb250ZXh0LgotY2xhc3MgSW5saW5lSW52YWxpZGF0aW9uIHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKElubGluZUludmFsaWRhdGlvbik7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIEludmFsaWRhdGlvblJlc3VsdCBpbnZhbGlkYXRlKGNvbnN0IEJveCYsIFN0eWxlRGlmZiwg
TGF5b3V0Q29udGV4dCYsIElubGluZUZvcm1hdHRpbmdTdGF0ZSYpOwotfTsKLQotfQotfQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFs
aWRhdGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRhdGlvbi9J
bnZhbGlkYXRpb25Db250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmI4NzA2NTFmNGM3NTZiNmQyZjYx
Mjc1MDRmMzI4NTIzMTA5MzM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkludmFsaWRhdGlv
bkNvbnRleHQuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisj
aW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEludmFsaWRhdGlvbkNvbnRleHQpOworCitJbnZhbGlk
YXRpb25Db250ZXh0OjpJbnZhbGlkYXRpb25Db250ZXh0KEludmFsaWRhdGlvblN0YXRlJiBpbnZh
bGlkYXRpb25TdGF0ZSkKKyAgICA6IG1faW52YWxpZGF0aW9uU3RhdGUoaW52YWxpZGF0aW9uU3Rh
dGUpCit7Cit9CisKK3ZvaWQgSW52YWxpZGF0aW9uQ29udGV4dDo6c3R5bGVDaGFuZ2VkKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmZlcmVuY2UpCit7CisgICAgbV9pbnZhbGlkYXRpb25T
dGF0ZS5tYXJrTmVlZHNVcGRhdGUobGF5b3V0Qm94KTsKK30KKwordm9pZCBJbnZhbGlkYXRpb25D
b250ZXh0Ojpjb250ZW50Q2hhbmdlZChjb25zdCBCb3gmKQoreworfQorCit2b2lkIEludmFsaWRh
dGlvbkNvbnRleHQ6OnN1YnRyZWVDaGFuZ2VkKGNvbnN0IEJveCYpCit7Cit9CisKK30KK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZh
bGlkYXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0lu
dmFsaWRhdGlvbkNvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmQ5MDIwYjc3OWJjZTNmNzhlOWI2ZmZh
ZDQ4MTIzNjcxOTg2NTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2VudW0gY2xhc3MgU3R5bGVEaWZmZXJlbmNlOworCituYW1lc3BhY2UgTGF5b3V0IHsKK2Ns
YXNzIEJveDsKK2NsYXNzIEludmFsaWRhdGlvblN0YXRlOworCitjbGFzcyBJbnZhbGlkYXRpb25D
b250ZXh0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEludmFsaWRhdGlvbkNvbnRleHQp
OworcHVibGljOgorICAgIEludmFsaWRhdGlvbkNvbnRleHQoSW52YWxpZGF0aW9uU3RhdGUmKTsK
KworICAgIHZvaWQgc3R5bGVDaGFuZ2VkKGNvbnN0IEJveCYsIFN0eWxlRGlmZmVyZW5jZSk7Cisg
ICAgLy8gRklYTUU6IFdlIG1pZ2h0IGp1c3QgbWVyZ2UgdGhpcyB3aXRoIHN1YnRyZWVDaGFuZ2Vk
LgorICAgIHZvaWQgY29udGVudENoYW5nZWQoY29uc3QgQm94Jik7CisgICAgLy8gRklYTUU6IFRo
aXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGZvciB0cmVlIGNoYW5nZXMgbGlrZSBnYWluaW5nIGFu
ZCBsb3NpbmcgZGVzY2VuZGFudHMuIAorICAgIHZvaWQgc3VidHJlZUNoYW5nZWQoY29uc3QgQm94
Jik7CisKK3ByaXZhdGU6CisgICAgSW52YWxpZGF0aW9uU3RhdGUmIG1faW52YWxpZGF0aW9uU3Rh
dGU7Cit9OworCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTllZTMz
ZDY0NmNmMzI5ZjNhODlhZDhkYmY3ZjkwNWI3MjA4ZDQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChJbnZhbGlkYXRpb25TdGF0ZSk7CisKK0ludmFsaWRhdGlvblN0YXRlOjpJbnZhbGlkYXRp
b25TdGF0ZSgpCit7Cit9CisKK3ZvaWQgSW52YWxpZGF0aW9uU3RhdGU6Om1hcmtOZWVkc1VwZGF0
ZShjb25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAgICAvLyBXZSBuZXZlciBsYXkgb3V0IHRoZSBp
bml0aWFsIGNvbnRhaW5pbmcgYmxvY2suIEl0IGFsd2F5cyBoYXMgcHJlLWRldGVybWluZWQgZ2Vv
bWV0cnkuCisgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkp
OworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBpbXBsZW1lbnRhdGlv
bi4KKyAgICBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdHMuYWRkKCZsYXlvdXRCb3guZm9ybWF0dGlu
Z0NvbnRleHRSb290KCkpOworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MzI5ZmU4YjVlYjhmZTY5MGNjYzYwNjI2Y2VmNDBhYzM3MmQzYTc0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0
ZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiTGF5b3V0Qm94Lmgi
CisjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgSW52YWxpZGF0aW9uU3RhdGUgeworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoSW52YWxpZGF0aW9uU3RhdGUpOworcHVibGljOgorICAgIEludmFs
aWRhdGlvblN0YXRlKCk7CisKKyAgICB2b2lkIG1hcmtOZWVkc1VwZGF0ZShjb25zdCBCb3gmKTsK
KworICAgIHVzaW5nIEZvcm1hdHRpbmdDb250ZXh0Um9vdHMgPSBXZWFrSGFzaFNldDxjb25zdCBD
b250YWluZXI+OworICAgIC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgZG8gZnVsbCBmb3JtYXR0aW5n
IGNvbnRleHQgbGF5b3V0cyAobm8gcGFydGlhbCBsYXlvdXQgd2l0aGluIGEgZm9ybWF0dGluZyBj
b250ZXh0KS4KKyAgICBjb25zdCBGb3JtYXR0aW5nQ29udGV4dFJvb3RzJiBmb3JtYXR0aW5nQ29u
dGV4dFJvb3RzKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RzOyB9CisK
K3ByaXZhdGU6CisgICAgRm9ybWF0dGluZ0NvbnRleHRSb290cyBtX2Zvcm1hdHRpbmdDb250ZXh0
Um9vdHM7Cit9OworCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCA5Mzc3ODY4MTMwOTAw
YzFkYmI3YzhiYmM4NDI0OGU3ZjQzNTVmMDQxLi42MGYwNDc0MGFkYzg2Y2Y3NDEyYjljM2E1MjJh
NjA5NTM2Nzk1YzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAi
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiSW52YWxpZGF0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAi
TGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkxheW91dENvbnRhaW5lci5oIgpAQCAtNDAzLDggKzQwNSwxNCBAQCB2b2lkIHByaW50TGF5b3V0
VHJlZUZvckxpdmVEb2N1bWVudHMoKQogICAgICAgICBhdXRvJiByZW5kZXJWaWV3ID0gKmRvY3Vt
ZW50LT5yZW5kZXJWaWV3KCk7CiAgICAgICAgIGF1dG8gbGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0
ZSB7IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKHJlbmRlclZpZXcpIH07CiAgICAgICAg
IGxheW91dFN0YXRlLnNldFF1aXJrc01vZGUocmVuZGVyVmlldy5kb2N1bWVudCgpLmluTGltaXRl
ZFF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpMaW1pdGVkIDogKHJlbmRl
clZpZXcuZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWlya3NNb2Rl
OjpZZXMgOiBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6Tm8pKTsKLSAgICAgICAgTGF5b3V0Q29u
dGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0KCk7Ci0gICAgICAgIHNob3dMYXlvdXRUcmVlKGxheW91
dFN0YXRlLnJvb3QoKSwgJmxheW91dFN0YXRlKTsKKworICAgICAgICBhdXRvJiBsYXlvdXRSb290
ID0gbGF5b3V0U3RhdGUucm9vdCgpOworICAgICAgICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0g
SW52YWxpZGF0aW9uU3RhdGUgeyB9OworICAgICAgICBhdXRvIGludmFsaWRhdGlvbkNvbnRleHQg
PSBJbnZhbGlkYXRpb25Db250ZXh0IHsgaW52YWxpZGF0aW9uU3RhdGUgfTsKKyAgICAgICAgaW52
YWxpZGF0aW9uQ29udGV4dC5zdHlsZUNoYW5nZWQoKmxheW91dFJvb3QuZmlyc3RDaGlsZCgpLCBT
dHlsZURpZmZlcmVuY2U6OkxheW91dCk7CisKKyAgICAgICAgTGF5b3V0Q29udGV4dChsYXlvdXRT
dGF0ZSkubGF5b3V0KGludmFsaWRhdGlvblN0YXRlKTsKKyAgICAgICAgc2hvd0xheW91dFRyZWUo
bGF5b3V0Um9vdCwgJmxheW91dFN0YXRlKTsKICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVJbnZhbGlkYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRh
dGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5ODIxODU4ZjE0ODQ0NzZj
MTM5MzA3NzFhOGE5NjFiMjk5MjhkZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUludmFsaWRhdGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlRhYmxlSW52YWxpZGF0aW9uLmgi
Ci0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIklu
dmFsaWRhdGlvbi5oIgotI2luY2x1ZGUgIkxheW91dEJveC5oIgotI2luY2x1ZGUgIkxheW91dENv
bnRleHQuaCIKLSNpbmNsdWRlICJUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBM
YXlvdXQgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGFibGVJbnZhbGlkYXRpb24p
OwotCi1JbnZhbGlkYXRpb25SZXN1bHQgVGFibGVJbnZhbGlkYXRpb246OmludmFsaWRhdGUoY29u
c3QgQm94JiBsYXlvdXRCb3gsIFN0eWxlRGlmZiwgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgVGFibGVGb3JtYXR0aW5nU3RhdGUmKQotewotICAgIGxheW91dENvbnRleHQubWFya05lZWRz
VXBkYXRlKGxheW91dEJveCk7Ci0gICAgcmV0dXJuIHsgbnVsbHB0ciB9OwotfQotCi19Ci19Ci0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcv
VGFibGVJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRp
bmcvVGFibGVJbnZhbGlkYXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdi
ZjJhMGU0ZDcyNjJiMTQwMDM4MzgwNThlNGYzZWIyN2IyYjJlNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWNsYXNzIEJveDsKLWNsYXNzIFRhYmxl
Rm9ybWF0dGluZ1N0YXRlOwotY2xhc3MgTGF5b3V0Q29udGV4dDsKLXN0cnVjdCBJbnZhbGlkYXRp
b25SZXN1bHQ7Ci1lbnVtIGNsYXNzIFN0eWxlRGlmZjsKLQotLy8gVGhpcyBjbGFzcyBpbXBsZW1l
bnRzIGJveCBpbnZhbGlkYXRpb24gZm9yIHRhYmxlIGZvcm1hdHRpbmcgY29udGV4dC4KLWNsYXNz
IFRhYmxlSW52YWxpZGF0aW9uIHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFRhYmxlSW52
YWxpZGF0aW9uKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgSW52YWxpZGF0aW9uUmVzdWx0IGludmFs
aWRhdGUoY29uc3QgQm94JiwgU3R5bGVEaWZmLCBMYXlvdXRDb250ZXh0JiwgVGFibGVGb3JtYXR0
aW5nU3RhdGUmKTsKLX07Ci0KLX0KLX0KLSNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383461</attachid>
            <date>2019-11-13 09:28:57 -0800</date>
            <delta_ts>2019-11-13 10:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204140-20191113092842.patch</filename>
            <type>text/plain</type>
            <size>55227</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIzMDI4NDAwZjY3NzZj
ODc4MDc4ZmM0ZDRlMmM1M2UwODJmYWRkZi4uNTE4ZWJiNmVmMjQ4NmMzNTU1ZmE0MGViY2QxNTkz
ZTQyMThhOGY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTExLTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW52YWxpZGF0aW9u
XSBJbnRyb2R1Y2UgSW52YWxpZGF0aW9uU3RhdGUgYW5kIENvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTcxNDIxMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CisKKyAgICAgICAgSW52YWxpZGF0aW9uQ29udGV4dCB0YWtlIHN0eWxlL2NvbnRlbnQgY2hhbmdl
cyBhbmQgdHVybiB0aGVtIGludG8gImRpcnR5IGxheW91dCBib3hlcyIgKHN0b3JlZCBpbiBJbnZh
bGlkYXRpb25TdGF0ZSkuCisgICAgICAgIEludmFsaWRhdGlvblN0YXRlIGlzIHRoZSBpbnB1dCB0
byB0aGUgKHBhcnRpYWwpc3Vic2VxdWVudCBsYXlvdXQuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogbGF5b3V0L0ludmFsaWRhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGxheW91dC9MYXlv
dXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5
b3V0Q29udGV4dDo6cnVuTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
Q29udGV4dDo6c3R5bGVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
YXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRD
b250ZXh0Ojp1cGRhdGVBbGwpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBs
YXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNvbnRleHQuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9u
LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uQ29udGV4dDo6SW52
YWxpZGF0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkludmFsaWRhdGlv
bkNvbnRleHQ6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkludmFs
aWRhdGlvbkNvbnRleHQ6OmNvbnRlbnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW52YWxpZGF0aW9uQ29udGV4dDo6c3VidHJlZUNoYW5nZWQpOgorICAgICAgICAqIGxheW91
dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmguCisg
ICAgICAgICogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxp
ZGF0aW9uLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0aW9uU3RhdGU6
OkludmFsaWRhdGlvblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW52YWxpZGF0
aW9uU3RhdGU6Om1hcmtOZWVkc1VwZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2ludmFsaWRhdGlv
bi9JbnZhbGlkYXRpb25TdGF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlvbi5oLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbnZhbGlkYXRpb25TdGF0ZTo6Zm9ybWF0dGluZ0NvbnRleHRSb290cyBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKToK
KwogMjAxOS0xMS0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MjQwMi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggMDViYzViMWE3NDJjMDI1MTJjNzY0NzNhZTkzMmY5YzczMjliNWI2ZS4uYzI3NTIyNzI5Nzlk
OTc1Zjk3NzI4YjBkYTAxMDIyMjMxZTQ0ZDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE0MzUsNyAr
MTQzNSw2IEBAIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
UXVpcmtzLmNwcAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5j
cHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKLWxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwCiBsYXlvdXQvZGlzcGxheXRy
ZWUvRGlzcGxheUJveC5jcHAKIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAK
IGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmNwcApAQCAtMTQ0NiwxMyArMTQ0NSwxNCBAQCBs
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCiBs
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKLWxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHAKIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUl0ZW0uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCiBs
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0LmNwcAogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90
ZXh0L1RleHRVdGlsLmNwcAorbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0
LmNwcAorbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHAKIGxheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5l
ci5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkLmNwcApAQCAtMTQ2MSw3ICsx
NDYxLDYgQEAgbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNw
cAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5
b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCi1sYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlSW52YWxpZGF0aW9uLmNwcAogCiBsb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcAog
bG9hZGVyL0NhbnZhc0FjdGl2aXR5UmVjb3JkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRkNWI0ZjI5NDVhZjc3MmViNGFk
Mjg1ZmI0ODc1M2Q2NTc4MDE0YTguLjY3MmU5OTIxMGM3ZWFkODU3MjkxZDJlMjg2ZjY0MDYxYWZm
ZmZhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM3MCwxNSArMzcwLDEyIEBACiAJCTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2
RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RjE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZC
MDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oICovOyB9OwogCQkxMTJC
MzRENTFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5
ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oICovOyB9OwotCQkxMTMx
MENGMTIwQkE0QTFCMDA2NUE4RDAgLyogSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTVGNzgwNTIwOUNCQ0JEMDA3MzlDMTMgLyog
SW52YWxpZGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTEzMTBDRjIyMEJBNEEzMjAwNjVBOEQwIC8qIExheW91dFRyZWVCdWlsZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEwMEZENzIw
OTUxNERGMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGMzIwQkE0QTM3MDA2NUE4RDAg
LyogTGF5b3V0UmVwbGFjZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMUM2MTU2MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRSZXBsYWNlZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0Y0
MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGQzcyMDkyNzY0QzAwODFBQTZDIC8qIExh
eW91dEl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTEzMTBDRjUyMEJBNEE0QzAwNjVBOEQwIC8qIExheW91dERlc2NlbmRhbnRJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFC
MDQyRkIyMEIwRTIxNDAwODI4QTZCIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0Y2MjBC
QTRBNTYwMDY1QThEMCAvKiBMYXlvdXRDaGlsZEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEwMEZDOTIwOTI3Q0JDMDA4MUFBNkMgLyog
TGF5b3V0Q2hpbGRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExMzEwQ0Y3MjBCQTRBNjIwMDY1QThEMCAvKiBMYXlvdXRBbmNlc3Rv
ckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxMTEwMEZDQTIwOTI4NjhEMDA4MUFBNkMgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTExMzEwQ0Y4
MjBCQTRBNkEwMDY1QThEMCAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMjNBRkRDMjA5QUJCQkEwMDczNkFDQyAv
KiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkxMTMxMENGOTIwQkE0QTdEMDA2NUE4RDAgLyogQmxvY2tJbnZhbGlk
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
MjNBRkQ5MjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzQwOURBMjAzRTAzODAw
MEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzNDA5RDgyMDNFMDM4MDAwQzY2OTE1
IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi87IH07CiAJCTExM0QwQjUyMUY5
RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIg
LyogRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTExNUNGQTZBMjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTE1Q0ZBNjgyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwMzAsNiArMjAy
Nyw4IEBACiAJCTZGNzc4Njg4MjM0OTFBRDgwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Nzg2ODcyMzQ5
MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQzYyMDhDMjk1NzAwMkYyOUFCIC8qIExh
eW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RjdDQTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDQTIwOEMyQjJFMDAy
RjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTZGOTVERTREMjM3Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25D
b250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
Rjk1REU0QjIzN0I4ODlCMDBFNTE3RTEgLyogSW52YWxpZGF0aW9uQ29udGV4dC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZGOTVERTRFMjM3Qjg4
OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5NURFNEMyMzdCODg5QzAwRTUxN0UxIC8qIEludmFs
aWRhdGlvblN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkY5OTVBMTYxQTcwNzU2MjAwQTczNUY0IC8qIFdlYkdMU3luYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5OTVBMTQxQTcwNzU2MjAw
QTczNUY0IC8qIFdlYkdMU3luYy5oICovOyB9OwogCQk2Rjk5NUEyMDFBNzA3OEIxMDBBNzM1RjQg
LyogV2ViR0xRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkY5OTVBMTgxQTcwNzhCMTAwQTczNUY0IC8qIFdlYkdMUXVlcnkuaCAqLzsgfTsKIAkJ
NkY5OTVBMjIxQTcwNzhCMTAwQTczNUY0IC8qIFdlYkdMU2FtcGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5OTVBMUExQTcwNzhCMTAwQTczNUY0
IC8qIFdlYkdMU2FtcGxlci5oICovOyB9OwpAQCAtNTg2MCwxMCArNTg1OSw2IEBACiAJCTExMTAw
RkQ3MjA5NTE0REYwMDgxQUE2QyAvKiBMYXlvdXRUcmVlQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMYXlvdXRUcmVlQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTFD
NjE1NjIwQUQxQUUxMDA1QjgyRkEgLyogTGF5b3V0UmVwbGFjZWQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGF5b3V0UmVwbGFjZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTExQzYxNTcy
MEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExheW91dFJlcGxhY2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTEyM0FG
RDkyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2NrSW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJsb2NrSW52YWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTExMjNB
RkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTExMjNBRkRDMjA5QUJCQkEwMDczNkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lSW52YWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTExMjNBRkREMjA5QUJCQkEwMDczNkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDAxRTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVM
YXlvdXRQYWdpbmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTEyQjM0RDQxRTYwQjk4MzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQ
YWdpbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAz
ODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01ODg4LDcgKzU4ODMsNiBAQAogCQkxMTVDRkE4OTIwOEI5MjFB
MDAxRTY5OTEgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
bG9ja01hcmdpbkNvbGxhcHNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1
Q0ZBOTUyMDhCOTUyQjAwMUU2OTkxIC8qIExheW91dEJveC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlv
dXRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1Q0ZBOTYyMDhCOTUyQjAw
MUU2OTkxIC8qIExheW91dEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRCb3guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTVGNzgwNTIwOUNCQ0JEMDA3MzlDMTMg
LyogSW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludmFsaWRhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTkzNDA3NjFGRThCOTIzMDA5MzVGMUUgLyogUmVuZGVy
VHJlZUJ1aWxkZXJUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
clRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5MzQwNzcxRkU4Qjky
MzAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyVHJlZUJ1aWxkZXJUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTkz
NDA4NzFGRUIzNTVEMDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyUnVieS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05MjczLDYgKzkyNjcsOCBAQAogCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjhGNDYwMTIxQjAzQkI0MDA0MUFDM0EgLyogRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RjhGNDYwMzIxQjAzQkM2MDA0MUFDM0EgLyogQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY5NURF
NEIyMzdCODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9u
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uU3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMDkxQTcwNzBFNjAwQTcz
NUY0IC8qIFdlYkdMUXVlcnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMUXVlcnku
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2Rjk5NUEwQTFBNzA3MEU2MDBBNzM1
RjQgLyogV2ViR0xTYW1wbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTFNhbXBs
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2Rjk5NUEwQjFBNzA3MEU2MDBB
NzM1RjQgLyogV2ViR0xTeW5jLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTFN5bmMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMwNSwxNyArOTMwMSwxNyBAQAog
CQk2RkI1RTIxMjIyMUYyNDQ3MDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNUNBOTIyMkUzNTk5MzAwQjEz
RTExIC8qIFRhYmxlRm9ybWF0dGluZ1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxl
Rm9ybWF0dGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkZDNUNB
OTMyMkUzNTk5MzAwQjEzRTExIC8qIFRhYmxlSW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRhYmxlSW52YWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzVD
QTk0MjJFMzU5OTQwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkM1Q0E5NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAvKiBUYWJs
ZUZvcm1hdHRpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RkM1Q0E5NzIyRTM1OTk1MDBCMTNFMTEg
LyogVGFibGVJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVJbnZhbGlk
YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkNFMUExODIyNjE4QUIz
MDA0RjAzNDMgLyogRGlzcGxheVJ1bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UnVuLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRDlDRDUyMjI3RTIxQzgwMEU1Mzk1NyAvKiBE
aXNwbGF5UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZG
MDggLyogSW5saW5lTGluZUJyZWFrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5saW5lTGluZUJyZWFrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJyZWFrZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmdpblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNkZFOEU2RjcyMzdCQTVFODAwNzU4RDI2IC8qIEludmFsaWRhdGlv
bkNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRThFNkY4MjM3QkE2QjIwMDc1OEQyNiAv
KiBJbnZhbGlkYXRpb25TdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnZhbGlkYXRpb25T
dGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRTlGMDkyMjIyMTEwMzUw
MDRDNTA4MiAvKiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFRkU4MUQyMkY5RDIyQTAwMTE0OTI3IC8qIExheW91dFBoYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGRkRDNDNFMjEyRUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRBdm9pZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjE0LDYgKzE2NjEwLDcgQEAKIAkJCQkxMTk5RkE1
ODIwOEUzQzRDMDAyMzU4Q0MgLyogZGlzcGxheXRyZWUgKi8sCiAJCQkJNkZDRkMwNTUyMTJEQUND
MjAwNzY5NUQyIC8qIGZsb2F0cyAqLywKIAkJCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5OTEgLyog
aW5saW5lZm9ybWF0dGluZyAqLywKKwkJCQk2Rjk1REU0QTIzN0I4ODMwMDBFNTE3RTEgLyogaW52
YWxpZGF0aW9uICovLAogCQkJCTExNUNGQTkwMjA4Qjk0NDEwMDFFNjk5MSAvKiBsYXlvdXR0cmVl
ICovLAogCQkJCTZGQzVDQTkxMjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZvcm1hdHRpbmcgKi8s
CiAJCQkJMTE1Q0ZBNjkyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LywKQEAgLTE2NjIyLDcgKzE2NjE5LDYgQEAKIAkJCQk2RjhGNDYwMTIxQjAzQkI0MDA0MUFDM0Eg
LyogRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovLAogCQkJCTExNUNGQTc1MjA4QUZFMzAw
MDFFNjk5MSAvKiBGb3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc0MjA4QUZFMzAw
MDFFNjk5MSAvKiBGb3JtYXR0aW5nU3RhdGUuaCAqLywKLQkJCQkxMTVGNzgwNTIwOUNCQ0JEMDA3
MzlDMTMgLyogSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJNkYyNkJCNjkyMzM0M0U1QTAwMkYyQkVB
IC8qIExheW91dENvbnRleHQuY3BwICovLAogCQkJCTZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAv
KiBMYXlvdXRDb250ZXh0LmggKi8sCiAJCQkJNkY0QTVCRDUyMkY5RjE2QjAwQTgwRjI1IC8qIExh
eW91dFBoYXNlLmNwcCAqLywKQEAgLTE2NjY1LDggKzE2NjYxLDYgQEAKIAkJCQk2RjhGNDYwMzIx
QjAzQkM2MDA0MUFDM0EgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8sCiAJ
CQkJMTE1Q0ZBNzkyMDhCOEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcCAq
LywKIAkJCQkxMTVDRkE3ODIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUu
aCAqLywKLQkJCQkxMTIzQUZEQTIwOUFCQjIwMDA3MzZBQ0MgLyogQmxvY2tJbnZhbGlkYXRpb24u
Y3BwICovLAotCQkJCTExMjNBRkQ5MjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlv
bi5oICovLAogCQkJCTExNUNGQTg5MjA4QjkyMUEwMDFFNjk5MSAvKiBCbG9ja01hcmdpbkNvbGxh
cHNlLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYmxvY2tmb3JtYXR0aW5nOwpAQCAtMTY2ODIs
OCArMTY2NzYsNiBAQAogCQkJCTZGMTBCMDg2MjJCODU2OEQwMDkwRTY5QyAvKiBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8sCiAJCQkJMTE1Q0ZBN0QyMDhCOEUxMDAwMUU2OTkx
IC8qIElubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJMTE1Q0ZBN0MyMDhCOEUxMDAw
MUU2OTkxIC8qIElubGluZUZvcm1hdHRpbmdTdGF0ZS5oICovLAotCQkJCTExMjNBRkREMjA5QUJC
QkEwMDczNkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3BwICovLAotCQkJCTExMjNBRkRDMjA5
QUJCQkEwMDczNkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLywKIAkJCQk2RjdCOENFQzIz
NjI2RTY2MDBDOUZGMTUgLyogSW5saW5lSXRlbS5jcHAgKi8sCiAJCQkJNkZFN0NGQTAyMTc3RUVG
MTAwNUIxNTczIC8qIElubGluZUl0ZW0uaCAqLywKIAkJCQk2RjBDRDY5MjIyOUVEMzE5MDBDNTk5
NEUgLyogSW5saW5lTGluZS5jcHAgKi8sCkBAIC0yMDc5Niw2ICsyMDc4OCwxNyBAQAogCQkJcGF0
aCA9IGFuZ2xlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNkY5NURFNEEy
MzdCODgzMDAwRTUxN0UxIC8qIGludmFsaWRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkZFOEU2RjcyMzdCQTVFODAwNzU4RDI2IC8qIEludmFs
aWRhdGlvbkNvbnRleHQuY3BwICovLAorCQkJCTZGOTVERTRCMjM3Qjg4OUIwMEU1MTdFMSAvKiBJ
bnZhbGlkYXRpb25Db250ZXh0LmggKi8sCisJCQkJNkZFOEU2RjgyMzdCQTZCMjAwNzU4RDI2IC8q
IEludmFsaWRhdGlvblN0YXRlLmNwcCAqLywKKwkJCQk2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEg
LyogSW52YWxpZGF0aW9uU3RhdGUuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gaW52YWxpZGF0aW9u
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNkZDNUNBOTEyMkUzNTkzMzAw
QjEzRTExIC8qIHRhYmxlZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0yMDgwNiw4ICsyMDgwOSw2IEBACiAJCQkJNkZDNUNBOTYyMkUzNTk5
NTAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJNkY1QjdFQUEyMzAw
QTc5RTAwNjdEOUMzIC8qIFRhYmxlR3JpZC5jcHAgKi8sCiAJCQkJNkZCMjJFMzAyMzAwOTdFMzAw
QzIwODY2IC8qIFRhYmxlR3JpZC5oICovLAotCQkJCTZGQzVDQTk3MjJFMzU5OTUwMEIxM0UxMSAv
KiBUYWJsZUludmFsaWRhdGlvbi5jcHAgKi8sCi0JCQkJNkZDNUNBOTMyMkUzNTk5MzAwQjEzRTEx
IC8qIFRhYmxlSW52YWxpZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRhYmxlZm9ybWF0
dGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTAxNyw3ICsyOTAxOCw2IEBA
CiAJCQkJOTc2RDZDN0YxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTExNUNGQTZFMjA4QUZBQjcwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE3QTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tG
b3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTExMzEwQ0Y5MjBCQTRBN0QwMDY1
QThEMCAvKiBCbG9ja0ludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1RTEw
RTgxQkU4NzAwQjI1OTY1IC8qIEJvcmRlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4OTU1
NkVEMThENEE0NDAwMDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzVFQjVEQjBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLApA
QCAtMzAxNjUsNyArMzAxNjUsNiBAQAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJ
bmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExNUNG
QTdFMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTExMzEwQ0Y4MjBCQTRBNkEwMDY1QThEMCAvKiBJbmxpbmVJbnZhbGlkYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJ
dGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODkxNjExMjBENjA4MDA2MEVDRTUgLyogSW5s
aW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMENENjk1MjI5RUQzMjcwMEM1OTk0
RSAvKiBJbmxpbmVMaW5lLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjM2LDcgKzMwMjM1LDggQEAK
IAkJCQlFMTM0RjVBQjEyRUUzNDNGMDA0RUM1OEQgLyogSW50UmVjdEhhc2guaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyNzUzNTc1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjc1MzU3NjBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhhc2guaCBpbiBI
ZWFkZXJzICovLAotCQkJCTExMzEwQ0YxMjBCQTRBMUIwMDY1QThEMCAvKiBJbnZhbGlkYXRpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTZGOTVERTREMjM3Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlk
YXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2Rjk1REU0RTIzN0I4ODlDMDBFNTE3
RTEgLyogSW52YWxpZGF0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMEI0QUFCMThE
QTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMjFFNTdE
MTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDVGRjQ5OTIxNjJFMkJFMDA0QkQ4NkYgLyogSVNPQm94LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9JbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9JbnZhbGlkYXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTBkYmY3OGMwNDA5YjExNGVhZmU1ZGEwMTgyOTUwYTFlODIwOGFiYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvSW52
YWxpZGF0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWNsYXNzIENvbnRhaW5l
cjsKLQotc3RydWN0IEludmFsaWRhdGlvblJlc3VsdCB7Ci0gICAgY29uc3QgQ29udGFpbmVyKiBy
b290OwotfTsKLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4
dC5jcHAKaW5kZXggZTQzNjJlZTcwODEzYjVhZTM5OGVmY2M2NWUxMTg0YTZlODg2ODEwMy4uMjE2
MWEzZDVhYmU4OWE3ZmQ5ZTRiNWM1NWZjMzYzZDlhZWU3MTIyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMzAsMTcgKzMwLDE3IEBACiAKICNpbmNsdWRlICJC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nU3RhdGUu
aCIKLSNpbmNsdWRlICJCbG9ja0ludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkRpc3BsYXlCb3gu
aCIKICNpbmNsdWRlICJEaXNwbGF5UGFpbnRlci5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVk
ZSAiSW5saW5lSW52YWxpZGF0aW9uLmgiCi0jaW5jbHVkZSAiSW52YWxpZGF0aW9uLmgiCisjaW5j
bHVkZSAiSW52YWxpZGF0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRl
LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgi
CiAjaW5jbHVkZSAiTGF5b3V0UGhhc2UuaCIKICNpbmNsdWRlICJMYXlvdXRUcmVlQnVpbGRlci5o
IgorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJUYWJs
ZUZvcm1hdHRpbmdTdGF0ZS5oIgpAQCAtNTYsNDYgKzU2LDI0IEBAIExheW91dENvbnRleHQ6Okxh
eW91dENvbnRleHQoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogewogfQogCi12b2lkIExheW91
dENvbnRleHQ6OmxheW91dCgpCit2b2lkIExheW91dENvbnRleHQ6OmxheW91dChjb25zdCBJbnZh
bGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCiB7CiAgICAgUGhhc2VTY29wZSBzY29w
ZShQaGFzZTo6VHlwZTo6TGF5b3V0KTsKIAotICAgIEFTU0VSVCghbV9mb3JtYXR0aW5nQ29udGV4
dFJvb3RMaXN0Rm9yTGF5b3V0LmNvbXB1dGVzRW1wdHkoKSk7Ci0gICAgZm9yIChhdXRvJiBsYXlv
dXRSb290IDogbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RMaXN0Rm9yTGF5b3V0KQotICAgICAgICBs
YXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUobGF5b3V0Um9vdCk7Ci0gICAgbV9mb3JtYXR0
aW5nQ29udGV4dFJvb3RMaXN0Rm9yTGF5b3V0LmNsZWFyKCk7CisgICAgYXV0byYgZm9ybWF0dGlu
Z0NvbnRleHRSb290c0ZvckxheW91dCA9IGludmFsaWRhdGlvblN0YXRlLmZvcm1hdHRpbmdDb250
ZXh0Um9vdHMoKTsKKyAgICBBU1NFUlQoIWZvcm1hdHRpbmdDb250ZXh0Um9vdHNGb3JMYXlvdXQu
Y29tcHV0ZXNFbXB0eSgpKTsKKyAgICBmb3IgKGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0Um9vdCA6
IGZvcm1hdHRpbmdDb250ZXh0Um9vdHNGb3JMYXlvdXQpCisgICAgICAgIGxheW91dEZvcm1hdHRp
bmdDb250ZXh0U3VidHJlZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQogCi12b2lkIExheW91
dENvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXIm
IGxheW91dFJvb3QpCit2b2lkIExheW91dENvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0
U3VidHJlZShjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKIHsKLSAgICBS
RUxFQVNFX0FTU0VSVChsYXlvdXRSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7
Ci0gICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGxh
eW91dFJvb3QsIGxheW91dFN0YXRlKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOworICAgIGF1dG8gZm9y
bWF0dGluZ0NvbnRleHQgPSBjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nQ29udGV4
dFJvb3QsIGxheW91dFN0YXRlKCkpOwogICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZs
b3dDb250ZW50KCk7CiAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRl
bnQoKTsKIH0KIAotdm9pZCBMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQoY29uc3QgQm94JiBs
YXlvdXRCb3gsIFN0eWxlRGlmZiBzdHlsZURpZmYpCi17Ci0gICAgUGhhc2VTY29wZSBzY29wZShQ
aGFzZTo6VHlwZTo6SW52YWxpZGF0aW9uKTsKLQotICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9
IGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yQm94KGxheW91dEJveCk7Ci0gICAgY29u
c3QgQ29udGFpbmVyKiBpbnZhbGlkYXRpb25Sb290ID0gbnVsbHB0cjsKLSAgICBpZiAoaXM8Qmxv
Y2tGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpCi0gICAgICAgIGludmFsaWRhdGlv
blJvb3QgPSBCbG9ja0ludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlm
ZiwgKnRoaXMsIGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUp
KS5yb290OwotICAgIGVsc2UgaWYgKGlzPElubGluZUZvcm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGlu
Z1N0YXRlKSkKLSAgICAgICAgaW52YWxpZGF0aW9uUm9vdCA9IElubGluZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlmZiwgKnRoaXMsIGRvd25jYXN0PElubGluZUZv
cm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGluZ1N0YXRlKSkucm9vdDsKLSAgICBlbHNlCi0gICAgICAg
IEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgQVNTRVJUKGludmFsaWRhdGlvblJv
b3QpOwotICAgIG1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dC5hZGQoaW52YWxp
ZGF0aW9uUm9vdCk7Ci19Ci0KLXZvaWQgTGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRlKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBPcHRpb25TZXQ8VXBkYXRlVHlwZT4pCi17Ci0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIHRyaWdnZXIgcHJvcGVyIGludmFsaWRhdGlvbiBpbnN0ZWFkIG9mIGp1
c3QgYWRkaW5nIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCB0byB0aGUgZGlydHkgbGlzdC4g
Ci0gICAgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RMaXN0Rm9yTGF5b3V0LmFkZCgmKGxheW91dEJv
eC5pc0luaXRpYWxDb250YWluaW5nQmxvY2soKSA/IGRvd25jYXN0PENvbnRhaW5lcj4obGF5b3V0
Qm94KSA6IGxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkpOwotfQotCiBzdGQ6OnVu
aXF1ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRp
bmdDb250ZXh0KGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBMYXlvdXRT
dGF0ZSYgbGF5b3V0U3RhdGUpCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpAQCAtMTU2LDkgKzEzNCwxMSBAQCB2b2lk
IExheW91dENvbnRleHQ6OnJ1bkxheW91dChMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiAgICAg
ZGlzcGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0KExheW91dFVuaXQobGF5b3V0Um9vdC5zdHls
ZSgpLmxvZ2ljYWxIZWlnaHQoKS52YWx1ZSgpKSk7CiAgICAgZGlzcGxheUJveC5zZXRDb250ZW50
Qm94V2lkdGgoTGF5b3V0VW5pdChsYXlvdXRSb290LnN0eWxlKCkubG9naWNhbFdpZHRoKCkudmFs
dWUoKSkpOwogCi0gICAgYXV0byBsYXlvdXRDb250ZXh0ID0gTGF5b3V0Q29udGV4dChsYXlvdXRT
dGF0ZSk7Ci0gICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRhdGUobGF5b3V0Um9vdCk7Ci0g
ICAgbGF5b3V0Q29udGV4dC5sYXlvdXQoKTsKKyAgICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0g
SW52YWxpZGF0aW9uU3RhdGUgeyB9OworICAgIGF1dG8gaW52YWxpZGF0aW9uQ29udGV4dCA9IElu
dmFsaWRhdGlvbkNvbnRleHQgeyBpbnZhbGlkYXRpb25TdGF0ZSB9OworICAgIGludmFsaWRhdGlv
bkNvbnRleHQuc3R5bGVDaGFuZ2VkKCpsYXlvdXRSb290LmZpcnN0Q2hpbGQoKSwgU3R5bGVEaWZm
ZXJlbmNlOjpMYXlvdXQpOworCisgICAgTGF5b3V0Q29udGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0
KGludmFsaWRhdGlvblN0YXRlKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBM
YXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkoY29uc3QgUmVuZGVyVmlldyYgcmVuZGVy
VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IDVkMzU3MzM2MmE0
YjA3YmI4MDJhMDFiNGE1ZThjNDhhMTIyM2E2OGYuLmIxMjhiMDBkYjU0N2EzZDExZTc3OGRhNjM4
MzhjZDMxNzE5NTA3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaApAQCAt
MjksNyArMjksNiBAQAogCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0
Zi9PcHRpb25TZXQuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zOSw5ICszOCw4IEBAIGNsYXNzIFJlbmRlclZpZXc7CiAKIG5hbWVz
cGFjZSBMYXlvdXQgewogCi1lbnVtIGNsYXNzIFN0eWxlRGlmZjsKLWNsYXNzIEJveDsKIGNsYXNz
IENvbnRhaW5lcjsKK2NsYXNzIEludmFsaWRhdGlvblN0YXRlOwogY2xhc3MgTGF5b3V0U3RhdGU7
CiBjbGFzcyBGb3JtYXR0aW5nQ29udGV4dDsKIApAQCAtNTksMTggKzU3LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHBhaW50KGNvbnN0IExheW91dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KTsKIAogICAgIExheW91dENvbnRleHQoTGF5b3V0
U3RhdGUmKTsKLSAgICB2b2lkIGxheW91dCgpOwotCi0gICAgZW51bSBjbGFzcyBVcGRhdGVUeXBl
IHsKLSAgICAgICAgT3ZlcmZsb3cgPSAxIDw8IDAsCi0gICAgICAgIFBvc2l0aW9uID0gMSA8PCAx
LAotICAgICAgICBTaXplICAgICA9IDEgPDwgMgotICAgIH07Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBPcHRpb25TZXQ8VXBkYXRlVHlwZT4gdXBkYXRlQWxsKCkgeyByZXR1cm4geyBVcGRhdGVUeXBl
OjpPdmVyZmxvdywgVXBkYXRlVHlwZTo6UG9zaXRpb24sIFVwZGF0ZVR5cGU6OlNpemUgfTsgfQot
ICAgIHZvaWQgbWFya05lZWRzVXBkYXRlKGNvbnN0IEJveCYsIE9wdGlvblNldDxVcGRhdGVUeXBl
PiA9IHVwZGF0ZUFsbCgpKTsKLSAgICBib29sIG5lZWRzVXBkYXRlKGNvbnN0IEJveCYpIGNvbnN0
OwotCi0gICAgdm9pZCBzdHlsZUNoYW5nZWQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKKyAgICB2
b2lkIGxheW91dChjb25zdCBJbnZhbGlkYXRpb25TdGF0ZSYpOwogCiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29u
c3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0YXRlJik7CiAKQEAg
LTgzLDcgKzcwLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBydW5MYXlvdXQoTGF5b3V0
U3RhdGUmKTsKIAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwotICAgIFdlYWtIYXNo
U2V0PGNvbnN0IENvbnRhaW5lcj4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RMaXN0Rm9yTGF5b3V0
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTA4YWY3ZmFjMjYxZWZiYmNlOTVkMjI0M2Q1NWQxNmY0OTM3ZTZjYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQmxvY2tJbnZhbGlkYXRpb24uaCIKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQotCi0jaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJJ
bnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJMYXlvdXRCb3guaCIKLSNpbmNsdWRlICJMYXlvdXRD
b250YWluZXIuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEJsb2NrSW52YWxpZGF0aW9uKTsKLQotc3RhdGljIGJvb2wgaW52YWxpZGF0aW9uU3Rv
cHNBdEZvcm1hdHRpbmdDb250ZXh0Qm91bmRhcnkoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIGNvbnN0IEJveCYsIFN0eWxlRGlmZikKLXsKLSAgICBVTlVTRURfUEFSQU0o
Zm9ybWF0dGluZ0NvbnRleHRSb290KTsKLQotICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJv
b3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotc3RhdGljIE9wdGlvblNldDxMYXlvdXRDb250ZXh0OjpVcGRhdGVUeXBlPiBjb21wdXRlVXBk
YXRlVHlwZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIEJsb2NrRm9ybWF0dGluZ1N0YXRlJikKLXsK
LSAgICByZXR1cm4gTGF5b3V0Q29udGV4dDo6dXBkYXRlQWxsKCk7Ci19Ci0KLXN0YXRpYyBPcHRp
b25TZXQ8TGF5b3V0Q29udGV4dDo6VXBkYXRlVHlwZT4gY29tcHV0ZVVwZGF0ZVR5cGVGb3JBbmNl
c3Rvcihjb25zdCBDb250YWluZXImLCBTdHlsZURpZmYsIEJsb2NrRm9ybWF0dGluZ1N0YXRlJikK
LXsKLSAgICByZXR1cm4gTGF5b3V0Q29udGV4dDo6dXBkYXRlQWxsKCk7Ci19Ci0KLUludmFsaWRh
dGlvblJlc3VsdCBCbG9ja0ludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShjb25zdCBCb3gmIGxheW91
dEJveCwgU3R5bGVEaWZmIHN0eWxlRGlmZiwgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwg
QmxvY2tGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKLXsKLSAgICAvLyBJbnZhbGlk
YXRlIHRoaXMgYm94IGFuZCB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbiBhbGwgdGhlIHdheSB1
cCB0byB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgKGFuZCBiZXlvbmQgaWYgbmVlZGVkKS4K
LSAgICBsYXlvdXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gsIGNvbXB1dGVVcGRh
dGVUeXBlKGxheW91dEJveCwgc3R5bGVEaWZmLCBmb3JtYXR0aW5nU3RhdGUpKTsKLSAgICBmb3Ig
KGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsgY29u
dGFpbmluZ0Jsb2NrOyBjb250YWluaW5nQmxvY2sgPSBjb250YWluaW5nQmxvY2stPmNvbnRhaW5p
bmdCbG9jaygpKSB7Ci0gICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSAmJiBpbnZhbGlkYXRpb25TdG9wc0F0Rm9ybWF0dGluZ0NvbnRleHRC
b3VuZGFyeSgqY29udGFpbmluZ0Jsb2NrLCBsYXlvdXRCb3gsIHN0eWxlRGlmZikpCi0gICAgICAg
ICAgICByZXR1cm4geyBjb250YWluaW5nQmxvY2sgfTsKLSAgICAgICAgbGF5b3V0Q29udGV4dC5t
YXJrTmVlZHNVcGRhdGUoKmNvbnRhaW5pbmdCbG9jaywgY29tcHV0ZVVwZGF0ZVR5cGVGb3JBbmNl
c3RvcigqY29udGFpbmluZ0Jsb2NrLCBzdHlsZURpZmYsIGZvcm1hdHRpbmdTdGF0ZSkpOwotICAg
IH0KLSAgICAvLyBJbnZhbGlkYXRpb24gYWx3YXlzIHN0b3BzIGF0IHRoZSBpbml0aWFsIGNvbnRh
aW5pbmcgYmxvY2suCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgbnVs
bHB0ciB9OwotfQotCi19Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDFlMmExY2NiYTVjNjU5MWI2NjFiNTVlNTdlNDQ4YWJhMmEzZGUy
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWNs
YXNzIEJveDsKLWNsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlOwotY2xhc3MgTGF5b3V0Q29udGV4
dDsKLXN0cnVjdCBJbnZhbGlkYXRpb25SZXN1bHQ7Ci1lbnVtIGNsYXNzIFN0eWxlRGlmZjsKLQot
Ly8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJveCBpbnZhbGlkYXRpb24gZm9yIGJsb2NrIGZvcm1h
dHRpbmcgY29udGV4dC4KLWNsYXNzIEJsb2NrSW52YWxpZGF0aW9uIHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKEJsb2NrSW52YWxpZGF0aW9uKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgSW52
YWxpZGF0aW9uUmVzdWx0IGludmFsaWRhdGUoY29uc3QgQm94JiwgU3R5bGVEaWZmLCBMYXlvdXRD
b250ZXh0JiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKTsKLX07Ci0KLX0KLX0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUludmFsaWRhdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhOTRj
MzRlNGVhODJjOGZiMWM5OTAyMmE0NGQ4ODM3NDQzMTMxYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5saW5l
SW52YWxpZGF0aW9uLmgiCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
LQotI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIkludmFsaWRh
dGlvbi5oIgotI2luY2x1ZGUgIkxheW91dEJveC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRleHQu
aCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElu
bGluZUludmFsaWRhdGlvbik7Ci0KLUludmFsaWRhdGlvblJlc3VsdCBJbmxpbmVJbnZhbGlkYXRp
b246OmludmFsaWRhdGUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFN0eWxlRGlmZiwgTGF5b3V0Q29u
dGV4dCYgbGF5b3V0Q29udGV4dCwgSW5saW5lRm9ybWF0dGluZ1N0YXRlJikKLXsKLSAgICBsYXlv
dXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gpOwotICAgIHJldHVybiB7IG51bGxw
dHIgfTsKLX0KLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZGMzZmY1Y2I1YjcxMzA2NDI4Y2I5YzFmNmY0MGRmZTdlMjU1
ZWY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewot
Ci1jbGFzcyBCb3g7Ci1jbGFzcyBDb250YWluZXI7Ci1jbGFzcyBJbmxpbmVGb3JtYXR0aW5nU3Rh
dGU7Ci1jbGFzcyBMYXlvdXRDb250ZXh0Owotc3RydWN0IEludmFsaWRhdGlvblJlc3VsdDsKLWVu
dW0gY2xhc3MgU3R5bGVEaWZmOwotCi0vLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgYm94IGludmFs
aWRhdGlvbiBmb3IgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dC4KLWNsYXNzIElubGluZUludmFs
aWRhdGlvbiB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbmxpbmVJbnZhbGlkYXRpb24p
OwotcHVibGljOgotICAgIHN0YXRpYyBJbnZhbGlkYXRpb25SZXN1bHQgaW52YWxpZGF0ZShjb25z
dCBCb3gmLCBTdHlsZURpZmYsIExheW91dENvbnRleHQmLCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
KTsKLX07Ci0KLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZi
ODcwNjUxZjRjNzU2YjZkMmY2MTI3NTA0ZjMyODUyMzEwOTMzNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5j
cHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJJbnZhbGlkYXRpb25Db250ZXh0LmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNw
YWNlIExheW91dCB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbnZhbGlkYXRpb25D
b250ZXh0KTsKKworSW52YWxpZGF0aW9uQ29udGV4dDo6SW52YWxpZGF0aW9uQ29udGV4dChJbnZh
bGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCisgICAgOiBtX2ludmFsaWRhdGlvblN0
YXRlKGludmFsaWRhdGlvblN0YXRlKQoreworfQorCit2b2lkIEludmFsaWRhdGlvbkNvbnRleHQ6
OnN0eWxlQ2hhbmdlZChjb25zdCBCb3gmIGxheW91dEJveCwgU3R5bGVEaWZmZXJlbmNlKQorewor
ICAgIG1faW52YWxpZGF0aW9uU3RhdGUubWFya05lZWRzVXBkYXRlKGxheW91dEJveCk7Cit9CisK
K3ZvaWQgSW52YWxpZGF0aW9uQ29udGV4dDo6Y29udGVudENoYW5nZWQoY29uc3QgQm94JikKK3sK
K30KKwordm9pZCBJbnZhbGlkYXRpb25Db250ZXh0OjpzdWJ0cmVlQ2hhbmdlZChjb25zdCBCb3gm
KQoreworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZkOTAy
MGI3NzliY2UzZjc4ZTliNmZmYWQ0ODEyMzY3MTk4NjUyMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShM
QVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIFN0eWxlRGlmZmVyZW5jZTsKKworbmFt
ZXNwYWNlIExheW91dCB7CitjbGFzcyBCb3g7CitjbGFzcyBJbnZhbGlkYXRpb25TdGF0ZTsKKwor
Y2xhc3MgSW52YWxpZGF0aW9uQ29udGV4dCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJ
bnZhbGlkYXRpb25Db250ZXh0KTsKK3B1YmxpYzoKKyAgICBJbnZhbGlkYXRpb25Db250ZXh0KElu
dmFsaWRhdGlvblN0YXRlJik7CisKKyAgICB2b2lkIHN0eWxlQ2hhbmdlZChjb25zdCBCb3gmLCBT
dHlsZURpZmZlcmVuY2UpOworICAgIC8vIEZJWE1FOiBXZSBtaWdodCBqdXN0IG1lcmdlIHRoaXMg
d2l0aCBzdWJ0cmVlQ2hhbmdlZC4KKyAgICB2b2lkIGNvbnRlbnRDaGFuZ2VkKGNvbnN0IEJveCYp
OworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBmb3IgdHJlZSBjaGFu
Z2VzIGxpa2UgZ2FpbmluZyBhbmQgbG9zaW5nIGRlc2NlbmRhbnRzLiAKKyAgICB2b2lkIHN1YnRy
ZWVDaGFuZ2VkKGNvbnN0IEJveCYpOworCitwcml2YXRlOgorICAgIEludmFsaWRhdGlvblN0YXRl
JiBtX2ludmFsaWRhdGlvblN0YXRlOworfTsKKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvblN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk5ZWUzM2Q2NDZjZjMyOWYzYTg5YWQ4ZGJmN2Y5MDViNzIwOGQ0NWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFs
aWRhdGlvblN0YXRlLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCisKKyNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW52YWxpZGF0aW9uU3RhdGUpOworCitJbnZhbGlkYXRp
b25TdGF0ZTo6SW52YWxpZGF0aW9uU3RhdGUoKQoreworfQorCit2b2lkIEludmFsaWRhdGlvblN0
YXRlOjptYXJrTmVlZHNVcGRhdGUoY29uc3QgQm94JiBsYXlvdXRCb3gpCit7CisgICAgLy8gV2Ug
bmV2ZXIgbGF5IG91dCB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiBJdCBhbHdheXMgaGFz
IHByZS1kZXRlcm1pbmVkIGdlb21ldHJ5LgorICAgIEFTU0VSVCghbGF5b3V0Qm94LmlzSW5pdGlh
bENvbnRhaW5pbmdCbG9jaygpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBqdXN0IGEgcGxhY2Vo
b2xkZXIgaW1wbGVtZW50YXRpb24uCisgICAgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3RzLmFkZCgm
bGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKK30KKworfQorfQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlv
blN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlv
blN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODMyOWZlOGI1ZWI4ZmU2OTBjY2M2MDYyNmNlZjQwYWMzNzJk
M2E3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnZhbGlkYXRp
b24vSW52YWxpZGF0aW9uU3RhdGUuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2lu
Y2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEludmFsaWRhdGlv
blN0YXRlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEludmFsaWRhdGlvblN0YXRlKTsK
K3B1YmxpYzoKKyAgICBJbnZhbGlkYXRpb25TdGF0ZSgpOworCisgICAgdm9pZCBtYXJrTmVlZHNV
cGRhdGUoY29uc3QgQm94Jik7CisKKyAgICB1c2luZyBGb3JtYXR0aW5nQ29udGV4dFJvb3RzID0g
V2Vha0hhc2hTZXQ8Y29uc3QgQ29udGFpbmVyPjsKKyAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5
IGRvIGZ1bGwgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dHMgKG5vIHBhcnRpYWwgbGF5b3V0IHdp
dGhpbiBhIGZvcm1hdHRpbmcgY29udGV4dCkuCisgICAgY29uc3QgRm9ybWF0dGluZ0NvbnRleHRS
b290cyYgZm9ybWF0dGluZ0NvbnRleHRSb290cygpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0dGlu
Z0NvbnRleHRSb290czsgfQorCitwcml2YXRlOgorICAgIEZvcm1hdHRpbmdDb250ZXh0Um9vdHMg
bV9mb3JtYXR0aW5nQ29udGV4dFJvb3RzOworfTsKKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAK
aW5kZXggOTM3Nzg2ODEzMDkwMGMxZGJiN2M4YmJjODQyNDhlN2Y0MzU1ZjA0MS4uNjBmMDQ3NDBh
ZGM4NmNmNzQxMmI5YzNhNTIyYTYwOTUzNjc5NWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFRhYmxlQ29sRWxlbWVudC5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgor
I2luY2x1ZGUgIkludmFsaWRhdGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJJbnZhbGlkYXRpb25T
dGF0ZS5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRl
cmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKQEAgLTQwMyw4ICs0MDUsMTQg
QEAgdm9pZCBwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKCkKICAgICAgICAgYXV0byYg
cmVuZGVyVmlldyA9ICpkb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgICAgICBhdXRvIGxheW91
dFN0YXRlID0gTGF5b3V0U3RhdGUgeyBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZShyZW5k
ZXJWaWV3KSB9OwogICAgICAgICBsYXlvdXRTdGF0ZS5zZXRRdWlya3NNb2RlKHJlbmRlclZpZXcu
ZG9jdW1lbnQoKS5pbkxpbWl0ZWRRdWlya3NNb2RlKCkgPyBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9k
ZTo6TGltaXRlZCA6IChyZW5kZXJWaWV3LmRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCkgPyBMYXlv
dXRTdGF0ZTo6UXVpcmtzTW9kZTo6WWVzIDogTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6Ok5vKSk7
Ci0gICAgICAgIExheW91dENvbnRleHQobGF5b3V0U3RhdGUpLmxheW91dCgpOwotICAgICAgICBz
aG93TGF5b3V0VHJlZShsYXlvdXRTdGF0ZS5yb290KCksICZsYXlvdXRTdGF0ZSk7CisKKyAgICAg
ICAgYXV0byYgbGF5b3V0Um9vdCA9IGxheW91dFN0YXRlLnJvb3QoKTsKKyAgICAgICAgYXV0byBp
bnZhbGlkYXRpb25TdGF0ZSA9IEludmFsaWRhdGlvblN0YXRlIHsgfTsKKyAgICAgICAgYXV0byBp
bnZhbGlkYXRpb25Db250ZXh0ID0gSW52YWxpZGF0aW9uQ29udGV4dCB7IGludmFsaWRhdGlvblN0
YXRlIH07CisgICAgICAgIGludmFsaWRhdGlvbkNvbnRleHQuc3R5bGVDaGFuZ2VkKCpsYXlvdXRS
b290LmZpcnN0Q2hpbGQoKSwgU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXQpOworCisgICAgICAgIExh
eW91dENvbnRleHQobGF5b3V0U3RhdGUpLmxheW91dChpbnZhbGlkYXRpb25TdGF0ZSk7CisgICAg
ICAgIHNob3dMYXlvdXRUcmVlKGxheW91dFJvb3QsICZsYXlvdXRTdGF0ZSk7CiAgICAgfQogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1h
dHRpbmcvVGFibGVJbnZhbGlkYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhOTgyMTg1OGYxNDg0NDc2YzEzOTMwNzcxYThhOTYxYjI5OTI4ZGViLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVJbnZhbGlkYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJU
YWJsZUludmFsaWRhdGlvbi5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCi0KLSNpbmNsdWRlICJJbnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJMYXlvdXRCb3guaCIK
LSNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCi0jaW5jbHVkZSAiVGFibGVGb3JtYXR0aW5nU3Rh
dGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFRhYmxlSW52YWxpZGF0aW9uKTsKLQotSW52YWxpZGF0aW9uUmVzdWx0IFRhYmxlSW52YWxpZGF0
aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmYsIExheW91dENv
bnRleHQmIGxheW91dENvbnRleHQsIFRhYmxlRm9ybWF0dGluZ1N0YXRlJikKLXsKLSAgICBsYXlv
dXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gpOwotICAgIHJldHVybiB7IG51bGxw
dHIgfTsKLX0KLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ3YmYyYTBlNGQ3MjYyYjE0MDAzODM4MDU4ZTRmM2ViMjdiMmIyZTQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUludmFsaWRhdGlvbi5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewotCi1jbGFz
cyBCb3g7Ci1jbGFzcyBUYWJsZUZvcm1hdHRpbmdTdGF0ZTsKLWNsYXNzIExheW91dENvbnRleHQ7
Ci1zdHJ1Y3QgSW52YWxpZGF0aW9uUmVzdWx0OwotZW51bSBjbGFzcyBTdHlsZURpZmY7Ci0KLS8v
IFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciB0YWJsZSBmb3JtYXR0
aW5nIGNvbnRleHQuCi1jbGFzcyBUYWJsZUludmFsaWRhdGlvbiB7Ci0gICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChUYWJsZUludmFsaWRhdGlvbik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIEludmFs
aWRhdGlvblJlc3VsdCBpbnZhbGlkYXRlKGNvbnN0IEJveCYsIFN0eWxlRGlmZiwgTGF5b3V0Q29u
dGV4dCYsIFRhYmxlRm9ybWF0dGluZ1N0YXRlJik7Ci19OwotCi19Ci19Ci0jZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>