<?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>172703</bug_id>
          
          <creation_ts>2017-05-29 23:42:25 -0700</creation_ts>
          <short_desc>REGRESSION(r215946): Can&apos;t reference a table cell in Google spreadsheet</short_desc>
          <delta_ts>2017-05-30 17:10:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://drafts.csswg.org/cssom-view/#extensions-to-the-range-interface</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jond</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zcorpan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1313649</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-29 23:42:25 -0700</bug_when>
    <thetext>Reproduction steps:
1. Go to drive.google.com
2. Create a new Google spreadsheet or open an existing one
3. Click on one of the cells and type in = and then click another cell to reference it.
4. Press enter.

Result:
Google spreadsheet shows &quot;Unable to load file&quot; as an error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313650</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-29 23:42:37 -0700</bug_when>
    <thetext>Observed on STP30.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313651</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-29 23:43:49 -0700</bug_when>
    <thetext>In the console, I see the error:

CustomError: Error in protected function: a.item is not a function. (In &apos;a.item(0)&apos;, &apos;a.item&apos; is undefined)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313652</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-29 23:44:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/32458086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313762</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-30 10:29:01 -0700</bug_when>
    <thetext>Bisected to
http://trac.webkit.org/log/trunk/?mode=follow_copy&amp;rev=215947&amp;stop_rev=215945

It must be https://trac.webkit.org/changeset/215946/webkit given the error:

CustomError: Error in protected function: a.item is not a function. (In &apos;a.item(0)&apos;, &apos;a.item&apos; is undefined)

This change was probably not compatible with the Web. I bet there is thousands of other web pages that rely on .item(~) call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313763</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 10:32:37 -0700</bug_when>
    <thetext>Will look into this today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313768</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 10:45:11 -0700</bug_when>
    <thetext>Yes, ClientRectList had an item() method, which is missing from the new DOMRect[] type that is returned by getClientRects() in the spec. I&apos;ll looks into the Google spreadsheet code a little but it looks to me that the specification is not WebCompatible and we may need to reintroduce a DOMRectList type :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313770</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 10:50:16 -0700</bug_when>
    <thetext>For now, I am unable to reproduce with WebKit ToT. Will try some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313774</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 10:52:20 -0700</bug_when>
    <thetext>Ok, got it:
function Epb(a) {
    Dpb(a);
    a = xpb(a).Pq().getClientRects();
    return {
        first: a.item(0),
        nV: a.item(a.length - 1)
    }
}

in https://docs.google.com/static/spreadsheets2/client/js/2594367115-ritz_waffle_i18n_core.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313776</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 11:00:02 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Ok, got it:
&gt; function Epb(a) {
&gt;     Dpb(a);
&gt;     a = xpb(a).Pq().getClientRects();
&gt;     return {
&gt;         first: a.item(0),
&gt;         nV: a.item(a.length - 1)
&gt;     }
&gt; }
&gt; 
&gt; in
&gt; https://docs.google.com/static/spreadsheets2/client/js/2594367115-
&gt; ritz_waffle_i18n_core.js

Filed https://github.com/w3c/csswg-drafts/issues/1479 against the specification. Will now re-introduce a List type in WebKit to fix Google Speadsheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313812</commentid>
    <comment_count>10</comment_count>
      <attachid>311527</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 12:20:25 -0700</bug_when>
    <thetext>Created attachment 311527
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313817</commentid>
    <comment_count>11</comment_count>
      <attachid>311529</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 12:41:58 -0700</bug_when>
    <thetext>Created attachment 311529
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313826</commentid>
    <comment_count>12</comment_count>
      <attachid>311532</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 13:03:47 -0700</bug_when>
    <thetext>Created attachment 311532
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313827</commentid>
    <comment_count>13</comment_count>
      <attachid>311533</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 13:13:29 -0700</bug_when>
    <thetext>Created attachment 311533
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313841</commentid>
    <comment_count>14</comment_count>
      <attachid>311539</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 13:34:20 -0700</bug_when>
    <thetext>Created attachment 311539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313847</commentid>
    <comment_count>15</comment_count>
      <attachid>311539</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-30 13:39:54 -0700</bug_when>
    <thetext>Comment on attachment 311539
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=311539&amp;action=review

&gt; Source/WebCore/dom/DOMRectList.idl:33
&gt; +] interface DOMRectList {
&gt; +    readonly attribute unsigned long length;
&gt; +    getter DOMRect item(unsigned long index);
&gt; +};

Huh, this doesn&apos;t have an indexed getter!? No wonder Google docs is using item to access each item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313858</commentid>
    <comment_count>16</comment_count>
      <attachid>311539</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 13:58:37 -0700</bug_when>
    <thetext>Comment on attachment 311539
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=311539&amp;action=review

&gt;&gt; Source/WebCore/dom/DOMRectList.idl:33
&gt;&gt; +};
&gt; 
&gt; Huh, this doesn&apos;t have an indexed getter!? No wonder Google docs is using item to access each item.

This is an indexed getter:
getter DOMRect item(unsigned long index);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313877</commentid>
    <comment_count>17</comment_count>
      <attachid>311539</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-30 14:19:34 -0700</bug_when>
    <thetext>Comment on attachment 311539
Patch

https://trac.webkit.org/r217576</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311527</attachid>
            <date>2017-05-30 12:20:25 -0700</date>
            <delta_ts>2017-05-30 12:41:58 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>172703_DOMRectList_wip.patch</filename>
            <type>text/plain</type>
            <size>26986</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRmZmRlM2EyODcuLmExMTBiNGUyZjFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDE5LDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCiAgICAgZG9tL0RPTVJlY3QuaWRs
CiAgICAgZG9tL0RPTVJlY3RJbml0LmlkbAorICAgIGRvbS9ET01SZWN0TGlzdC5pZGwKICAgICBk
b20vRE9NUmVjdFJlYWRPbmx5LmlkbAogICAgIGRvbS9ET01TdHJpbmdMaXN0LmlkbAogICAgIGRv
bS9ET01TdHJpbmdNYXAuaWRsCkBAIC0xNDQ4LDcgKzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZG9tL0RPTUVycm9yLmNwcAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
ICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKLSAgICBkb20vRE9NUmVjdC5jcHAK
KyAgICBkb20vRE9NUmVjdExpc3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3BwCiAgICAg
ZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2NzNmYjY1NDg4Li43MDY2NmYwZWE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTksNiArMzU5LDcgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NUmVj
dEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0TGlzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0RPTVJlY3RSZWFkT25seS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RP
TVN0cmluZ0xpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4MGEwZWM1Y2MxZC4uNjU4ZTJmMjE0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzksNiArMTkzOSw4IEBACiAJ
CTQ2NzFFMDY1MUQ2N0E1OTYwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5
NyAvKiBDYW52YXNQYXRoLmNwcCAqLzsgfTsKIAkJNDY3MUUwNjYxRDY3QTU5NjAwQzZCNDk3IC8q
IENhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmggKi87IH07CiAJCTQ2
NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5j
cmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
SW5jcmVtZW50ZXIuaCAqLzsgfTsKKwkJNDY4MzQ0REYxRURERkFBQTAwQjc3OTVCIC8qIERPTVJl
Y3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgKi87IH07CisJCTQ2
ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8q
IERPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxl
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZC
NjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJF
OTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1v
bml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMzMzAsNyArMzMzMiw2IEBACiAJCTgz
MEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2RDdE
MDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAxQ0Ix
MTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1l
bnQuY3BwICovOyB9OwogCQk4MzEyMEM3MTFDNTZGM0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRC
ODZBNzFDNTZFODNBMDBGM0YwRTMgLyogSFRNTERhdGFFbGVtZW50LmggKi87IH07Ci0JCTgzMTQ5
RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01SZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01S
ZWN0LmNwcCAqLzsgfTsKIAkJODMyQjg0MzQxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVF
bGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICov
OyB9OwogCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4
NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwICovOyB9Owog
CQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThE
OUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTYzNCw2ICs5NjM1LDkgQEAKIAkJ
NDY3MUUwNjMxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FudmFzUGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc1BhdGguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REMxRURERkE1RjAwQjc3OTVCIC8qIERPTVJl
Y3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBET01SZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg5RjFB
RTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZpbGVNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVN
b25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENQVU1vbml0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzg3LDcgKzExMzkxLDYgQEAKIAkJODMw
Nzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhNTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhNTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyog
SlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01v
dXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzMTQ5RkY1MUVC
MzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERPTVJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzFE
MUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzMjlBNDE3MUVDMjVCMkIwMDhFRDRCRSAvKiBEb2N1bWVudEFu
ZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVu
dEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODMyOURDQzIxQzdBNkFFMzAwNzMwQjMzIC8qIEhUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU2MTMsOSArMjU2MTYsMTEgQEAKIAkJ
CQkwRjQ5NjZBMTFEQjQwOTAxMDBBMjc0QkIgLyogRE9NUG9pbnRJbml0LmlkbCAqLywKIAkJCQkw
RjQ5NjY5QjFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnRSZWFkT25seS5oICovLAogCQkJCTBG
NDk2NjlDMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludFJlYWRPbmx5LmlkbCAqLywKLQkJCQk4
MzE0OUZGNTFFQjM4QjEyMDAwODk2NjUgLyogRE9NUmVjdC5jcHAgKi8sCiAJCQkJMEY0NzEwQTkx
REI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3QuaCAqLywKIAkJCQkwRjQ3MTBBQTFEQjU2QUZDMDAy
RENFQzMgLyogRE9NUmVjdC5pZGwgKi8sCisJCQkJNDY4MzQ0REQxRURERkE1RjAwQjc3OTVCIC8q
IERPTVJlY3RMaXN0LmNwcCAqLywKKwkJCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuaCAqLywKKwkJCQk0NjgzNDREQzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExp
c3QuaWRsICovLAogCQkJCTBGNDcxMEFCMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0SW5pdC5o
ICovLAogCQkJCTBGNDcxMEFDMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0SW5pdC5pZGwgKi8s
CiAJCQkJMEY0NzEwQUQxREI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3RSZWFkT25seS5oICovLApA
QCAtMjcwNzMsNiArMjcwNzgsNyBAQAogCQkJCUJDNUE4Njg1MEMzMzY3NjAwMEVFQTY0OSAvKiBE
T01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NDQyNzRCMTFBNTdFN0EwMDYzQTc0
OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0NjQwQTExRDdGMzA0
MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjgzNDRFMDFF
RERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE4ODYw
NEI0MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDVG
RDY5RTAxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzZGQzJCMEMxMjM3MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMDY5OCw2ICszMDcwNCw3IEBACiAJCQkJNTEwMTg0NkEwQjA4NjAyQTAwNEE4MjVG
IC8qIENhY2hlZFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBFREE3NzQxNDNFMzAzQzAw
MjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2
QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0NjgzNDRERjFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFu
ZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDgxRTNDMzNDRTU4
MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMzEwODAsNyArMzEwODcsNiBAQAogCQkJCTJENTAwMkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBE
T01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAv
KiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUYwRDc0NUUzODAwNjQ0
MkU5IC8qIERPTVBsdWdpbkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzMTQ5RkY2MUVC
MzhCMzcwMDA4OTY2NSAvKiBET01SZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUE4Njg0
MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzU1NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTg4NjA0QjMwRjJFNjU0QTAwMEI2NDQzIC8qIERPTVRpbWVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKaW5kZXggMTQ1MzM4MWMwZTQuLjhhZjRmMGNlNjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01SZWN0LmgKQEAgLTU4LDYgKzU4LDQgQEAgcHJpdmF0ZToKICAgICBET01SZWN0
KCkgPSBkZWZhdWx0OwogfTsKIAotV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4g
Y3JlYXRlRE9NUmVjdFZlY3Rvcihjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYpOwotCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUmVjdExpc3QuY3BwCnNpbWlsYXJpdHkgaW5kZXggODQlCnJlbmFtZSBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvZG9tL0RP
TVJlY3RMaXN0LmNwcAppbmRleCBjMzk2ZTYyOTM1Ny4uMmQzM2QyOTEwNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUmVjdExpc3QuY3BwCkBAIC0yNCwxOSArMjQsMjEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRE9NUmVjdC5oIgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAK
LSNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlICJET01SZWN0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gY3JlYXRlRE9NUmVjdFZlY3Rvcihj
b25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCitET01SZWN0TGlzdDo6RE9NUmVjdExpc3Qo
Y29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQogewotICAgIFZlY3RvcjxSZWY8RE9NUmVj
dD4+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXpl
KCkpOworICAgIG1faXRlbXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwog
ICAgIGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBw
ZW5kKERPTVJlY3Q6OmNyZWF0ZShxdWFkLmJvdW5kaW5nQm94KCkpKTsKLSAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICBtX2l0ZW1zLnVuY2hlY2tlZEFwcGVuZChET01SZWN0OjpjcmVhdGUocXVh
ZC5ib3VuZGluZ0JveCgpKSk7CiB9CiAKK0RPTVJlY3RMaXN0Ojp+RE9NUmVjdExpc3QoKQorewog
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUmVjdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MTgwYTc0N2FkZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5oCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVJlY3Q7CisKK2NsYXNzIERPTVJlY3RMaXN0
IDogcHVibGljIFJlZkNvdW50ZWQ8RE9NUmVjdExpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERPTVJlY3RMaXN0PiBjcmVhdGUoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVJlY3RMaXN0KHF1YWRzKSk7IH0KKyAgICBzdGF0aWMg
UmVmPERPTVJlY3RMaXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVJlY3RM
aXN0KCkpOyB9CisgICAgfkRPTVJlY3RMaXN0KCk7CisKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2l0ZW1zLnNpemUoKTsgfQorICAgIERPTVJlY3QqIGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgbV9pdGVtcy5zaXplKCkgPyBtX2l0ZW1zW2luZGV4
XS5wdHIoKSA6IG51bGxwdHI7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBET01SZWN0TGlz
dChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpOworICAgIERPTVJlY3RMaXN0KCkgPSBk
ZWZhdWx0OworCisgICAgVmVjdG9yPFJlZjxET01SZWN0Pj4gbV9pdGVtczsKK307CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NUmVjdExpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lNjExMjgzZGI5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01SZWN0TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICAg
RXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCisgICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCisgICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBET01SZWN0TGlzdCB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBE
T01SZWN0IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IGM4N2E2ZDY4ZTExLi4yYmQxN2M2NWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgi
CiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5o
IgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRBbmltYXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudFNoYXJlZE9i
amVjdFBvb2wuaCIKQEAgLTExNDQsMTMgKzExNDUsMTMgQEAgTGF5b3V0UmVjdCBFbGVtZW50Ojph
YnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVt
ZW4KICAgICByZXR1cm4gYWJzb2x1dGVFdmVudEJvdW5kc09mRWxlbWVudEFuZERlc2NlbmRhbnRz
KGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVsZW1lbnRzKTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0
Pj4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQorUmVmPERPTVJlY3RMaXN0PiBFbGVtZW50Ojpn
ZXRDbGllbnRSZWN0cygpCiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJCb3hN
b2RlbE9iamVjdCA9IHRoaXMtPnJlbmRlckJveE1vZGVsT2JqZWN0KCk7CiAgICAgaWYgKCFyZW5k
ZXJCb3hNb2RlbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIERP
TVJlY3RMaXN0OjpjcmVhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgU1ZHIGVsZW1lbnRz
LgogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGFibGUvaW5saW5lLXRhYmxlIHdpdGggYSBjYXB0aW9u
LgpAQCAtMTE1OCw3ICsxMTU5LDcgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gRWxlbWVudDo6Z2V0
Q2xpZW50UmVjdHMoKQogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIHJlbmRlckJv
eE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKICAgICBkb2N1bWVudCgpLmNvbnZl
cnRBYnNvbHV0ZVRvQ2xpZW50UXVhZHMocXVhZHMsIHJlbmRlckJveE1vZGVsT2JqZWN0LT5zdHls
ZSgpKTsKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJu
IERPTVJlY3RMaXN0OjpjcmVhdGUocXVhZHMpOwogfQogCiBSZWY8RE9NUmVjdD4gRWxlbWVudDo6
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDk0MTQ2OWI1MTcx
Li5jM2I3MzFkZGVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOwogY2xhc3Mg
RGF0YXNldERPTVN0cmluZ01hcDsKIGNsYXNzIERPTVJlY3Q7CitjbGFzcyBET01SZWN0TGlzdDsK
IGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEhUTUxE
b2N1bWVudDsKQEAgLTE3Miw3ICsxNzMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBJbnRSZWN0IGJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOwogCi0gICAgVmVjdG9yPFJlZjxET01S
ZWN0Pj4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBSZWY8RE9NUmVjdExpc3Q+IGdldENsaWVudFJl
Y3RzKCk7CiAgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAgICAg
Ly8gUmV0dXJucyB0aGUgYWJzb2x1dGUgYm91bmRpbmcgYm94IHRyYW5zbGF0ZWQgaW50byBjbGll
bnQgY29vcmRpbmF0ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggNzllYWJiNmYxZmUuLjRh
MjNmZmJkYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCkBAIC02OCw3ICs2OCw3IEBACiAgICAg
W01heVRocm93RXhjZXB0aW9uXSB2b2lkIGluc2VydEFkamFjZW50VGV4dChET01TdHJpbmcgd2hl
cmUsIERPTVN0cmluZyBkYXRhKTsgLy8gSGlzdG9yaWNhbC4KIAogICAgIC8vIENTU09NLXZpZXcg
ZXh0ZW5zaW9ucyAoaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2V4dGVuc2lv
bi10by10aGUtZWxlbWVudC1pbnRlcmZhY2UpLgotICAgIHNlcXVlbmNlPERPTVJlY3Q+IGdldENs
aWVudFJlY3RzKCk7CisgICAgRE9NUmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsKICAgICBbTmV3
T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgIHZvaWQgc2Nyb2xs
SW50b1ZpZXcob3B0aW9uYWwgYm9vbGVhbiBhbGlnbldpdGhUb3AgPSB0cnVlKTsgLy8gRklYTUU6
IFBhcmFtZXRlciB0eXBlIHNob3VsZCBiZSAoYm9vbGVhbiBvciBvYmplY3QpLgogICAgIFtJbXBs
ZW1lbnRlZEFzPXNjcm9sbFRvXSB2b2lkIHNjcm9sbChvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMg
b3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA4MmY1ODllZjQ5Mi4uOGU5NTU2NTBkYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29tbWVu
dC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIKKyNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKQEAgLTE3NjIsOSArMTc2Myw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJhbmdl
OjpleHBhbmQoY29uc3QgU3RyaW5nJiB1bml0KQogICAgIHJldHVybiBzZXRFbmQoKmVuZENvbnRh
aW5lciwgZW5kLmRlZXBFcXVpdmFsZW50KCkuY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgp
KTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUmFuZ2U6OmdldENsaWVudFJlY3RzKCkgY29u
c3QKK1JlZjxET01SZWN0TGlzdD4gUmFuZ2U6OmdldENsaWVudFJlY3RzKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3Rvcihib3JkZXJBbmRUZXh0UXVhZHMoQ29vcmRpbmF0
ZVNwYWNlOjpDbGllbnQpKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShib3JkZXJB
bmRUZXh0UXVhZHMoQ29vcmRpbmF0ZVNwYWNlOjpDbGllbnQpKTsKIH0KIAogUmVmPERPTVJlY3Q+
IFJhbmdlOjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCBl
YTdjOTQ1Yzg2Yy4uM2M1NGY5NGE4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0zNCw4ICszNCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRE9NUmVjdDsKIGNsYXNzIENvbnRhaW5l
ck5vZGU7CitjbGFzcyBET01SZWN0OworY2xhc3MgRE9NUmVjdExpc3Q7CiBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBGbG9hdFF1YWQ7CkBAIC0xNDEsNyAr
MTQyLDcgQEAgcHVibGljOgogICAgIC8vIGZvciBkZXRhaWxzLgogICAgIFdFQkNPUkVfRVhQT1JU
IEV4Y2VwdGlvbk9yPHZvaWQ+IGV4cGFuZChjb25zdCBTdHJpbmcmKTsKIAotICAgIFZlY3RvcjxS
ZWY8RE9NUmVjdD4+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7CisgICAgUmVmPERPTVJlY3RMaXN0
PiBnZXRDbGllbnRSZWN0cygpIGNvbnN0OwogICAgIFJlZjxET01SZWN0PiBnZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSBjb25zdDsKIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuaWRsCmluZGV4IDRjNGRiNGUyMWM4Li44OGZjODA1ZDY1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRs
CkBAIC02NCw3ICs2NCw3IEBACiAgICAgRE9NU3RyaW5nIHRvU3RyaW5nKCk7IC8vIEZJWE1FOiBT
aG91bGQgYmUgc3RyaW5naWZpZXIgb25jZSB3ZSBzdXBwb3J0IGl0LgogCiAgICAgLy8gRXh0ZW5z
aW9ucyBmcm9tIENTU09NLXZpZXcgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNleHRlbnNpb25zLXRvLXRoZS1yYW5nZS1pbnRlcmZhY2UpLgotICAgIHNlcXVlbmNlPERPTVJl
Y3Q+IGdldENsaWVudFJlY3RzKCk7CisgICAgRE9NUmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsK
ICAgICBbTmV3T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAgICAg
Ly8gRXh0ZW5zaW9ucyBmcm9tIERPTVBhcnNpbmcgYW5kIFNlcmlhbGl6YXRpb24gc3BlY2lmaWNh
dGlvbiAoaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0RPTS1QYXJzaW5nLyNleHRlbnNpb25zLXRvLXRo
ZS1yYW5nZS1pbnRlcmZhY2UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYWRjOWUxNzcwYTkuLjBm
Nzg1ZWRjYTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRPTVJlY3QuaCIKKyNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1
ZGUgIkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgpAQCAtNDA1LDcgKzQwNiw3
IEBAIFN0cmluZyBQYWdlOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoKQogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6bm9uRmFz
dFNjcm9sbGFibGVSZWN0cygpCitSZWY8RE9NUmVjdExpc3Q+IFBhZ2U6Om5vbkZhc3RTY3JvbGxh
YmxlUmVjdHMoKQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+
ZG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dCgpOwpAQCAtNDIxLDEw
ICs0MjIsMTAgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6bm9uRmFzdFNjcm9sbGFibGVS
ZWN0cygpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7ICsraSkKICAg
ICAgICAgcXVhZHNbaV0gPSBGbG9hdFJlY3QocmVjdHNbaV0pOwogCi0gICAgcmV0dXJuIGNyZWF0
ZURPTVJlY3RWZWN0b3IocXVhZHMpOworICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKHF1
YWRzKTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6dG91Y2hFdmVudFJlY3RzRm9y
RXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCitSZWY8RE9NUmVjdExpc3Q+IFBhZ2U6OnRv
dWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQogewogICAgIGlm
IChEb2N1bWVudCogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAg
ICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBAIC00NDQsMTAgKzQ0NSwxMCBAQCBWZWN0b3I8
UmVmPERPTVJlY3Q+PiBQYWdlOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcm
IGV2ZW50TmFtZSkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytp
KQogICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVjdChyZWN0c1tpXSk7CiAKLSAgICByZXR1cm4g
Y3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVh
dGUocXVhZHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpwYXNzaXZlVG91Y2hF
dmVudExpc3RlbmVyUmVjdHMoKQorUmVmPERPTVJlY3RMaXN0PiBQYWdlOjpwYXNzaXZlVG91Y2hF
dmVudExpc3RlbmVyUmVjdHMoKQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX21h
aW5GcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7
CkBAIC00NjQsNyArNDY1LDcgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6cGFzc2l2ZVRv
dWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3Rz
LnNpemUoKTsgKytpKQogICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVjdChyZWN0c1tpXSk7CiAK
LSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJl
Y3RMaXN0OjpjcmVhdGUocXVhZHMpOwogfQogCiAjaWYgRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVE
SUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDdiZWY1MGNmMWVlLi5iMjJhNDI5YWZlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTg1LDYgKzg1LDcgQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBDb250ZXh0TWVudUNs
aWVudDsKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsKIGNsYXNzIERPTVJlY3Q7CitjbGFz
cyBET01SZWN0TGlzdDsKIGNsYXNzIERhdGFiYXNlUHJvdmlkZXI7CiBjbGFzcyBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDsKIGNsYXNzIERyYWdDYXJldENvbnRyb2xsZXI7CkBAIC0yMzgsMTAgKzIz
OSwxMCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nU3Rh
dGVUcmVlQXNUZXh0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29uc0FzVGV4dCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RE9N
UmVjdD4+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
RE9NUmVjdExpc3Q+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0
cmluZyYgZXZlbnROYW1lKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPERPTVJlY3Q+
PiBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8RE9NUmVjdExpc3Q+IHRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZl
bnROYW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8RE9NUmVjdExpc3Q+IHBhc3NpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJSZWN0cygpOwogCiAgICAgU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qg
eyByZXR1cm4gKm1fc2V0dGluZ3M7IH0KICAgICBQcm9ncmVzc1RyYWNrZXImIHByb2dyZXNzKCkg
Y29uc3QgeyByZXR1cm4gKm1fcHJvZ3Jlc3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCA3ZWFjYjBmZjU0Yy4uZTRkMDJkNDExYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIFJlZjxET01SZWN0PiBJbnRlcm5h
bHM6OmJvdW5kaW5nQm94KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIERPTVJlY3Q6OmNy
ZWF0ZShyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMo
KSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Omlu
c3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IElu
dGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKQogewogICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT5wYWdlKCkpCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERP
TVJlY3Q+Pj4gSW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpCiAKICAgICBIaWdo
bGlnaHQgaGlnaGxpZ2h0OwogICAgIGRvY3VtZW50LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRl
U3lzdGVtOjpWaWV3KTsKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihoaWdobGlnaHQu
cXVhZHMpOworICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7
CiB9CiAKIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRP
YmplY3QoKQpAQCAtMTc5OSw3ICsxNzk5LDcgQEAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVy
bmFsczo6dG91Y2hFdmVudEhhbmRsZXJDb3VudCgpCiAgICAgcmV0dXJuIGRvY3VtZW50LT50b3Vj
aEV2ZW50SGFuZGxlckNvdW50KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVj
dD4+PiBJbnRlcm5hbHM6OnRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZl
bnROYW1lKQorRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjp0b3VjaEV2
ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKIHsKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+cGFnZSgpKQpAQCAtMTgwOCw3ICsxODA4LDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9y
PFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3Qg
U3RyaW4KICAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+dG91Y2hFdmVudFJlY3RzRm9yRXZl
bnQoZXZlbnROYW1lKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IElu
dGVybmFsczo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJl
ZjxET01SZWN0TGlzdD4+IEludGVybmFsczo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3Rz
KCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggNTJlMTY4YmY2MzQuLmJkMGJmMGNjMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBdWRpb0NvbnRleHQ7CiBjbGFzcyBET01SZWN0OworY2xhc3MgRE9NUmVjdExpc3Q7CiBjbGFz
cyBET01VUkw7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBEb2N1bWVudDsKQEAgLTE4Myw3ICsx
ODQsNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8RE9NUmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCYp
OwogCi0gICAgRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IGluc3BlY3RvckhpZ2hs
aWdodFJlY3RzKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gaW5zcGVjdG9y
SGlnaGxpZ2h0UmVjdHMoKTsKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IGluc3BlY3RvckhpZ2hs
aWdodE9iamVjdCgpOwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IG1hcmtlckNvdW50Rm9y
Tm9kZShOb2RlJiwgY29uc3QgU3RyaW5nJik7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHVibGljOgog
ICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAg
RXhjZXB0aW9uT3I8dW5zaWduZWQ+IHRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIAotICAgIEV4
Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChj
b25zdCBTdHJpbmcmKTsKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4gcGFz
c2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJl
Y3RMaXN0Pj4gdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJik7CisgICAgRXhj
ZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3Rz
KCk7CiAKICAgICBFeGNlcHRpb25PcjxSZWZQdHI8Tm9kZUxpc3Q+PiBub2Rlc0Zyb21SZWN0KERv
Y3VtZW50JiwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdo
dFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBi
b29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBhbGxvd0No
aWxkRnJhbWVDb250ZW50KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDVmZDg2YWM0OGY1Li44MTIwNzBlYWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtMTUzLDcgKzE1Myw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogCiAgICAgRE9NUmVjdCBib3VuZGluZ0JveChFbGVtZW50IGVsZW1lbnQpOwogCi0gICAg
W01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5jZTxET01SZWN0PiBpbnNwZWN0b3JIaWdobGlnaHRS
ZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVjdExpc3QgaW5zcGVjdG9ySGln
aGxpZ2h0UmVjdHMoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyBpbnNwZWN0
b3JIaWdobGlnaHRPYmplY3QoKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5zaWduZWQg
bG9uZyBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSBub2RlLCBET01TdHJpbmcgbWFya2VyVHlwZSk7
CkBAIC0yMTYsOCArMjE2LDggQEAgZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAgICAg
W01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQo
KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgdG91Y2hFdmVudEhhbmRs
ZXJDb3VudCgpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5jZTxET01SZWN0PiB0
b3VjaEV2ZW50UmVjdHNGb3JFdmVudChET01TdHJpbmcgZXZlbnROYW1lKTsKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHNlcXVlbmNlPERPTVJlY3Q+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJS
ZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVjdExpc3QgdG91Y2hFdmVudFJl
Y3RzRm9yRXZlbnQoRE9NU3RyaW5nIGV2ZW50TmFtZSk7CisgICAgW01heVRocm93RXhjZXB0aW9u
XSBET01SZWN0TGlzdCBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsKIAogICAgIFtN
YXlUaHJvd0V4Y2VwdGlvbl0gTm9kZUxpc3Q/IG5vZGVzRnJvbVJlY3QoRG9jdW1lbnQgZG9jdW1l
bnQsIGxvbmcgeCwgbG9uZyB5LAogICAgICAgICB1bnNpZ25lZCBsb25nIHRvcFBhZGRpbmcsIHVu
c2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBsb25nIGJvdHRvbVBhZGRpbmcsIHVu
c2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311529</attachid>
            <date>2017-05-30 12:41:58 -0700</date>
            <delta_ts>2017-05-30 13:03:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>172703_DOMRectList_wip.patch</filename>
            <type>text/plain</type>
            <size>31378</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRmZmRlM2EyODcuLmExMTBiNGUyZjFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDE5LDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCiAgICAgZG9tL0RPTVJlY3QuaWRs
CiAgICAgZG9tL0RPTVJlY3RJbml0LmlkbAorICAgIGRvbS9ET01SZWN0TGlzdC5pZGwKICAgICBk
b20vRE9NUmVjdFJlYWRPbmx5LmlkbAogICAgIGRvbS9ET01TdHJpbmdMaXN0LmlkbAogICAgIGRv
bS9ET01TdHJpbmdNYXAuaWRsCkBAIC0xNDQ4LDcgKzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZG9tL0RPTUVycm9yLmNwcAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
ICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKLSAgICBkb20vRE9NUmVjdC5jcHAK
KyAgICBkb20vRE9NUmVjdExpc3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3BwCiAgICAg
ZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2NzNmYjY1NDg4Li43MDY2NmYwZWE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTksNiArMzU5LDcgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NUmVj
dEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0TGlzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0RPTVJlY3RSZWFkT25seS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RP
TVN0cmluZ0xpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4MGEwZWM1Y2MxZC4uZDAyZjVmYzIzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzYsOSArMTkzNiwxMyBAQAog
CQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyogSlNVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMDQ1RUYxREFBMTA0RjAwQjBE
OEI5IC8qIEpTVUlFdmVudEluaXQuaCAqLzsgfTsKIAkJNDY1MzA3RDExREI2RUU0QTAwRTQxMzdD
IC8qIEpTVUlFdmVudEluaXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNFMDQ1RUUxREFBMTA0RjAwQjBEOEI5IC8qIEpTVUlFdmVudEluaXQuY3Bw
ICovOyB9OwogCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
Q29jb2EubW0gKi87IH07CisJCTQ2NkRDNkFDMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLzsgfTsKKwkJNDY2
RUQ4RDMxRURFMDE0NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkVEOEQyMUVERTAxMzUwMDVFNDNGNiAv
KiBKU0RPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2NzFFMDY1MUQ2N0E1OTYwMEM2QjQ5NyAvKiBD
YW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmNwcCAqLzsgfTsKIAkJ
NDY3MUUwNjYxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAv
KiBDYW52YXNQYXRoLmggKi87IH07CiAJCTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25v
cmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJ
Z25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKKwkJNDY4MzQ0
REYxRURERkFBQTAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBE
T01SZWN0TGlzdC5jcHAgKi87IH07CisJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2ODlG
MUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBG
aWxlTWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZl
bnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2
Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVN
b25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTMzMzAsNyArMzMzNCw2IEBACiAJCTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01v
dXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9
OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVD
QTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzEyMEM3MTFDNTZG
M0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBNzFDNTZFODNBMDBGM0YwRTMgLyogSFRNTERh
dGFFbGVtZW50LmggKi87IH07Ci0JCTgzMTQ5RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01SZWN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ5
RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLzsgfTsKIAkJODMyQjg0MzQxOUQ4
RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8q
IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovOyB9OwogCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYw
NTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyog
VmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFu
Z2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtOTYzMSw5ICs5NjM0LDE0IEBACiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRh
Z0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMTFC
ODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjZE
QzZBQjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2Fu
dmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQ
YXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3QjAw
QzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjczMDIwMTFDNEVG
RTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5sb2Fk
Q291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzNDRE
QzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVJlY3RMaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REQxRURERkE1RjAwQjc3OTVC
IC8qIERPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8q
IERPTVJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZU1ldGFkYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBK
U0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDNjk2
QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1BVTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODcsNyArMTEzOTUsNiBAQAogCQk4MzA3ODRCMTFDNTJFRTE5MDAxMDREMUQgLyogWE1MRG9j
dW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MRG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwQTM2QkExREFDNUZBNzAwNkQ3RDA5IC8q
IEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODMxNDlGRjUxRUIzOEIxMjAwMDg5NjY1IC8qIERPTVJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0
YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERh
dGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyOUE0MTcxRUMy
NUIyQjAwOEVENEJFIC8qIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzI5RENDMjFDN0E2QUUzMDA3MzBCMzMgLyog
SFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRN
TEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTk4Myw2ICsyMTk5MCw4IEBACiAJCQkJMEY0NzEwQjYxREI1NkJFODAwMkRDRUMzIC8qIEpT
RE9NUmVjdC5oICovLAogCQkJCTBGNDcxMEI3MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RJ
bml0LmNwcCAqLywKIAkJCQkwRjQ3MTBCODFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0SW5p
dC5oICovLAorCQkJCTQ2NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNw
cCAqLywKKwkJCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5oICov
LAogCQkJCTBGNDcxMEI5MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RSZWFkT25seS5jcHAg
Ki8sCiAJCQkJMEY0NzEwQkExREI1NkJFODAwMkRDRUMzIC8qIEpTRE9NUmVjdFJlYWRPbmx5Lmgg
Ki8sCiAJCQkJQzUxMzdDRjAxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5jcHAg
Ki8sCkBAIC0yNTYxMyw5ICsyNTYyMiwxMSBAQAogCQkJCTBGNDk2NkExMURCNDA5MDEwMEEyNzRC
QiAvKiBET01Qb2ludEluaXQuaWRsICovLAogCQkJCTBGNDk2NjlCMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludFJlYWRPbmx5LmggKi8sCiAJCQkJMEY0OTY2OUMxREI0MDhDMTAwQTI3NEJCIC8q
IERPTVBvaW50UmVhZE9ubHkuaWRsICovLAotCQkJCTgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAv
KiBET01SZWN0LmNwcCAqLywKIAkJCQkwRjQ3MTBBOTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVj
dC5oICovLAogCQkJCTBGNDcxMEFBMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0LmlkbCAqLywK
KwkJCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICovLAorCQkJ
CTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovLAorCQkJCTQ2ODM0
NERDMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8sCiAJCQkJMEY0NzEwQUIx
REI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmggKi8sCiAJCQkJMEY0NzEwQUMxREI1NkFG
QzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmlkbCAqLywKIAkJCQkwRjQ3MTBBRDFEQjU2QUZDMDAy
RENFQzMgLyogRE9NUmVjdFJlYWRPbmx5LmggKi8sCkBAIC0yNzA3Myw2ICsyNzA4NCw3IEBACiAJ
CQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTg4NjA0QjQwRjJFNjU0QTAwMEI2NDQzIC8qIERP
TVRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyog
RE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NkZDMkIwQzEyMzcwREEwMDA2QTk5
MUEgLyogRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3Njk5LDYgKzI3NzExLDcg
QEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0
b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY2RUQ4RDMxRURFMDE0
NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAw
MEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QzdB
NjlGMUU1NzkxNzgwMEM2N0Q3MSAvKiBKU0Jhc2ljQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTMwNjk4LDYgKzMwNzExLDcgQEAKIAkJCQk1MTAxODQ2QTBCMDg2MDJB
MDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMEVEQTc3NDE0
M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwODFF
M0MzM0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMTA4MCw3ICszMTA5NCw2IEBACiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBB
QUY3IC8qIERPTVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUIwRDc0NUUyQjAw
NjQ0MkU5IC8qIERPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTRFRjBENzQ1
RTM4MDA2NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODMx
NDlGRjYxRUIzOEIzNzAwMDg5NjY1IC8qIERPTVJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMzc4MSw2ICszMzc5NCw3IEBACiAJCQkJQjEwQjY5ODExNDBD
MTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDgyMDMxMTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDY2REM2QUMxRURFMDIxRDAwNzQ2MjI0IC8qIEpTRE9NUmVj
dExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNTAwQTQ0RUZDNzAwRjk5MkUwIC8q
IFdoZWVsRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUxOTUxNkIxQjY1OThEMjAwREY2
RUVGIC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUVF
RTU1QzFCNjZBMDQ3MDA4RTJDQkMgLyogV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAppbmRleCAxNDUzMzgxYzBlNC4uOGFmNGYwY2U2NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVJlY3QuaApAQCAtNTgsNiArNTgsNCBAQCBwcml2YXRlOgogICAgIERPTVJl
Y3QoKSA9IGRlZmF1bHQ7CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPERPTVJlY3Q+
PiBjcmVhdGVET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+Jik7Ci0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5jcHAKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9kb20v
RE9NUmVjdExpc3QuY3BwCmluZGV4IGMzOTZlNjI5MzU3Li4yZDMzZDI5MTA1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01SZWN0TGlzdC5jcHAKQEAgLTI0LDE5ICsyNCwyMSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIK
IAotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkRPTVJlY3QuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01SZWN0VmVjdG9y
KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK0RPTVJlY3RMaXN0OjpET01SZWN0TGlz
dChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiB7Ci0gICAgVmVjdG9yPFJlZjxET01S
ZWN0Pj4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNp
emUoKSk7CisgICAgbV9pdGVtcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNpemUoKSk7
CiAgICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRB
cHBlbmQoRE9NUmVjdDo6Y3JlYXRlKHF1YWQuYm91bmRpbmdCb3goKSkpOwotICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIG1faXRlbXMudW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6OmNyZWF0ZShx
dWFkLmJvdW5kaW5nQm94KCkpKTsKIH0KIAorRE9NUmVjdExpc3Q6On5ET01SZWN0TGlzdCgpCit7
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgxODBhNzQ3YWRlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmxvYXRRdWFkLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NUmVjdDsKKworY2xhc3MgRE9NUmVjdExp
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxET01SZWN0TGlzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZShjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVjdExpc3QocXVhZHMpKTsgfQorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVj
dExpc3QoKSk7IH0KKyAgICB+RE9NUmVjdExpc3QoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOyB9CisgICAgRE9NUmVjdCogaXRlbSh1bnNp
Z25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPCBtX2l0ZW1zLnNpemUoKSA/IG1faXRlbXNbaW5k
ZXhdLnB0cigpIDogbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERPTVJlY3RM
aXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcyk7CisgICAgRE9NUmVjdExpc3QoKSA9
IGRlZmF1bHQ7CisKKyAgICBWZWN0b3I8UmVmPERPTVJlY3Q+PiBtX2l0ZW1zOworfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmU2MTEyODNkYjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVJlY3RMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
ICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKKyAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZSwKKyAgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIERPTVJlY3RMaXN0IHsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVy
IERPTVJlY3QgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggYzg3YTZkNjhlMTEuLjJiZDE3YzY1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUu
aCIKICNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01SZWN0
LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIK
ICNpbmNsdWRlICJEb2N1bWVudEFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIgpAQCAtMTE0NCwxMyArMTE0NSwxMyBAQCBMYXlvdXRSZWN0IEVsZW1lbnQ6
OmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVs
ZW1lbgogICAgIHJldHVybiBhYnNvbHV0ZUV2ZW50Qm91bmRzT2ZFbGVtZW50QW5kRGVzY2VuZGFu
dHMoaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxlbWVudHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJl
Y3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpCitSZWY8RE9NUmVjdExpc3Q+IEVsZW1lbnQ6
OmdldENsaWVudFJlY3RzKCkKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlckJv
eE1vZGVsT2JqZWN0ID0gdGhpcy0+cmVuZGVyQm94TW9kZWxPYmplY3QoKTsKICAgICBpZiAoIXJl
bmRlckJveE1vZGVsT2JqZWN0KQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4g
RE9NUmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRsZSBTVkcgZWxlbWVu
dHMuCiAgICAgLy8gRklYTUU6IEhhbmRsZSB0YWJsZS9pbmxpbmUtdGFibGUgd2l0aCBhIGNhcHRp
b24uCkBAIC0xMTU4LDcgKzExNTksNyBAQCBWZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50Ojpn
ZXRDbGllbnRSZWN0cygpCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7CiAgICAgcmVuZGVy
Qm94TW9kZWxPYmplY3QtPmFic29sdXRlUXVhZHMocXVhZHMpOwogICAgIGRvY3VtZW50KCkuY29u
dmVydEFic29sdXRlVG9DbGllbnRRdWFkcyhxdWFkcywgcmVuZGVyQm94TW9kZWxPYmplY3QtPnN0
eWxlKCkpOwotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1
cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9CiAKIFJlZjxET01SZWN0PiBFbGVtZW50
OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOTQxNDY5YjUx
NzEuLmMzYjczMWRkZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU7CiBjbGFz
cyBEYXRhc2V0RE9NU3RyaW5nTWFwOwogY2xhc3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0
OwogY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xhc3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSFRN
TERvY3VtZW50OwpAQCAtMTcyLDcgKzE3Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIEludFJlY3QgYm91bmRzSW5Sb290Vmlld1NwYWNlKCk7CiAKLSAgICBWZWN0b3I8UmVmPERP
TVJlY3Q+PiBnZXRDbGllbnRSZWN0cygpOworICAgIFJlZjxET01SZWN0TGlzdD4gZ2V0Q2xpZW50
UmVjdHMoKTsKICAgICBSZWY8RE9NUmVjdD4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAg
ICAvLyBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBib3VuZGluZyBib3ggdHJhbnNsYXRlZCBpbnRvIGNs
aWVudCBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRleCA3OWVhYmI2ZjFmZS4u
NGEyM2ZmYmRjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTY4LDcgKzY4LDcgQEAKICAg
ICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgaW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3
aGVyZSwgRE9NU3RyaW5nIGRhdGEpOyAvLyBIaXN0b3JpY2FsLgogCiAgICAgLy8gQ1NTT00tdmll
dyBleHRlbnNpb25zIChodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZXh0ZW5z
aW9uLXRvLXRoZS1lbGVtZW50LWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0
Q2xpZW50UmVjdHMoKTsKKyAgICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtO
ZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgdm9pZCBzY3Jv
bGxJbnRvVmlldyhvcHRpb25hbCBib29sZWFuIGFsaWduV2l0aFRvcCA9IHRydWUpOyAvLyBGSVhN
RTogUGFyYW1ldGVyIHR5cGUgc2hvdWxkIGJlIChib29sZWFuIG9yIG9iamVjdCkuCiAgICAgW0lt
cGxlbWVudGVkQXM9c2Nyb2xsVG9dIHZvaWQgc2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9u
cyBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDgyZjU4OWVmNDkyLi44ZTk1NTY1MGRh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb21t
ZW50LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNs
dWRlICJFdmVudC5oIgpAQCAtMTc2Miw5ICsxNzYzLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUmFu
Z2U6OmV4cGFuZChjb25zdCBTdHJpbmcmIHVuaXQpCiAgICAgcmV0dXJuIHNldEVuZCgqZW5kQ29u
dGFpbmVyLCBlbmQuZGVlcEVxdWl2YWxlbnQoKS5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2Rl
KCkpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBj
b25zdAorUmVmPERPTVJlY3RMaXN0PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAogewot
ICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGlu
YXRlU3BhY2U6OkNsaWVudCkpOworICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGJvcmRl
ckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOwogfQogCiBSZWY8RE9NUmVj
dD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4
IGVhN2M5NDVjODZjLi4zYzU0Zjk0YTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTM0LDggKzM0LDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBET01SZWN0OwogY2xhc3MgQ29udGFp
bmVyTm9kZTsKK2NsYXNzIERPTVJlY3Q7CitjbGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEZsb2F0UXVhZDsKQEAgLTE0MSw3
ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gZm9yIGRldGFpbHMuCiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uT3I8dm9pZD4gZXhwYW5kKGNvbnN0IFN0cmluZyYpOwogCi0gICAgVmVjdG9y
PFJlZjxET01SZWN0Pj4gZ2V0Q2xpZW50UmVjdHMoKSBjb25zdDsKKyAgICBSZWY8RE9NUmVjdExp
c3Q+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7CiAgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5pZGwKaW5kZXggNGM0ZGI0ZTIxYzguLjg4ZmM4MDVkNjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5p
ZGwKQEAgLTY0LDcgKzY0LDcgQEAKICAgICBET01TdHJpbmcgdG9TdHJpbmcoKTsgLy8gRklYTUU6
IFNob3VsZCBiZSBzdHJpbmdpZmllciBvbmNlIHdlIHN1cHBvcnQgaXQuCiAKICAgICAvLyBFeHRl
bnNpb25zIGZyb20gQ1NTT00tdmlldyAoaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2V4dGVuc2lvbnMtdG8tdGhlLXJhbmdlLWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9N
UmVjdD4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygp
OwogICAgIFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAg
ICAvLyBFeHRlbnNpb25zIGZyb20gRE9NUGFyc2luZyBhbmQgU2VyaWFsaXphdGlvbiBzcGVjaWZp
Y2F0aW9uIChodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI2V4dGVuc2lvbnMtdG8t
dGhlLXJhbmdlLWludGVyZmFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBhZGM5ZTE3NzBhOS4u
MGY3ODVlZGNhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCkBAIC00MDUsNyArNDA2
LDcgQEAgU3RyaW5nIFBhZ2U6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpCiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpub25G
YXN0U2Nyb2xsYWJsZVJlY3RzKCkKK1JlZjxET01SZWN0TGlzdD4gUGFnZTo6bm9uRmFzdFNjcm9s
bGFibGVSZWN0cygpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1l
LT5kb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBAIC00MjEs
MTAgKzQyMiwxMCBAQCBWZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpub25GYXN0U2Nyb2xsYWJs
ZVJlY3RzKCkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQog
ICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVjdChyZWN0c1tpXSk7CiAKLSAgICByZXR1cm4gY3Jl
YXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUo
cXVhZHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjp0b3VjaEV2ZW50UmVjdHNG
b3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKK1JlZjxET01SZWN0TGlzdD4gUGFnZTo6
dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAg
aWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAg
ICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsKQEAgLTQ0NCwxMCArNDQ1LDEwIEBAIFZlY3Rv
cjxSZWY8RE9NUmVjdD4+IFBhZ2U6OnRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmlu
ZyYgZXZlbnROYW1lKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyAr
K2kpCiAgICAgICAgIHF1YWRzW2ldID0gRmxvYXRSZWN0KHJlY3RzW2ldKTsKIAotICAgIHJldHVy
biBjcmVhdGVET01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNy
ZWF0ZShxdWFkcyk7CiB9CiAKLVZlY3RvcjxSZWY8RE9NUmVjdD4+IFBhZ2U6OnBhc3NpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJSZWN0cygpCitSZWY8RE9NUmVjdExpc3Q+IFBhZ2U6OnBhc3NpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJSZWN0cygpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1f
bWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQo
KTsKQEAgLTQ2NCw3ICs0NjUsNyBAQCBWZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpwYXNzaXZl
VG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVj
dHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHF1YWRzW2ldID0gRmxvYXRSZWN0KHJlY3RzW2ldKTsK
IAotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9N
UmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9CiAKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggN2JlZjUwY2YxZWUuLmIyMmE0MjlhZmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtODUsNiArODUsNyBAQCBjbGFzcyBDb2xvcjsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50OwogY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyOwogY2xhc3MgRE9NUmVjdDsKK2Ns
YXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRGF0YWJhc2VQcm92aWRlcjsKIGNsYXNzIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OwogY2xhc3MgRHJhZ0NhcmV0Q29udHJvbGxlcjsKQEAgLTIzOCwxMCAr
MjM5LDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3luY2hyb25vdXNT
Y3JvbGxpbmdSZWFzb25zQXNUZXh0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxE
T01SZWN0Pj4gbm9uRmFzdFNjcm9sbGFibGVSZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZjxET01SZWN0TGlzdD4gbm9uRmFzdFNjcm9sbGFibGVSZWN0cygpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4gdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3Qg
U3RyaW5nJiBldmVudE5hbWUpOwotICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RE9NUmVj
dD4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JU
IFJlZjxET01SZWN0TGlzdD4gdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBl
dmVudE5hbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxET01SZWN0TGlzdD4gcGFzc2l2ZVRv
dWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAKICAgICBTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dCB7IHJldHVybiAqbV9zZXR0aW5nczsgfQogICAgIFByb2dyZXNzVHJhY2tlciYgcHJvZ3Jlc3Mo
KSBjb25zdCB7IHJldHVybiAqbV9wcm9ncmVzczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDdlYWNiMGZmNTRjLi44NDllODBiOTkzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMTM1NSw3ICsxMzU1LDcgQEAgUmVmPERPTVJlY3Q+IEludGVy
bmFsczo6Ym91bmRpbmdCb3goRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1cm4gRE9NUmVjdDo6
Y3JlYXRlKHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3Jt
cygpKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6
aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKQorRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4g
SW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1l
bnQtPnBhZ2UoKSkKQEAgLTEzNjMsNyArMTM2Myw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8
RE9NUmVjdD4+PiBJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKIAogICAgIEhp
Z2hsaWdodCBoaWdobGlnaHQ7CiAgICAgZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmdldEhpZ2hsaWdodChoaWdobGlnaHQsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5h
dGVTeXN0ZW06OlZpZXcpOwotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKGhpZ2hsaWdo
dC5xdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUoaGlnaGxpZ2h0LnF1YWRz
KTsKIH0KIAogRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdo
dE9iamVjdCgpCkBAIC0xNzk5LDcgKzE3OTksNyBAQCBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gSW50
ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KCkKICAgICByZXR1cm4gZG9jdW1lbnQtPnRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01S
ZWN0Pj4+IEludGVybmFsczo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBl
dmVudE5hbWUpCitFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBJbnRlcm5hbHM6OnRvdWNo
RXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQogewogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5wYWdlKCkpCkBAIC0xODA4LDcgKzE4MDgsNyBAQCBFeGNlcHRpb25PcjxWZWN0
b3I8UmVmPERPTVJlY3Q+Pj4gSW50ZXJuYWxzOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25z
dCBTdHJpbgogICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT50b3VjaEV2ZW50UmVjdHNGb3JF
dmVudChldmVudE5hbWUpOwogfQogCi1FeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4g
SW50ZXJuYWxzOjpwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKQorRXhjZXB0aW9uT3I8
UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjpwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVj
dHMoKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAg
IGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCkBAIC0yMzMwLDcgKzIzMzAsNyBA
QCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6bWFpblRocmVhZFNjcm9sbGluZ1JlYXNv
bnMoKSBjb25zdAogICAgIHJldHVybiBwYWdlLT5zeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNB
c1RleHQoKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFs
czo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpIGNvbnN0CitFeGNlcHRpb25PcjxSZWY8RE9NUmVj
dExpc3Q+PiBJbnRlcm5hbHM6Om5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdAogewogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1l
bnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKQpAQCAtMjMzOCw3ICsyMzM4LDcgQEAgRXhjZXB0aW9u
T3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6bm9uRmFzdFNjcm9sbGFibGVSZWN0
cygpIGNvbnN0CiAKICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIHJldHVybiBWZWN0b3I8UmVmPERPTVJlY3Q+PiB7IH07CisgICAgICAg
IHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKCk7CiAKICAgICByZXR1cm4gcGFnZS0+bm9uRmFz
dFNjcm9sbGFibGVSZWN0cygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXgg
NTJlMTY4YmY2MzQuLjcyNjk1ZGQ2NjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0NvbnRl
eHQ7CiBjbGFzcyBET01SZWN0OworY2xhc3MgRE9NUmVjdExpc3Q7CiBjbGFzcyBET01VUkw7CiBj
bGFzcyBET01XaW5kb3c7CiBjbGFzcyBEb2N1bWVudDsKQEAgLTE4Myw3ICsxODQsNyBAQCBwdWJs
aWM6CiAKICAgICBSZWY8RE9NUmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCYpOwogCi0gICAgRXhj
ZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IGluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCk7
CisgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVj
dHMoKTsKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IGluc3BlY3RvckhpZ2hsaWdodE9iamVjdCgp
OwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IG1hcmtlckNvdW50Rm9yTm9kZShOb2RlJiwg
Y29uc3QgU3RyaW5nJik7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHVibGljOgogICAgIEV4Y2VwdGlv
bk9yPHVuc2lnbmVkPiB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAgRXhjZXB0aW9uT3I8
dW5zaWduZWQ+IHRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIAotICAgIEV4Y2VwdGlvbk9yPFZl
Y3RvcjxSZWY8RE9NUmVjdD4+PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcm
KTsKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4gcGFzc2l2ZVRvdWNoRXZl
bnRMaXN0ZW5lclJlY3RzKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gdG91
Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8UmVm
PERPTVJlY3RMaXN0Pj4gcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAKICAgICBF
eGNlcHRpb25PcjxSZWZQdHI8Tm9kZUxpc3Q+PiBub2Rlc0Zyb21SZWN0KERvY3VtZW50JiwgaW50
IHgsIGludCB5LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVu
c2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBib29sIGlnbm9yZUNs
aXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBhbGxvd0NoaWxkRnJhbWVDb250
ZW50KSBjb25zdDsKIApAQCAtMjk4LDcgKzI5OSw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25P
cjxTdHJpbmc+IHJlcGFpbnRSZWN0c0FzVGV4dCgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPFN0
cmluZz4gc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8
U3RyaW5nPiBtYWluVGhyZWFkU2Nyb2xsaW5nUmVhc29ucygpIGNvbnN0OwotICAgIEV4Y2VwdGlv
bk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkgY29uc3Q7
CisgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gbm9uRmFzdFNjcm9sbGFibGVSZWN0
cygpIGNvbnN0OwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWxlbWVudFVzZXNEaXNwbGF5
TGlzdERyYXdpbmcoRWxlbWVudCYsIGJvb2wgdXNlc0Rpc3BsYXlMaXN0RHJhd2luZyk7CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0RWxlbWVudFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KEVsZW1l
bnQmLCBib29sIGlzVHJhY2tpbmdSZXBsYXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IDVmZDg2YWM0OGY1Li44MTIwNzBlYWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMTUzLDcgKzE1Myw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVo
YXZpb3IgewogCiAgICAgRE9NUmVjdCBib3VuZGluZ0JveChFbGVtZW50IGVsZW1lbnQpOwogCi0g
ICAgW01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5jZTxET01SZWN0PiBpbnNwZWN0b3JIaWdobGln
aHRSZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVjdExpc3QgaW5zcGVjdG9y
SGlnaGxpZ2h0UmVjdHMoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyBpbnNw
ZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5zaWdu
ZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSBub2RlLCBET01TdHJpbmcgbWFya2VyVHlw
ZSk7CkBAIC0yMTYsOCArMjE2LDggQEAgZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAg
ICAgW01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIHdoZWVsRXZlbnRIYW5kbGVyQ291
bnQoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgdG91Y2hFdmVudEhh
bmRsZXJDb3VudCgpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5jZTxET01SZWN0
PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChET01TdHJpbmcgZXZlbnROYW1lKTsKLSAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIHNlcXVlbmNlPERPTVJlY3Q+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVu
ZXJSZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVjdExpc3QgdG91Y2hFdmVu
dFJlY3RzRm9yRXZlbnQoRE9NU3RyaW5nIGV2ZW50TmFtZSk7CisgICAgW01heVRocm93RXhjZXB0
aW9uXSBET01SZWN0TGlzdCBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsKIAogICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gTm9kZUxpc3Q/IG5vZGVzRnJvbVJlY3QoRG9jdW1lbnQgZG9j
dW1lbnQsIGxvbmcgeCwgbG9uZyB5LAogICAgICAgICB1bnNpZ25lZCBsb25nIHRvcFBhZGRpbmcs
IHVuc2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBsb25nIGJvdHRvbVBhZGRpbmcs
IHVuc2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311532</attachid>
            <date>2017-05-30 13:03:47 -0700</date>
            <delta_ts>2017-05-30 13:13:29 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>172703_DOMRectList_wip.patch</filename>
            <type>text/plain</type>
            <size>36908</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRmZmRlM2EyODcuLmExMTBiNGUyZjFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDE5LDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCiAgICAgZG9tL0RPTVJlY3QuaWRs
CiAgICAgZG9tL0RPTVJlY3RJbml0LmlkbAorICAgIGRvbS9ET01SZWN0TGlzdC5pZGwKICAgICBk
b20vRE9NUmVjdFJlYWRPbmx5LmlkbAogICAgIGRvbS9ET01TdHJpbmdMaXN0LmlkbAogICAgIGRv
bS9ET01TdHJpbmdNYXAuaWRsCkBAIC0xNDQ4LDcgKzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZG9tL0RPTUVycm9yLmNwcAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
ICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKLSAgICBkb20vRE9NUmVjdC5jcHAK
KyAgICBkb20vRE9NUmVjdExpc3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3BwCiAgICAg
ZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2NzNmYjY1NDg4Li43MDY2NmYwZWE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTksNiArMzU5LDcgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NUmVj
dEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0TGlzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0RPTVJlY3RSZWFkT25seS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RP
TVN0cmluZ0xpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4MGEwZWM1Y2MxZC4uZDAyZjVmYzIzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzYsOSArMTkzNiwxMyBAQAog
CQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyogSlNVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMDQ1RUYxREFBMTA0RjAwQjBE
OEI5IC8qIEpTVUlFdmVudEluaXQuaCAqLzsgfTsKIAkJNDY1MzA3RDExREI2RUU0QTAwRTQxMzdD
IC8qIEpTVUlFdmVudEluaXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNFMDQ1RUUxREFBMTA0RjAwQjBEOEI5IC8qIEpTVUlFdmVudEluaXQuY3Bw
ICovOyB9OwogCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
Q29jb2EubW0gKi87IH07CisJCTQ2NkRDNkFDMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLzsgfTsKKwkJNDY2
RUQ4RDMxRURFMDE0NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkVEOEQyMUVERTAxMzUwMDVFNDNGNiAv
KiBKU0RPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2NzFFMDY1MUQ2N0E1OTYwMEM2QjQ5NyAvKiBD
YW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmNwcCAqLzsgfTsKIAkJ
NDY3MUUwNjYxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAv
KiBDYW52YXNQYXRoLmggKi87IH07CiAJCTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25v
cmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJ
Z25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKKwkJNDY4MzQ0
REYxRURERkFBQTAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBE
T01SZWN0TGlzdC5jcHAgKi87IH07CisJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2ODlG
MUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBG
aWxlTWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZl
bnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2
Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVN
b25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTMzMzAsNyArMzMzNCw2IEBACiAJCTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01v
dXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9
OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVD
QTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzEyMEM3MTFDNTZG
M0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBNzFDNTZFODNBMDBGM0YwRTMgLyogSFRNTERh
dGFFbGVtZW50LmggKi87IH07Ci0JCTgzMTQ5RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01SZWN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ5
RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLzsgfTsKIAkJODMyQjg0MzQxOUQ4
RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8q
IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovOyB9OwogCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYw
NTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyog
VmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFu
Z2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtOTYzMSw5ICs5NjM0LDE0IEBACiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRh
Z0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMTFC
ODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjZE
QzZBQjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2Fu
dmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQ
YXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3QjAw
QzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjczMDIwMTFDNEVG
RTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5sb2Fk
Q291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzNDRE
QzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVJlY3RMaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REQxRURERkE1RjAwQjc3OTVC
IC8qIERPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8q
IERPTVJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZU1ldGFkYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBK
U0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDNjk2
QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1BVTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODcsNyArMTEzOTUsNiBAQAogCQk4MzA3ODRCMTFDNTJFRTE5MDAxMDREMUQgLyogWE1MRG9j
dW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MRG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwQTM2QkExREFDNUZBNzAwNkQ3RDA5IC8q
IEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODMxNDlGRjUxRUIzOEIxMjAwMDg5NjY1IC8qIERPTVJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0
YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERh
dGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyOUE0MTcxRUMy
NUIyQjAwOEVENEJFIC8qIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzI5RENDMjFDN0E2QUUzMDA3MzBCMzMgLyog
SFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRN
TEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTk4Myw2ICsyMTk5MCw4IEBACiAJCQkJMEY0NzEwQjYxREI1NkJFODAwMkRDRUMzIC8qIEpT
RE9NUmVjdC5oICovLAogCQkJCTBGNDcxMEI3MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RJ
bml0LmNwcCAqLywKIAkJCQkwRjQ3MTBCODFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0SW5p
dC5oICovLAorCQkJCTQ2NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNw
cCAqLywKKwkJCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5oICov
LAogCQkJCTBGNDcxMEI5MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RSZWFkT25seS5jcHAg
Ki8sCiAJCQkJMEY0NzEwQkExREI1NkJFODAwMkRDRUMzIC8qIEpTRE9NUmVjdFJlYWRPbmx5Lmgg
Ki8sCiAJCQkJQzUxMzdDRjAxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5jcHAg
Ki8sCkBAIC0yNTYxMyw5ICsyNTYyMiwxMSBAQAogCQkJCTBGNDk2NkExMURCNDA5MDEwMEEyNzRC
QiAvKiBET01Qb2ludEluaXQuaWRsICovLAogCQkJCTBGNDk2NjlCMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludFJlYWRPbmx5LmggKi8sCiAJCQkJMEY0OTY2OUMxREI0MDhDMTAwQTI3NEJCIC8q
IERPTVBvaW50UmVhZE9ubHkuaWRsICovLAotCQkJCTgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAv
KiBET01SZWN0LmNwcCAqLywKIAkJCQkwRjQ3MTBBOTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVj
dC5oICovLAogCQkJCTBGNDcxMEFBMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0LmlkbCAqLywK
KwkJCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICovLAorCQkJ
CTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovLAorCQkJCTQ2ODM0
NERDMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8sCiAJCQkJMEY0NzEwQUIx
REI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmggKi8sCiAJCQkJMEY0NzEwQUMxREI1NkFG
QzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmlkbCAqLywKIAkJCQkwRjQ3MTBBRDFEQjU2QUZDMDAy
RENFQzMgLyogRE9NUmVjdFJlYWRPbmx5LmggKi8sCkBAIC0yNzA3Myw2ICsyNzA4NCw3IEBACiAJ
CQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTg4NjA0QjQwRjJFNjU0QTAwMEI2NDQzIC8qIERP
TVRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyog
RE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NkZDMkIwQzEyMzcwREEwMDA2QTk5
MUEgLyogRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3Njk5LDYgKzI3NzExLDcg
QEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0
b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY2RUQ4RDMxRURFMDE0
NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAw
MEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QzdB
NjlGMUU1NzkxNzgwMEM2N0Q3MSAvKiBKU0Jhc2ljQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTMwNjk4LDYgKzMwNzExLDcgQEAKIAkJCQk1MTAxODQ2QTBCMDg2MDJB
MDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMEVEQTc3NDE0
M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwODFF
M0MzM0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMTA4MCw3ICszMTA5NCw2IEBACiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBB
QUY3IC8qIERPTVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUIwRDc0NUUyQjAw
NjQ0MkU5IC8qIERPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTRFRjBENzQ1
RTM4MDA2NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODMx
NDlGRjYxRUIzOEIzNzAwMDg5NjY1IC8qIERPTVJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMzc4MSw2ICszMzc5NCw3IEBACiAJCQkJQjEwQjY5ODExNDBD
MTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDgyMDMxMTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDY2REM2QUMxRURFMDIxRDAwNzQ2MjI0IC8qIEpTRE9NUmVj
dExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNTAwQTQ0RUZDNzAwRjk5MkUwIC8q
IFdoZWVsRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUxOTUxNkIxQjY1OThEMjAwREY2
RUVGIC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUVF
RTU1QzFCNjZBMDQ3MDA4RTJDQkMgLyogV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAppbmRleCAxNDUzMzgxYzBlNC4uOGFmNGYwY2U2NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVJlY3QuaApAQCAtNTgsNiArNTgsNCBAQCBwcml2YXRlOgogICAgIERPTVJl
Y3QoKSA9IGRlZmF1bHQ7CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPERPTVJlY3Q+
PiBjcmVhdGVET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+Jik7Ci0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5jcHAKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9kb20v
RE9NUmVjdExpc3QuY3BwCmluZGV4IGMzOTZlNjI5MzU3Li4yZDMzZDI5MTA1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01SZWN0TGlzdC5jcHAKQEAgLTI0LDE5ICsyNCwyMSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIK
IAotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkRPTVJlY3QuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01SZWN0VmVjdG9y
KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK0RPTVJlY3RMaXN0OjpET01SZWN0TGlz
dChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiB7Ci0gICAgVmVjdG9yPFJlZjxET01S
ZWN0Pj4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNp
emUoKSk7CisgICAgbV9pdGVtcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNpemUoKSk7
CiAgICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRB
cHBlbmQoRE9NUmVjdDo6Y3JlYXRlKHF1YWQuYm91bmRpbmdCb3goKSkpOwotICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIG1faXRlbXMudW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6OmNyZWF0ZShx
dWFkLmJvdW5kaW5nQm94KCkpKTsKIH0KIAorRE9NUmVjdExpc3Q6On5ET01SZWN0TGlzdCgpCit7
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlNDZhYjM4OWYzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmxvYXRRdWFkLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NUmVjdDsKKworY2xhc3MgRE9NUmVjdExp
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxET01SZWN0TGlzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZShjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVjdExpc3QocXVhZHMpKTsgfQorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVj
dExpc3QoKSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB+RE9NUmVjdExpc3QoKTsKKworICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOyB9CisgICAgRE9N
UmVjdCogaXRlbSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPCBtX2l0ZW1zLnNpemUo
KSA/IG1faXRlbXNbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IERPTVJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+
JiBxdWFkcyk7CisgICAgRE9NUmVjdExpc3QoKSA9IGRlZmF1bHQ7CisKKyAgICBWZWN0b3I8UmVm
PERPTVJlY3Q+PiBtX2l0ZW1zOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVJlY3RMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2MTEyODNkYjk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9S
VCwKKyAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICAgTm9JbnRlcmZhY2VPYmpl
Y3QKK10gaW50ZXJmYWNlIERPTVJlY3RMaXN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIERPTVJlY3QgaXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYzg3YTZkNjhlMTEuLjJiZDE3
YzY1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKICNpbmNsdWRlICJDdXN0b21FbGVtZW50
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3Qu
aCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudEFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpAQCAtMTE0NCwxMyAr
MTE0NSwxMyBAQCBMYXlvdXRSZWN0IEVsZW1lbnQ6OmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRz
KGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVsZW1lbgogICAgIHJldHVybiBhYnNvbHV0ZUV2
ZW50Qm91bmRzT2ZFbGVtZW50QW5kRGVzY2VuZGFudHMoaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxl
bWVudHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0
cygpCitSZWY8RE9NUmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKIHsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0ID0gdGhpcy0+cmVuZGVy
Qm94TW9kZWxPYmplY3QoKTsKICAgICBpZiAoIXJlbmRlckJveE1vZGVsT2JqZWN0KQotICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAg
ICAgLy8gRklYTUU6IEhhbmRsZSBTVkcgZWxlbWVudHMuCiAgICAgLy8gRklYTUU6IEhhbmRsZSB0
YWJsZS9pbmxpbmUtdGFibGUgd2l0aCBhIGNhcHRpb24uCkBAIC0xMTU4LDcgKzExNTksNyBAQCBW
ZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpCiAgICAgVmVjdG9y
PEZsb2F0UXVhZD4gcXVhZHM7CiAgICAgcmVuZGVyQm94TW9kZWxPYmplY3QtPmFic29sdXRlUXVh
ZHMocXVhZHMpOwogICAgIGRvY3VtZW50KCkuY29udmVydEFic29sdXRlVG9DbGllbnRRdWFkcyhx
dWFkcywgcmVuZGVyQm94TW9kZWxPYmplY3QtPnN0eWxlKCkpOwotICAgIHJldHVybiBjcmVhdGVE
T01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFk
cyk7CiB9CiAKIFJlZjxET01SZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggOTQxNDY5YjUxNzEuLmMzYjczMWRkZWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3Vz
dG9tRWxlbWVudFJlYWN0aW9uUXVldWU7CiBjbGFzcyBEYXRhc2V0RE9NU3RyaW5nTWFwOwogY2xh
c3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xh
c3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSFRNTERvY3VtZW50OwpAQCAtMTcyLDcgKzE3Myw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYm91bmRzSW5Sb290Vmll
d1NwYWNlKCk7CiAKLSAgICBWZWN0b3I8UmVmPERPTVJlY3Q+PiBnZXRDbGllbnRSZWN0cygpOwor
ICAgIFJlZjxET01SZWN0TGlzdD4gZ2V0Q2xpZW50UmVjdHMoKTsKICAgICBSZWY8RE9NUmVjdD4g
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBi
b3VuZGluZyBib3ggdHJhbnNsYXRlZCBpbnRvIGNsaWVudCBjb29yZGluYXRlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbAppbmRleCA3OWVhYmI2ZjFmZS4uNGEyM2ZmYmRjNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwKQEAgLTY4LDcgKzY4LDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQg
aW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3aGVyZSwgRE9NU3RyaW5nIGRhdGEpOyAvLyBI
aXN0b3JpY2FsLgogCiAgICAgLy8gQ1NTT00tdmlldyBleHRlbnNpb25zIChodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZXh0ZW5zaW9uLXRvLXRoZS1lbGVtZW50LWludGVyZmFj
ZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBET01SZWN0
TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmlldyhvcHRpb25hbCBib29sZWFu
IGFsaWduV2l0aFRvcCA9IHRydWUpOyAvLyBGSVhNRTogUGFyYW1ldGVyIHR5cGUgc2hvdWxkIGJl
IChib29sZWFuIG9yIG9iamVjdCkuCiAgICAgW0ltcGxlbWVudGVkQXM9c2Nyb2xsVG9dIHZvaWQg
c2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3Bw
CmluZGV4IDgyZjU4OWVmNDkyLi44ZTk1NTY1MGRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5o
IgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMTc2Miw5ICsx
NzYzLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUmFuZ2U6OmV4cGFuZChjb25zdCBTdHJpbmcmIHVu
aXQpCiAgICAgcmV0dXJuIHNldEVuZCgqZW5kQ29udGFpbmVyLCBlbmQuZGVlcEVxdWl2YWxlbnQo
KS5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlKCkpOwogfQogCi1WZWN0b3I8UmVmPERPTVJl
Y3Q+PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAorUmVmPERPTVJlY3RMaXN0PiBSYW5n
ZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAogewotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVj
dG9yKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOworICAgIHJl
dHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3Bh
Y2U6OkNsaWVudCkpOwogfQogCiBSZWY8RE9NUmVjdD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGVhN2M5NDVjODZjLi4zYzU0Zjk0YTgxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmgKQEAgLTM0LDggKzM0LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBET01SZWN0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKK2NsYXNzIERPTVJlY3Q7Citj
bGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVu
dDsKIGNsYXNzIEZsb2F0UXVhZDsKQEAgLTE0MSw3ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Zm9yIGRldGFpbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gZXhwYW5k
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgVmVjdG9yPFJlZjxET01SZWN0Pj4gZ2V0Q2xpZW50UmVj
dHMoKSBjb25zdDsKKyAgICBSZWY8RE9NUmVjdExpc3Q+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7
CiAgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OwogCiAjaWYg
RU5BQkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggNGM0ZGI0ZTIxYzgu
Ljg4ZmM4MDVkNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTY0LDcgKzY0LDcgQEAKICAgICBE
T01TdHJpbmcgdG9TdHJpbmcoKTsgLy8gRklYTUU6IFNob3VsZCBiZSBzdHJpbmdpZmllciBvbmNl
IHdlIHN1cHBvcnQgaXQuCiAKICAgICAvLyBFeHRlbnNpb25zIGZyb20gQ1NTT00tdmlldyAoaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2V4dGVuc2lvbnMtdG8tdGhlLXJhbmdl
LWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAg
ICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtOZXdPYmplY3RdIERPTVJlY3Qg
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBFeHRlbnNpb25zIGZyb20gRE9NUGFy
c2luZyBhbmQgU2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9uIChodHRwczovL3czYy5naXRodWIu
aW8vRE9NLVBhcnNpbmcvI2V4dGVuc2lvbnMtdG8tdGhlLXJhbmdlLWludGVyZmFjZSkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCBhZGM5ZTE3NzBhOS4uMGY3ODVlZGNhNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAj
aW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgor
I2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgiCkBAIC00MDUsNyArNDA2LDcgQEAgU3RyaW5nIFBhZ2U6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1W
ZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkKK1JlZjxE
T01SZWN0TGlzdD4gUGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiB7CiAgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICBkb2N1
bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBAIC00MjEsMTAgKzQyMiwxMCBAQCBWZWN0b3I8UmVmPERP
TVJlY3Q+PiBQYWdlOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQogICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVj
dChyZWN0c1tpXSk7CiAKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7Cisg
ICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUocXVhZHMpOwogfQogCi1WZWN0b3I8UmVmPERP
TVJlY3Q+PiBQYWdlOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSkKK1JlZjxET01SZWN0TGlzdD4gUGFnZTo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29u
c3QgU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1f
bWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQo
KTsKQEAgLTQ0NCwxMCArNDQ1LDEwIEBAIFZlY3RvcjxSZWY8RE9NUmVjdD4+IFBhZ2U6OnRvdWNo
RXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHF1YWRzW2ldID0gRmxv
YXRSZWN0KHJlY3RzW2ldKTsKIAotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKHF1YWRz
KTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9CiAKLVZlY3RvcjxS
ZWY8RE9NUmVjdD4+IFBhZ2U6OnBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpCitSZWY8
RE9NUmVjdExpc3Q+IFBhZ2U6OnBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpCiB7CiAg
ICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAg
ICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsKQEAgLTQ2NCw3ICs0NjUsNyBAQCBWZWN0
b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKQog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHF1
YWRzW2ldID0gRmxvYXRSZWN0KHJlY3RzW2ldKTsKIAotICAgIHJldHVybiBjcmVhdGVET01SZWN0
VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9
CiAKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggN2Jl
ZjUwY2YxZWUuLmIyMmE0MjlhZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtODUsNiArODUsNyBAQCBj
bGFzcyBDb2xvcjsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3MgQ29udGV4dE1lbnVD
b250cm9sbGVyOwogY2xhc3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRGF0
YWJhc2VQcm92aWRlcjsKIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogY2xhc3MgRHJh
Z0NhcmV0Q29udHJvbGxlcjsKQEAgLTIzOCwxMCArMjM5LDEwIEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4gbm9uRmFzdFNjcm9sbGFibGVS
ZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxET01SZWN0TGlzdD4gbm9uRmFzdFNjcm9s
bGFibGVSZWN0cygpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4g
dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpOwotICAgIFdF
QkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVu
ZXJSZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxET01SZWN0TGlzdD4gdG91Y2hFdmVu
dFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZjxET01SZWN0TGlzdD4gcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAK
ICAgICBTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiAqbV9zZXR0aW5nczsgfQog
ICAgIFByb2dyZXNzVHJhY2tlciYgcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiAqbV9wcm9ncmVz
czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDdlYWNiMGZmNTRjLi5i
M2I2NWE2ODNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkRPTVBhdGguaCIKICNpbmNs
dWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIKICNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKQEAgLTEzNTUsNyArMTM1Niw3IEBAIFJlZjxET01SZWN0PiBJbnRlcm5hbHM6OmJvdW5k
aW5nQm94KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIERPTVJlY3Q6OmNyZWF0ZShyZW5k
ZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKSk7CiB9CiAK
LUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Omluc3BlY3Rvckhp
Z2hsaWdodFJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IEludGVybmFsczo6
aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNv
bnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkp
CkBAIC0xMzYzLDcgKzEzNjQsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4g
SW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpCiAKICAgICBIaWdobGlnaHQgaGln
aGxpZ2h0OwogICAgIGRvY3VtZW50LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5nZXRI
aWdobGlnaHQoaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpW
aWV3KTsKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihoaWdobGlnaHQucXVhZHMpOwor
ICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7CiB9CiAKIEV4
Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKQpA
QCAtMTc5OSw3ICsxODAwLDcgQEAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6dG91
Y2hFdmVudEhhbmRsZXJDb3VudCgpCiAgICAgcmV0dXJuIGRvY3VtZW50LT50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRl
cm5hbHM6OnRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQor
RXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjp0b3VjaEV2ZW50UmVjdHNG
b3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKIHsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+
cGFnZSgpKQpAQCAtMTgwOCw3ICsxODA5LDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01S
ZWN0Pj4+IEludGVybmFsczo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW4KICAg
ICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoZXZlbnRO
YW1lKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6
cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0
TGlzdD4+IEludGVybmFsczo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQpAQCAtMjMzMCw3ICsyMzMxLDcgQEAgRXhjZXB0aW9u
T3I8U3RyaW5nPiBJbnRlcm5hbHM6Om1haW5UaHJlYWRTY3JvbGxpbmdSZWFzb25zKCkgY29uc3QK
ICAgICByZXR1cm4gcGFnZS0+c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCk7CiB9
CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RT
Y3JvbGxhYmxlUmVjdHMoKSBjb25zdAorRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50
ZXJuYWxzOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkgY29uc3QKIHsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+ZnJhbWUoKSkKQEAgLTIzMzgsNyArMjMzOSw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxS
ZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdAog
CiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQotICAg
ICAgICByZXR1cm4gVmVjdG9yPFJlZjxET01SZWN0Pj4geyB9OworICAgICAgICByZXR1cm4gRE9N
UmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgcmV0dXJuIHBhZ2UtPm5vbkZhc3RTY3JvbGxhYmxl
UmVjdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDUyZTE2OGJmNjM0
Li43MjY5NWRkNjY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00Myw2ICs0
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9Db250ZXh0OwogY2xhc3Mg
RE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRE9NVVJMOwogY2xhc3MgRE9NV2lu
ZG93OwogY2xhc3MgRG9jdW1lbnQ7CkBAIC0xODMsNyArMTg0LDcgQEAgcHVibGljOgogCiAgICAg
UmVmPERPTVJlY3Q+IGJvdW5kaW5nQm94KEVsZW1lbnQmKTsKIAotICAgIEV4Y2VwdGlvbk9yPFZl
Y3RvcjxSZWY8RE9NUmVjdD4+PiBpbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAgIEV4Y2Vw
dGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IGluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCk7CiAgICAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBpbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKIAogICAgIEV4
Y2VwdGlvbk9yPHVuc2lnbmVkPiBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSYsIGNvbnN0IFN0cmlu
ZyYpOwpAQCAtMjQzLDggKzI0NCw4IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25l
ZD4gd2hlZWxFdmVudEhhbmRsZXJDb3VudCgpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiB0
b3VjaEV2ZW50SGFuZGxlckNvdW50KCk7CiAKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERP
TVJlY3Q+Pj4gdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgRXhj
ZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJS
ZWN0cygpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IHRvdWNoRXZlbnRSZWN0
c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlz
dD4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpOwogCiAgICAgRXhjZXB0aW9uT3I8
UmVmUHRyPE5vZGVMaXN0Pj4gbm9kZXNGcm9tUmVjdChEb2N1bWVudCYsIGludCB4LCBpbnQgeSwg
dW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0
b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZywgYm9v
bCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgYWxsb3dDaGlsZEZyYW1lQ29udGVudCkgY29uc3Q7
CiAKQEAgLTI5OCw3ICsyOTksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiBy
ZXBhaW50UmVjdHNBc1RleHQoKSBjb25zdDsKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IHNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gbWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnMoKSBjb25zdDsKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8
UmVmPERPTVJlY3Q+Pj4gbm9uRmFzdFNjcm9sbGFibGVSZWN0cygpIGNvbnN0OworICAgIEV4Y2Vw
dGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdDsK
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVsZW1lbnRVc2VzRGlzcGxheUxpc3REcmF3aW5n
KEVsZW1lbnQmLCBib29sIHVzZXNEaXNwbGF5TGlzdERyYXdpbmcpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEVsZW1lbnRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShFbGVtZW50JiwgYm9vbCBp
c1RyYWNraW5nUmVwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA1
ZmQ4NmFjNDhmNS4uMjY4NmIzMWE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTE1Myw3ICsxNTMsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAog
ICAgIERPTVJlY3QgYm91bmRpbmdCb3goRWxlbWVudCBlbGVtZW50KTsKIAotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NUmVjdD4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsK
KyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVJlY3RMaXN0IGluc3BlY3RvckhpZ2hsaWdodFJl
Y3RzKCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgaW5zcGVjdG9ySGlnaGxp
Z2h0T2JqZWN0KCk7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgbWFy
a2VyQ291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1hcmtlclR5cGUpOwpAQCAtMjE2
LDggKzIxNiw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gdW5zaWduZWQgbG9uZyB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAg
W01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIHRvdWNoRXZlbnRIYW5kbGVyQ291bnQo
KTsKIAotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NUmVjdD4gdG91Y2hFdmVu
dFJlY3RzRm9yRXZlbnQoRE9NU3RyaW5nIGV2ZW50TmFtZSk7Ci0gICAgW01heVRocm93RXhjZXB0
aW9uXSBzZXF1ZW5jZTxET01SZWN0PiBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsK
KyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVJlY3RMaXN0IHRvdWNoRXZlbnRSZWN0c0ZvckV2
ZW50KERPTVN0cmluZyBldmVudE5hbWUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVj
dExpc3QgcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIE5vZGVMaXN0PyBub2Rlc0Zyb21SZWN0KERvY3VtZW50IGRvY3VtZW50LCBsb25n
IHgsIGxvbmcgeSwKICAgICAgICAgdW5zaWduZWQgbG9uZyB0b3BQYWRkaW5nLCB1bnNpZ25lZCBs
b25nIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgbG9uZyBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBs
b25nIGxlZnRQYWRkaW5nLApAQCAtMjc0LDcgKzI3NCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3IgewogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgc2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgbWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnMoKTsgLy8gRklYTUU6IHJlbmFtZSB0byBzeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMoKS4KLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNlcXVlbmNlPERP
TVJlY3Q+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IERPTVJlY3RMaXN0IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKIAogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gRE9NU3RyaW5nIHJlcGFpbnRSZWN0c0FzVGV4dCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3RMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCmluZGV4IDcz
NTI2ODE5ZjQzLi4zMzcwOWZkZWRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKQEAgLTM1LDQzICszNSwzMSBAQAogCiAj
ZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVF9HRVRfUFJJVkFURShvYmopIEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9M
SVNULCBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUpCiAKLWNsYXNzIENsaWVudFJlY3RM
aXN0IDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpZW50UmVjdExpc3Q+IHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6
OkRPTVJlY3Q+PiYmIGl0ZW1zKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2xpZW50UmVjdExpc3QoV1RGTW92ZShpdGVtcykpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBXVEY6
OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiBpdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1f
aXRlbXM7IH0KLQotcHJpdmF0ZToKLSAgICBDbGllbnRSZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8
V2ViQ29yZTo6RE9NUmVjdD4+JiYgaXRlbXMpCi0gICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0
ZW1zKSkKLSAgICB7IH0KLQotICAgIFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4g
bV9pdGVtczsKLX07Ci0KIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01DbGllbnRSZWN0TGlzdFBy
aXZhdGUgewotICAgIFJlZlB0cjxDbGllbnRSZWN0TGlzdD4gY29yZU9iamVjdDsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJl
Y3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiBraXQoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmIG9iaikKK1dl
YktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdExpc3QqIG9iaikKIHsK
LSAgICByZXR1cm4gd3JhcENsaWVudFJlY3RMaXN0KFdURk1vdmUob2JqKSk7CisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGdwb2ludGVyIHJldCA9IERP
TU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5U
X1JFQ1RfTElTVChyZXQpOworCisgICAgcmV0dXJuIHdyYXBET01SZWN0TGlzdChvYmopOwogfQog
Ci1zdGF0aWMgQ2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJl
cXVlc3QpCitXZWJDb3JlOjpET01SZWN0TGlzdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0TGlz
dCogcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PENsaWVudFJl
Y3RMaXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0
cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3RMaXN0
Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKIH0K
IAotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChXVEY6OlZlY3Rv
cjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgY29yZU9iamVjdCkKK1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiB3cmFwRE9NUmVjdExpc3QoV2ViQ29yZTo6RE9NUmVjdExpc3QqIGNvcmVPYmplY3Qp
CiB7Ci0gICAgYXV0byBsaXN0ID0gQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvcmVP
YmplY3QpKTsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNUKGdfb2JqZWN0
X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgImNvcmUtb2JqZWN0IiwgbGlz
dC5wdHIoKSwgbnVsbHB0cikpOworICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJ
U1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9MSVNULCAiY29yZS1v
YmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApAQCAtMTEyLDcgKzEwMCw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3Rf
bGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVj
dCk7CiAKICAgICBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRf
RE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3Jl
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChv
YmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RE9NUmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2Jq
ZWN0KTsKKyAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5n
ZXQoKSwgb2JqZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9s
aXN0X2NsYXNzX2luaXQoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RDbGFzcyogcmVxdWVzdENsYXNz
KQpAQCAtMTQ1LDggKzEzNCw4IEBAIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xp
ZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgbnVsbHB0cik7Ci0gICAg
YXV0byYgbGlzdCA9IFdlYktpdDo6Y29yZShzZWxmKS0+aXRlbXMoKTsKLSAgICBSZWZQdHI8V2Vi
Q29yZTo6RE9NUmVjdD4gZ29iamVjdFJlc3VsdCA9IGluZGV4ID49IGxpc3Quc2l6ZSgpID8gbnVs
bHB0ciA6IGxpc3RbaW5kZXhdLnB0cigpOworICAgIGF1dG8qIGxpc3QgPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6
OmdldFB0cihsaXN0LT5pdGVtKGluZGV4KSk7CiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmpl
Y3RSZXN1bHQuZ2V0KCkpOwogfQogCkBAIC0xNTQsNSArMTQzLDUgQEAgZ3Vsb25nIHdlYmtpdF9k
b21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBz
ZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2VsZiks
IDApOwotICAgIHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPml0ZW1zKCkuc2l6ZSgpOworICAg
IHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DbGllbnRSZWN0TGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgK
aW5kZXggZDIxMjJiYTc3MmEuLjEzOTJkNDU3NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKQEAgLTE5
LDExICsxOSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVjdExpc3QuaD4KICNpbmNsdWRlIDx3ZWJraXRk
b20vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRS
ZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYpOwotV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QqIGtpdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYp
OworV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBET01SZWN0TGlzdChXZWJDb3JlOjpET01S
ZWN0TGlzdCopOworV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJDb3JlOjpET01SZWN0
TGlzdCopOworV2ViQ29yZTo6RE9NUmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QqKTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311533</attachid>
            <date>2017-05-30 13:13:29 -0700</date>
            <delta_ts>2017-05-30 13:34:19 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>172703_DOMRectList_wip.patch</filename>
            <type>text/plain</type>
            <size>37719</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRmZmRlM2EyODcuLmExMTBiNGUyZjFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDE5LDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCiAgICAgZG9tL0RPTVJlY3QuaWRs
CiAgICAgZG9tL0RPTVJlY3RJbml0LmlkbAorICAgIGRvbS9ET01SZWN0TGlzdC5pZGwKICAgICBk
b20vRE9NUmVjdFJlYWRPbmx5LmlkbAogICAgIGRvbS9ET01TdHJpbmdMaXN0LmlkbAogICAgIGRv
bS9ET01TdHJpbmdNYXAuaWRsCkBAIC0xNDQ4LDcgKzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZG9tL0RPTUVycm9yLmNwcAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
ICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKLSAgICBkb20vRE9NUmVjdC5jcHAK
KyAgICBkb20vRE9NUmVjdExpc3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3BwCiAgICAg
ZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2NzNmYjY1NDg4Li43MDY2NmYwZWE2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTksNiArMzU5LDcgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NUmVj
dEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0TGlzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0RPTVJlY3RSZWFkT25seS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RP
TVN0cmluZ0xpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4MGEwZWM1Y2MxZC4uZDAyZjVmYzIzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzYsOSArMTkzNiwxMyBAQAog
CQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyogSlNVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMDQ1RUYxREFBMTA0RjAwQjBE
OEI5IC8qIEpTVUlFdmVudEluaXQuaCAqLzsgfTsKIAkJNDY1MzA3RDExREI2RUU0QTAwRTQxMzdD
IC8qIEpTVUlFdmVudEluaXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNFMDQ1RUUxREFBMTA0RjAwQjBEOEI5IC8qIEpTVUlFdmVudEluaXQuY3Bw
ICovOyB9OwogCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
Q29jb2EubW0gKi87IH07CisJCTQ2NkRDNkFDMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLzsgfTsKKwkJNDY2
RUQ4RDMxRURFMDE0NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkVEOEQyMUVERTAxMzUwMDVFNDNGNiAv
KiBKU0RPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2NzFFMDY1MUQ2N0E1OTYwMEM2QjQ5NyAvKiBD
YW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmNwcCAqLzsgfTsKIAkJ
NDY3MUUwNjYxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAv
KiBDYW52YXNQYXRoLmggKi87IH07CiAJCTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25v
cmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJ
Z25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKKwkJNDY4MzQ0
REYxRURERkFBQTAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBE
T01SZWN0TGlzdC5jcHAgKi87IH07CisJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IH07CiAJCTQ2ODlG
MUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBG
aWxlTWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZl
bnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2
Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVN
b25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTMzMzAsNyArMzMzNCw2IEBACiAJCTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01v
dXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9
OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVD
QTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzEyMEM3MTFDNTZG
M0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBNzFDNTZFODNBMDBGM0YwRTMgLyogSFRNTERh
dGFFbGVtZW50LmggKi87IH07Ci0JCTgzMTQ5RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01SZWN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ5
RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLzsgfTsKIAkJODMyQjg0MzQxOUQ4
RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8q
IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovOyB9OwogCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYw
NTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyog
VmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFu
Z2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtOTYzMSw5ICs5NjM0LDE0IEBACiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRh
Z0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMTFC
ODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjZE
QzZBQjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2Fu
dmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQ
YXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3QjAw
QzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjczMDIwMTFDNEVG
RTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5sb2Fk
Q291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzNDRE
QzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVJlY3RMaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REQxRURERkE1RjAwQjc3OTVC
IC8qIERPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8q
IERPTVJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZU1ldGFkYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBK
U0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDNjk2
QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1BVTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODcsNyArMTEzOTUsNiBAQAogCQk4MzA3ODRCMTFDNTJFRTE5MDAxMDREMUQgLyogWE1MRG9j
dW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MRG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwQTM2QkExREFDNUZBNzAwNkQ3RDA5IC8q
IEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODMxNDlGRjUxRUIzOEIxMjAwMDg5NjY1IC8qIERPTVJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0
YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERh
dGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyOUE0MTcxRUMy
NUIyQjAwOEVENEJFIC8qIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzI5RENDMjFDN0E2QUUzMDA3MzBCMzMgLyog
SFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRN
TEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTk4Myw2ICsyMTk5MCw4IEBACiAJCQkJMEY0NzEwQjYxREI1NkJFODAwMkRDRUMzIC8qIEpT
RE9NUmVjdC5oICovLAogCQkJCTBGNDcxMEI3MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RJ
bml0LmNwcCAqLywKIAkJCQkwRjQ3MTBCODFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0SW5p
dC5oICovLAorCQkJCTQ2NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNw
cCAqLywKKwkJCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5oICov
LAogCQkJCTBGNDcxMEI5MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RSZWFkT25seS5jcHAg
Ki8sCiAJCQkJMEY0NzEwQkExREI1NkJFODAwMkRDRUMzIC8qIEpTRE9NUmVjdFJlYWRPbmx5Lmgg
Ki8sCiAJCQkJQzUxMzdDRjAxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5jcHAg
Ki8sCkBAIC0yNTYxMyw5ICsyNTYyMiwxMSBAQAogCQkJCTBGNDk2NkExMURCNDA5MDEwMEEyNzRC
QiAvKiBET01Qb2ludEluaXQuaWRsICovLAogCQkJCTBGNDk2NjlCMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludFJlYWRPbmx5LmggKi8sCiAJCQkJMEY0OTY2OUMxREI0MDhDMTAwQTI3NEJCIC8q
IERPTVBvaW50UmVhZE9ubHkuaWRsICovLAotCQkJCTgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAv
KiBET01SZWN0LmNwcCAqLywKIAkJCQkwRjQ3MTBBOTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVj
dC5oICovLAogCQkJCTBGNDcxMEFBMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0LmlkbCAqLywK
KwkJCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICovLAorCQkJ
CTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovLAorCQkJCTQ2ODM0
NERDMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8sCiAJCQkJMEY0NzEwQUIx
REI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmggKi8sCiAJCQkJMEY0NzEwQUMxREI1NkFG
QzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmlkbCAqLywKIAkJCQkwRjQ3MTBBRDFEQjU2QUZDMDAy
RENFQzMgLyogRE9NUmVjdFJlYWRPbmx5LmggKi8sCkBAIC0yNzA3Myw2ICsyNzA4NCw3IEBACiAJ
CQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTg4NjA0QjQwRjJFNjU0QTAwMEI2NDQzIC8qIERP
TVRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyog
RE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NkZDMkIwQzEyMzcwREEwMDA2QTk5
MUEgLyogRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3Njk5LDYgKzI3NzExLDcg
QEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0
b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY2RUQ4RDMxRURFMDE0
NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAw
MEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QzdB
NjlGMUU1NzkxNzgwMEM2N0Q3MSAvKiBKU0Jhc2ljQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTMwNjk4LDYgKzMwNzExLDcgQEAKIAkJCQk1MTAxODQ2QTBCMDg2MDJB
MDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMEVEQTc3NDE0
M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwODFF
M0MzM0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMTA4MCw3ICszMTA5NCw2IEBACiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBB
QUY3IC8qIERPTVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUIwRDc0NUUyQjAw
NjQ0MkU5IC8qIERPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTRFRjBENzQ1
RTM4MDA2NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODMx
NDlGRjYxRUIzOEIzNzAwMDg5NjY1IC8qIERPTVJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMzc4MSw2ICszMzc5NCw3IEBACiAJCQkJQjEwQjY5ODExNDBD
MTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDgyMDMxMTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDY2REM2QUMxRURFMDIxRDAwNzQ2MjI0IC8qIEpTRE9NUmVj
dExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNTAwQTQ0RUZDNzAwRjk5MkUwIC8q
IFdoZWVsRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUxOTUxNkIxQjY1OThEMjAwREY2
RUVGIC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUVF
RTU1QzFCNjZBMDQ3MDA4RTJDQkMgLyogV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAppbmRleCAxNDUzMzgxYzBlNC4uOGFmNGYwY2U2NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVJlY3QuaApAQCAtNTgsNiArNTgsNCBAQCBwcml2YXRlOgogICAgIERPTVJl
Y3QoKSA9IGRlZmF1bHQ7CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPERPTVJlY3Q+
PiBjcmVhdGVET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+Jik7Ci0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5jcHAKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gU291
cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9kb20v
RE9NUmVjdExpc3QuY3BwCmluZGV4IGMzOTZlNjI5MzU3Li4yZDMzZDI5MTA1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01SZWN0TGlzdC5jcHAKQEAgLTI0LDE5ICsyNCwyMSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIK
IAotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkRPTVJlY3QuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01SZWN0VmVjdG9y
KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK0RPTVJlY3RMaXN0OjpET01SZWN0TGlz
dChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiB7Ci0gICAgVmVjdG9yPFJlZjxET01S
ZWN0Pj4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNp
emUoKSk7CisgICAgbV9pdGVtcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNpemUoKSk7
CiAgICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRB
cHBlbmQoRE9NUmVjdDo6Y3JlYXRlKHF1YWQuYm91bmRpbmdCb3goKSkpOwotICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIG1faXRlbXMudW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6OmNyZWF0ZShx
dWFkLmJvdW5kaW5nQm94KCkpKTsKIH0KIAorRE9NUmVjdExpc3Q6On5ET01SZWN0TGlzdCgpCit7
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01SZWN0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlNDZhYjM4OWYzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmxvYXRRdWFkLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NUmVjdDsKKworY2xhc3MgRE9NUmVjdExp
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxET01SZWN0TGlzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZShjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVjdExpc3QocXVhZHMpKTsgfQorICAgIHN0YXRp
YyBSZWY8RE9NUmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUmVj
dExpc3QoKSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB+RE9NUmVjdExpc3QoKTsKKworICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOyB9CisgICAgRE9N
UmVjdCogaXRlbSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPCBtX2l0ZW1zLnNpemUo
KSA/IG1faXRlbXNbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IERPTVJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+
JiBxdWFkcyk7CisgICAgRE9NUmVjdExpc3QoKSA9IGRlZmF1bHQ7CisKKyAgICBWZWN0b3I8UmVm
PERPTVJlY3Q+PiBtX2l0ZW1zOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVJlY3RMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlzdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2MTEyODNkYjk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RMaXN0LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9S
VCwKKyAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICAgTm9JbnRlcmZhY2VPYmpl
Y3QKK10gaW50ZXJmYWNlIERPTVJlY3RMaXN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIERPTVJlY3QgaXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYzg3YTZkNjhlMTEuLjJiZDE3
YzY1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKICNpbmNsdWRlICJDdXN0b21FbGVtZW50
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3Qu
aCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudEFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpAQCAtMTE0NCwxMyAr
MTE0NSwxMyBAQCBMYXlvdXRSZWN0IEVsZW1lbnQ6OmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRz
KGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVsZW1lbgogICAgIHJldHVybiBhYnNvbHV0ZUV2
ZW50Qm91bmRzT2ZFbGVtZW50QW5kRGVzY2VuZGFudHMoaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxl
bWVudHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0
cygpCitSZWY8RE9NUmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKIHsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0ID0gdGhpcy0+cmVuZGVy
Qm94TW9kZWxPYmplY3QoKTsKICAgICBpZiAoIXJlbmRlckJveE1vZGVsT2JqZWN0KQotICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAg
ICAgLy8gRklYTUU6IEhhbmRsZSBTVkcgZWxlbWVudHMuCiAgICAgLy8gRklYTUU6IEhhbmRsZSB0
YWJsZS9pbmxpbmUtdGFibGUgd2l0aCBhIGNhcHRpb24uCkBAIC0xMTU4LDcgKzExNTksNyBAQCBW
ZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpCiAgICAgVmVjdG9y
PEZsb2F0UXVhZD4gcXVhZHM7CiAgICAgcmVuZGVyQm94TW9kZWxPYmplY3QtPmFic29sdXRlUXVh
ZHMocXVhZHMpOwogICAgIGRvY3VtZW50KCkuY29udmVydEFic29sdXRlVG9DbGllbnRRdWFkcyhx
dWFkcywgcmVuZGVyQm94TW9kZWxPYmplY3QtPnN0eWxlKCkpOwotICAgIHJldHVybiBjcmVhdGVE
T01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFk
cyk7CiB9CiAKIFJlZjxET01SZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggOTQxNDY5YjUxNzEuLmMzYjczMWRkZWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3Vz
dG9tRWxlbWVudFJlYWN0aW9uUXVldWU7CiBjbGFzcyBEYXRhc2V0RE9NU3RyaW5nTWFwOwogY2xh
c3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xh
c3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSFRNTERvY3VtZW50OwpAQCAtMTcyLDcgKzE3Myw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYm91bmRzSW5Sb290Vmll
d1NwYWNlKCk7CiAKLSAgICBWZWN0b3I8UmVmPERPTVJlY3Q+PiBnZXRDbGllbnRSZWN0cygpOwor
ICAgIFJlZjxET01SZWN0TGlzdD4gZ2V0Q2xpZW50UmVjdHMoKTsKICAgICBSZWY8RE9NUmVjdD4g
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBi
b3VuZGluZyBib3ggdHJhbnNsYXRlZCBpbnRvIGNsaWVudCBjb29yZGluYXRlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbAppbmRleCA3OWVhYmI2ZjFmZS4uNGEyM2ZmYmRjNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwKQEAgLTY4LDcgKzY4LDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQg
aW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3aGVyZSwgRE9NU3RyaW5nIGRhdGEpOyAvLyBI
aXN0b3JpY2FsLgogCiAgICAgLy8gQ1NTT00tdmlldyBleHRlbnNpb25zIChodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZXh0ZW5zaW9uLXRvLXRoZS1lbGVtZW50LWludGVyZmFj
ZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBET01SZWN0
TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmlldyhvcHRpb25hbCBib29sZWFu
IGFsaWduV2l0aFRvcCA9IHRydWUpOyAvLyBGSVhNRTogUGFyYW1ldGVyIHR5cGUgc2hvdWxkIGJl
IChib29sZWFuIG9yIG9iamVjdCkuCiAgICAgW0ltcGxlbWVudGVkQXM9c2Nyb2xsVG9dIHZvaWQg
c2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3Bw
CmluZGV4IDgyZjU4OWVmNDkyLi44ZTk1NTY1MGRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5o
IgorI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMTc2Miw5ICsx
NzYzLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUmFuZ2U6OmV4cGFuZChjb25zdCBTdHJpbmcmIHVu
aXQpCiAgICAgcmV0dXJuIHNldEVuZCgqZW5kQ29udGFpbmVyLCBlbmQuZGVlcEVxdWl2YWxlbnQo
KS5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlKCkpOwogfQogCi1WZWN0b3I8UmVmPERPTVJl
Y3Q+PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAorUmVmPERPTVJlY3RMaXN0PiBSYW5n
ZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAogewotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVj
dG9yKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOworICAgIHJl
dHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3Bh
Y2U6OkNsaWVudCkpOwogfQogCiBSZWY8RE9NUmVjdD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGVhN2M5NDVjODZjLi4zYzU0Zjk0YTgxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmgKQEAgLTM0LDggKzM0LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBET01SZWN0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKK2NsYXNzIERPTVJlY3Q7Citj
bGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVu
dDsKIGNsYXNzIEZsb2F0UXVhZDsKQEAgLTE0MSw3ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Zm9yIGRldGFpbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gZXhwYW5k
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgVmVjdG9yPFJlZjxET01SZWN0Pj4gZ2V0Q2xpZW50UmVj
dHMoKSBjb25zdDsKKyAgICBSZWY8RE9NUmVjdExpc3Q+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7
CiAgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OwogCiAjaWYg
RU5BQkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggNGM0ZGI0ZTIxYzgu
Ljg4ZmM4MDVkNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTY0LDcgKzY0LDcgQEAKICAgICBE
T01TdHJpbmcgdG9TdHJpbmcoKTsgLy8gRklYTUU6IFNob3VsZCBiZSBzdHJpbmdpZmllciBvbmNl
IHdlIHN1cHBvcnQgaXQuCiAKICAgICAvLyBFeHRlbnNpb25zIGZyb20gQ1NTT00tdmlldyAoaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2V4dGVuc2lvbnMtdG8tdGhlLXJhbmdl
LWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVjdHMoKTsKKyAg
ICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtOZXdPYmplY3RdIERPTVJlY3Qg
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBFeHRlbnNpb25zIGZyb20gRE9NUGFy
c2luZyBhbmQgU2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9uIChodHRwczovL3czYy5naXRodWIu
aW8vRE9NLVBhcnNpbmcvI2V4dGVuc2lvbnMtdG8tdGhlLXJhbmdlLWludGVyZmFjZSkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCBhZGM5ZTE3NzBhOS4uMGY3ODVlZGNhNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAj
aW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgor
I2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgiCkBAIC00MDUsNyArNDA2LDcgQEAgU3RyaW5nIFBhZ2U6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1W
ZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkKK1JlZjxE
T01SZWN0TGlzdD4gUGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiB7CiAgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICBkb2N1
bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBAIC00MjEsMTAgKzQyMiwxMCBAQCBWZWN0b3I8UmVmPERP
TVJlY3Q+PiBQYWdlOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQogICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVj
dChyZWN0c1tpXSk7CiAKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7Cisg
ICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUocXVhZHMpOwogfQogCi1WZWN0b3I8UmVmPERP
TVJlY3Q+PiBQYWdlOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSkKK1JlZjxET01SZWN0TGlzdD4gUGFnZTo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29u
c3QgU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1f
bWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQo
KTsKQEAgLTQ0NCwxMCArNDQ1LDEwIEBAIFZlY3RvcjxSZWY8RE9NUmVjdD4+IFBhZ2U6OnRvdWNo
RXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHF1YWRzW2ldID0gRmxv
YXRSZWN0KHJlY3RzW2ldKTsKIAotICAgIHJldHVybiBjcmVhdGVET01SZWN0VmVjdG9yKHF1YWRz
KTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9CiAKLVZlY3RvcjxS
ZWY8RE9NUmVjdD4+IFBhZ2U6OnBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpCitSZWY8
RE9NUmVjdExpc3Q+IFBhZ2U6OnBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpCiB7CiAg
ICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudCgpKSB7CiAg
ICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsKQEAgLTQ2NCw3ICs0NjUsNyBAQCBWZWN0
b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKQog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHF1
YWRzW2ldID0gRmxvYXRSZWN0KHJlY3RzW2ldKTsKIAotICAgIHJldHVybiBjcmVhdGVET01SZWN0
VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShxdWFkcyk7CiB9
CiAKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggN2Jl
ZjUwY2YxZWUuLmIyMmE0MjlhZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtODUsNiArODUsNyBAQCBj
bGFzcyBDb2xvcjsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3MgQ29udGV4dE1lbnVD
b250cm9sbGVyOwogY2xhc3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRGF0
YWJhc2VQcm92aWRlcjsKIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogY2xhc3MgRHJh
Z0NhcmV0Q29udHJvbGxlcjsKQEAgLTIzOCwxMCArMjM5LDEwIEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4gbm9uRmFzdFNjcm9sbGFibGVS
ZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxET01SZWN0TGlzdD4gbm9uRmFzdFNjcm9s
bGFibGVSZWN0cygpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4g
dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpOwotICAgIFdF
QkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVu
ZXJSZWN0cygpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxET01SZWN0TGlzdD4gdG91Y2hFdmVu
dFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZjxET01SZWN0TGlzdD4gcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAK
ICAgICBTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiAqbV9zZXR0aW5nczsgfQog
ICAgIFByb2dyZXNzVHJhY2tlciYgcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiAqbV9wcm9ncmVz
czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDdlYWNiMGZmNTRjLi5i
M2I2NWE2ODNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkRPTVBhdGguaCIKICNpbmNs
dWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIKICNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKQEAgLTEzNTUsNyArMTM1Niw3IEBAIFJlZjxET01SZWN0PiBJbnRlcm5hbHM6OmJvdW5k
aW5nQm94KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIERPTVJlY3Q6OmNyZWF0ZShyZW5k
ZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKSk7CiB9CiAK
LUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Omluc3BlY3Rvckhp
Z2hsaWdodFJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IEludGVybmFsczo6
aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNv
bnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkp
CkBAIC0xMzYzLDcgKzEzNjQsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4g
SW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpCiAKICAgICBIaWdobGlnaHQgaGln
aGxpZ2h0OwogICAgIGRvY3VtZW50LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5nZXRI
aWdobGlnaHQoaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpW
aWV3KTsKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihoaWdobGlnaHQucXVhZHMpOwor
ICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7CiB9CiAKIEV4
Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKQpA
QCAtMTc5OSw3ICsxODAwLDcgQEAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6dG91
Y2hFdmVudEhhbmRsZXJDb3VudCgpCiAgICAgcmV0dXJuIGRvY3VtZW50LT50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRl
cm5hbHM6OnRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQor
RXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjp0b3VjaEV2ZW50UmVjdHNG
b3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKIHsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+
cGFnZSgpKQpAQCAtMTgwOCw3ICsxODA5LDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01S
ZWN0Pj4+IEludGVybmFsczo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW4KICAg
ICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoZXZlbnRO
YW1lKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6
cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0
TGlzdD4+IEludGVybmFsczo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQpAQCAtMjMzMCw3ICsyMzMxLDcgQEAgRXhjZXB0aW9u
T3I8U3RyaW5nPiBJbnRlcm5hbHM6Om1haW5UaHJlYWRTY3JvbGxpbmdSZWFzb25zKCkgY29uc3QK
ICAgICByZXR1cm4gcGFnZS0+c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCk7CiB9
CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RT
Y3JvbGxhYmxlUmVjdHMoKSBjb25zdAorRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50
ZXJuYWxzOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkgY29uc3QKIHsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+ZnJhbWUoKSkKQEAgLTIzMzgsNyArMjMzOSw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxS
ZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdAog
CiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQotICAg
ICAgICByZXR1cm4gVmVjdG9yPFJlZjxET01SZWN0Pj4geyB9OworICAgICAgICByZXR1cm4gRE9N
UmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgcmV0dXJuIHBhZ2UtPm5vbkZhc3RTY3JvbGxhYmxl
UmVjdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDUyZTE2OGJmNjM0
Li43MjY5NWRkNjY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00Myw2ICs0
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9Db250ZXh0OwogY2xhc3Mg
RE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRE9NVVJMOwogY2xhc3MgRE9NV2lu
ZG93OwogY2xhc3MgRG9jdW1lbnQ7CkBAIC0xODMsNyArMTg0LDcgQEAgcHVibGljOgogCiAgICAg
UmVmPERPTVJlY3Q+IGJvdW5kaW5nQm94KEVsZW1lbnQmKTsKIAotICAgIEV4Y2VwdGlvbk9yPFZl
Y3RvcjxSZWY8RE9NUmVjdD4+PiBpbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAgIEV4Y2Vw
dGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IGluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCk7CiAgICAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBpbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKIAogICAgIEV4
Y2VwdGlvbk9yPHVuc2lnbmVkPiBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSYsIGNvbnN0IFN0cmlu
ZyYpOwpAQCAtMjQzLDggKzI0NCw4IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25l
ZD4gd2hlZWxFdmVudEhhbmRsZXJDb3VudCgpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiB0
b3VjaEV2ZW50SGFuZGxlckNvdW50KCk7CiAKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERP
TVJlY3Q+Pj4gdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgRXhj
ZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJS
ZWN0cygpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IHRvdWNoRXZlbnRSZWN0
c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlz
dD4+IHBhc3NpdmVUb3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpOwogCiAgICAgRXhjZXB0aW9uT3I8
UmVmUHRyPE5vZGVMaXN0Pj4gbm9kZXNGcm9tUmVjdChEb2N1bWVudCYsIGludCB4LCBpbnQgeSwg
dW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0
b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZywgYm9v
bCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgYWxsb3dDaGlsZEZyYW1lQ29udGVudCkgY29uc3Q7
CiAKQEAgLTI5OCw3ICsyOTksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiBy
ZXBhaW50UmVjdHNBc1RleHQoKSBjb25zdDsKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IHNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gbWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnMoKSBjb25zdDsKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8
UmVmPERPTVJlY3Q+Pj4gbm9uRmFzdFNjcm9sbGFibGVSZWN0cygpIGNvbnN0OworICAgIEV4Y2Vw
dGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdDsK
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVsZW1lbnRVc2VzRGlzcGxheUxpc3REcmF3aW5n
KEVsZW1lbnQmLCBib29sIHVzZXNEaXNwbGF5TGlzdERyYXdpbmcpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEVsZW1lbnRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShFbGVtZW50JiwgYm9vbCBp
c1RyYWNraW5nUmVwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA1
ZmQ4NmFjNDhmNS4uMjY4NmIzMWE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTE1Myw3ICsxNTMsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAog
ICAgIERPTVJlY3QgYm91bmRpbmdCb3goRWxlbWVudCBlbGVtZW50KTsKIAotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NUmVjdD4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsK
KyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVJlY3RMaXN0IGluc3BlY3RvckhpZ2hsaWdodFJl
Y3RzKCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgaW5zcGVjdG9ySGlnaGxp
Z2h0T2JqZWN0KCk7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgbWFy
a2VyQ291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1hcmtlclR5cGUpOwpAQCAtMjE2
LDggKzIxNiw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gdW5zaWduZWQgbG9uZyB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAg
W01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIHRvdWNoRXZlbnRIYW5kbGVyQ291bnQo
KTsKIAotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NUmVjdD4gdG91Y2hFdmVu
dFJlY3RzRm9yRXZlbnQoRE9NU3RyaW5nIGV2ZW50TmFtZSk7Ci0gICAgW01heVRocm93RXhjZXB0
aW9uXSBzZXF1ZW5jZTxET01SZWN0PiBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsK
KyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVJlY3RMaXN0IHRvdWNoRXZlbnRSZWN0c0ZvckV2
ZW50KERPTVN0cmluZyBldmVudE5hbWUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVj
dExpc3QgcGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CiAKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIE5vZGVMaXN0PyBub2Rlc0Zyb21SZWN0KERvY3VtZW50IGRvY3VtZW50LCBsb25n
IHgsIGxvbmcgeSwKICAgICAgICAgdW5zaWduZWQgbG9uZyB0b3BQYWRkaW5nLCB1bnNpZ25lZCBs
b25nIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgbG9uZyBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBs
b25nIGxlZnRQYWRkaW5nLApAQCAtMjc0LDcgKzI3NCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3IgewogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgc2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgbWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnMoKTsgLy8gRklYTUU6IHJlbmFtZSB0byBzeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMoKS4KLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNlcXVlbmNlPERP
TVJlY3Q+IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IERPTVJlY3RMaXN0IG5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKIAogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gRE9NU3RyaW5nIHJlcGFpbnRSZWN0c0FzVGV4dCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3RMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCmluZGV4IDcz
NTI2ODE5ZjQzLi4zMzcwOWZkZWRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKQEAgLTM1LDQzICszNSwzMSBAQAogCiAj
ZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVF9HRVRfUFJJVkFURShvYmopIEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9M
SVNULCBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUpCiAKLWNsYXNzIENsaWVudFJlY3RM
aXN0IDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpZW50UmVjdExpc3Q+IHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6
OkRPTVJlY3Q+PiYmIGl0ZW1zKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2xpZW50UmVjdExpc3QoV1RGTW92ZShpdGVtcykpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBXVEY6
OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiBpdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1f
aXRlbXM7IH0KLQotcHJpdmF0ZToKLSAgICBDbGllbnRSZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8
V2ViQ29yZTo6RE9NUmVjdD4+JiYgaXRlbXMpCi0gICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0
ZW1zKSkKLSAgICB7IH0KLQotICAgIFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4g
bV9pdGVtczsKLX07Ci0KIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01DbGllbnRSZWN0TGlzdFBy
aXZhdGUgewotICAgIFJlZlB0cjxDbGllbnRSZWN0TGlzdD4gY29yZU9iamVjdDsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJl
Y3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiBraXQoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmIG9iaikKK1dl
YktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdExpc3QqIG9iaikKIHsK
LSAgICByZXR1cm4gd3JhcENsaWVudFJlY3RMaXN0KFdURk1vdmUob2JqKSk7CisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGdwb2ludGVyIHJldCA9IERP
TU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5U
X1JFQ1RfTElTVChyZXQpOworCisgICAgcmV0dXJuIHdyYXBET01SZWN0TGlzdChvYmopOwogfQog
Ci1zdGF0aWMgQ2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJl
cXVlc3QpCitXZWJDb3JlOjpET01SZWN0TGlzdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0TGlz
dCogcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PENsaWVudFJl
Y3RMaXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0
cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3RMaXN0
Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKIH0K
IAotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChXVEY6OlZlY3Rv
cjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgY29yZU9iamVjdCkKK1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiB3cmFwRE9NUmVjdExpc3QoV2ViQ29yZTo6RE9NUmVjdExpc3QqIGNvcmVPYmplY3Qp
CiB7Ci0gICAgYXV0byBsaXN0ID0gQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvcmVP
YmplY3QpKTsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNUKGdfb2JqZWN0
X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgImNvcmUtb2JqZWN0IiwgbGlz
dC5wdHIoKSwgbnVsbHB0cikpOworICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJ
U1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9MSVNULCAiY29yZS1v
YmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApAQCAtMTEyLDcgKzEwMCw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3Rf
bGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVj
dCk7CiAKICAgICBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRf
RE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3Jl
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChv
YmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RE9NUmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2Jq
ZWN0KTsKKyAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5n
ZXQoKSwgb2JqZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9s
aXN0X2NsYXNzX2luaXQoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RDbGFzcyogcmVxdWVzdENsYXNz
KQpAQCAtMTQ1LDggKzEzNCw4IEBAIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xp
ZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgbnVsbHB0cik7Ci0gICAg
YXV0byYgbGlzdCA9IFdlYktpdDo6Y29yZShzZWxmKS0+aXRlbXMoKTsKLSAgICBSZWZQdHI8V2Vi
Q29yZTo6RE9NUmVjdD4gZ29iamVjdFJlc3VsdCA9IGluZGV4ID49IGxpc3Quc2l6ZSgpID8gbnVs
bHB0ciA6IGxpc3RbaW5kZXhdLnB0cigpOworICAgIGF1dG8qIGxpc3QgPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6
OmdldFB0cihsaXN0LT5pdGVtKGluZGV4KSk7CiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmpl
Y3RSZXN1bHQuZ2V0KCkpOwogfQogCkBAIC0xNTQsNSArMTQzLDUgQEAgZ3Vsb25nIHdlYmtpdF9k
b21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBz
ZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2VsZiks
IDApOwotICAgIHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPml0ZW1zKCkuc2l6ZSgpOworICAg
IHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DbGllbnRSZWN0TGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgK
aW5kZXggZDIxMjJiYTc3MmEuLjEzOTJkNDU3NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKQEAgLTE5
LDExICsxOSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVjdExpc3QuaD4KICNpbmNsdWRlIDx3ZWJraXRk
b20vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRS
ZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYpOwotV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QqIGtpdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYp
OworV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBET01SZWN0TGlzdChXZWJDb3JlOjpET01S
ZWN0TGlzdCopOworV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJDb3JlOjpET01SZWN0
TGlzdCopOworV2ViQ29yZTo6RE9NUmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QqKTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRWxlbWVudC5jcHAKaW5kZXggYjU2NzVhMGI0NGYuLjE1ZjYyZDBiNmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKQEAgLTEyMzks
NyArMTIzOSw3IEBAIFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2NsaWVudF9yZWN0cyhXZWJLaXRET01FbGVtZW50KiBzCiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CiAgICAgV2ViQ29yZTo6RWxlbWVudCogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRlbS0+Z2V0
Q2xpZW50UmVjdHMoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldENsaWVudFJl
Y3RzKCkucHRyKCkpOwogfQogCiBXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X29mZnNldF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311539</attachid>
            <date>2017-05-30 13:34:20 -0700</date>
            <delta_ts>2017-05-30 14:19:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172703-20170530133420.patch</filename>
            <type>text/plain</type>
            <size>50166</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk3YTM4MDk1YzI3ZjMx
YTRlMGJhMWIxY2VhZWJhOTA0ZmRjNmI3My4uMTkwMDVhOWIyOGNmNmYzNGQxYmEzZTgyZTZmNzdm
NzAwMTVlNTM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTA1LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjE1OTQ2
KTogQ2FuJ3QgcmVmZXJlbmNlIGEgdGFibGUgY2VsbCBpbiBHb29nbGUgc3ByZWFkc2hlZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjcwMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzI0NTgwODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgdXBkYXRlZCBnZXRDbGllbnRSZWN0cygpIHRvIHJl
dHVybiBhbiBhcnJheSBvZiBET01SZWN0IG9iamVjdHMgaW5zdGVhZCBvZgorICAgICAgICBhIENs
aWVudFJlY3RMaXN0IHR5cGUsIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbi4gQXMg
aXQgdHVybnMgb3V0LCB0aGlzCisgICAgICAgIGlzIG5vdCBXZWItY29tcGF0aWJsZSBhcyBzb21l
IGNvbnRlbnQgKGFzIEdvb2dsZSBTcHJlYWRzaGVldCkgcmVsaWVzIG9uIHRoZQorICAgICAgICBy
ZXR1cm4gdHlwZSBoYXZpbmcgYW4gaXRlbSgpIG9wZXJhdGlvbi4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlLWludHJvZHVjZXMgYSBET01SZWN0TGlzdCB0eXBlLCB3aXRoIGFuIGl0ZW0oKSBvcGVy
YXRpb24uIFRoZQorICAgICAgICBET01SZWN0TGlzdCBuYW1lIGlzIGN1cnJlbnRseSBub3QgZXhw
b3NlZCB0byB0aGUgV2ViIGFzIHdlIGRvIG5vdCBrbm93IHdoYXQncworICAgICAgICBnb2luZyB0
byBnZXQgc3BlY2lmaWVkIHlldCAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMv
aXNzdWVzLzE0NzkpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9ET01SZWN0Lmg6CisgICAgICAgICogZG9tL0RPTVJlY3RMaXN0LmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUmVjdExpc3Q6OkRPTVJlY3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJl
Y3RMaXN0Ojp+RE9NUmVjdExpc3QpOgorICAgICAgICAqIGRvbS9ET01SZWN0TGlzdC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5jcHAuCisgICAgICAgIChXZWJDb3Jl
OjpET01SZWN0TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJlY3RMaXN0Ojps
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVjdExpc3Q6Oml0ZW0pOgorICAgICAgICAq
IGRvbS9ET01SZWN0TGlzdC5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRE9N
UmVjdC5jcHAuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSYW5nZTo6Z2V0Q2xpZW50UmVjdHMpOgorICAgICAgICAqIGRvbS9SYW5nZS5o
OgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6Om5vbkZhc3RTY3JvbGxhYmxlUmVjdHMpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKToKKyAgICAgICAgKiBwYWdl
L1BhZ2UuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6dG91Y2hFdmVudFJlY3RzRm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxNy0wNS0zMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIyMTc1MTUpOiBDb3JyZWN0IGl0ZXJhdG9yIGludmFsaWRhdGlvbiBidWcg
KEFHQUlOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGE5YjBiNzBkMjE4OTY1YTc3YmFkNmIzNGM1OTc3MWJmY2Zl
ODExZWYuLjAyMjUwYzQ2YzhlNTk0ZmNhYTI2ZjU2YjI2NTM3NmY1ZDQ3MjM5Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNy0wNS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIxNTk0Nik6IENhbid0IHJlZmVyZW5jZSBh
IHRhYmxlIGNlbGwgaW4gR29vZ2xlIHNwcmVhZHNoZWV0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzMyNDU4MDg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeCBHT2JqZWN0IGJpbmRpbmdzIGFjY29yZGluZ2x5LgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAg
ICAgICAoV2ViS2l0Ojp3cmFwRE9NUmVjdExpc3QpOgorICAgICAgICAod2Via2l0X2RvbV9jbGll
bnRfcmVjdF9saXN0X2NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdF9kb21fY2xpZW50X3Jl
Y3RfbGlzdF9pdGVtKToKKyAgICAgICAgKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRf
bGVuZ3RoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHA6CisgICAgICAg
ICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyk6CisKIDIwMTctMDUtMzAgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE5
MTQwMj8pOiBTYWZhcmksIE1haWwgY3Jhc2ggYXQgY29tLmFwcGxlLldlYktpdDogV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUgKyA0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDc0ZmZkZTNhMjg3NjZhMjY0MzBjNGQyMjMwMTlkMThhMDhhZTZkMDEuLmExMTBi
NGUyZjFlNGJhZjgzZDFhZGEwN2Q5ZGUzNTI4ODNjNGU3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC00MTksNiArNDE5LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBk
b20vRE9NUG9pbnRSZWFkT25seS5pZGwKICAgICBkb20vRE9NUmVjdC5pZGwKICAgICBkb20vRE9N
UmVjdEluaXQuaWRsCisgICAgZG9tL0RPTVJlY3RMaXN0LmlkbAogICAgIGRvbS9ET01SZWN0UmVh
ZE9ubHkuaWRsCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuaWRsCiAgICAgZG9tL0RPTVN0cmluZ01h
cC5pZGwKQEAgLTE0NDgsNyArMTQ0OSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
RE9NRXJyb3IuY3BwCiAgICAgZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAogICAgIGRvbS9ET01O
YW1lZEZsb3dDb2xsZWN0aW9uLmNwcAotICAgIGRvbS9ET01SZWN0LmNwcAorICAgIGRvbS9ET01S
ZWN0TGlzdC5jcHAKICAgICBkb20vRE9NU3RyaW5nTGlzdC5jcHAKICAgICBkb20vRGF0YVRyYW5z
ZmVyLmNwcAogICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY3M2ZiNjU0ODgzZDdmMmNjMDFkYjcxMjNmNDNiNzBjNTViN2ZjNS4u
NzA2NjZmMGVhNjY3MGYzNGU2OGZjNGQ1YzA0ZTliMmVhNTM0NWQxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNTksNiArMzU5LDcgQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9ET01SZWN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NUmVjdEluaXQuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL2RvbS9ET01SZWN0TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L0RPTVJlY3RSZWFkT25seS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RPTVN0cmluZ0xpc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MGEwZWM1
Y2MxZDhkOTBlNzRkNDI5NDY1NzRiMzAwOTc2MTVlNTczLi5kMDJmNWZjMjMzMTY1NDIwYmM4ZTkx
NGI3NjMwN2ZhM2RhYTdhZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM2LDkgKzE5MzYsMTMgQEAKIAkJNDY1MzA3RDAx
REI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTA0NUVGMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJ
RXZlbnRJbml0LmggKi87IH07CiAJCTQ2NTMwN0QxMURCNkVFNEEwMEU0MTM3QyAvKiBKU1VJRXZl
bnRJbml0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRTA0NUVFMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJRXZlbnRJbml0LmNwcCAqLzsgfTsKIAkJ
NDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1QThF
NzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tICov
OyB9OworCQk0NjZEQzZBQzFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZEQzZBQjFFREUw
MjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi87IH07CisJCTQ2NkVEOEQzMUVERTAx
NDQwMDVFNDNGNiAvKiBKU0RPTVJlY3RMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0
TGlzdC5oICovOyB9OwogCQk0NjcxRTA2NTFENjdBNTk2MDBDNkI0OTcgLyogQ2FudmFzUGF0aC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjcxRTA2
MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFzUGF0aC5jcHAgKi87IH07CiAJCTQ2NzFFMDY2MUQ2
N0E1OTYwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjcxRTA2NDFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFzUGF0
aC5oICovOyB9OwogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJp
bmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNE
dXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CisJCTQ2ODM0NERGMUVEREZBQUEw
MEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3Qu
Y3BwICovOyB9OworCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVE
REZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyB9OwogCQk0Njg5RjFBRjEyNjdCQUUx
MDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRh
LmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2
M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3MjA1Rjcw
MDU5NzkzNyAvKiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMzMwLDcg
KzMzMzQsNiBAQAogCQk4MzBBMzZCRDFEQUM1RkFEMDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5p
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwQTM2
QkIxREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAqLzsgfTsKIAkJODMxMjBD
NzAxQzU2RjNGNjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAg
LyogSFRNTERhdGFFbGVtZW50LmNwcCAqLzsgfTsKIAkJODMxMjBDNzExQzU2RjNGQjAwMUNCMTEy
IC8qIEhUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhUTUxEYXRhRWxlbWVudC5o
ICovOyB9OwotCQk4MzE0OUZGNjFFQjM4QjM3MDAwODk2NjUgLyogRE9NUmVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzE0OUZGNTFFQjM4QjEy
MDAwODk2NjUgLyogRE9NUmVjdC5jcHAgKi87IH07CiAJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1
NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRl
RWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmNwcCAqLzsgfTsKIAkJODM0MDdGQzExRThEOUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlD
aGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk2MzEs
OSArOTYzNCwxNCBAQAogCQk0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdDb2xsZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZF
RDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVBOEU3ODFD
OEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50aW1lQXBwbGljYXRpb25DaGVj
a3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY2REM2QUIxRURFMDIx
RDAwNzQ2MjI0IC8qIEpTRE9NUmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNET01SZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NkVEOEQyMUVERTAxMzUwMDVFNDNGNiAvKiBKU0RPTVJlY3RMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjMxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FudmFzUGF0aC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAvKiBD
YW52YXNQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc1BhdGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3
IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVt
ZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4MzQ0REMxRURERkE1RjAw
Qjc3OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0Njg5RjFBRTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdl
dEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0
Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzY5NkM5MUU3MjA1RTQw
MDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENQVU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzg3LDcgKzEx
Mzk1LDYgQEAKIAkJODMwNzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhNTERvY3VtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZl
bnRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VF
dmVudEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFEQUM1
RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01vdXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjlBNDE3MUVDMjVCMkIwMDhFRDRC
RSAvKiBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODMyOURDQzIxQzdBNkFFMzAwNzMwQjMzIC8qIEhUTUxIeXBlcmxp
bmtFbGVtZW50VXRpbHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxIeXBlcmxpbmtF
bGVtZW50VXRpbHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5ODMsNiAr
MjE5OTAsOCBAQAogCQkJCTBGNDcxMEI2MURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3QuaCAq
LywKIAkJCQkwRjQ3MTBCNzFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0SW5pdC5jcHAgKi8s
CiAJCQkJMEY0NzEwQjgxREI1NkJFODAwMkRDRUMzIC8qIEpTRE9NUmVjdEluaXQuaCAqLywKKwkJ
CQk0NjZEQzZBQjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8sCisJCQkJ
NDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAqLywKIAkJCQkwRjQ3
MTBCOTFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0UmVhZE9ubHkuY3BwICovLAogCQkJCTBG
NDcxMEJBMURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RSZWFkT25seS5oICovLAogCQkJCUM1
MTM3Q0YwMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwICovLApAQCAtMjU2
MTMsOSArMjU2MjIsMTEgQEAKIAkJCQkwRjQ5NjZBMTFEQjQwOTAxMDBBMjc0QkIgLyogRE9NUG9p
bnRJbml0LmlkbCAqLywKIAkJCQkwRjQ5NjY5QjFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnRS
ZWFkT25seS5oICovLAogCQkJCTBGNDk2NjlDMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludFJl
YWRPbmx5LmlkbCAqLywKLQkJCQk4MzE0OUZGNTFFQjM4QjEyMDAwODk2NjUgLyogRE9NUmVjdC5j
cHAgKi8sCiAJCQkJMEY0NzEwQTkxREI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3QuaCAqLywKIAkJ
CQkwRjQ3MTBBQTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVjdC5pZGwgKi8sCisJCQkJNDY4MzQ0
REQxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCAqLywKKwkJCQk0NjgzNDRERTFF
RERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCAqLywKKwkJCQk0NjgzNDREQzFFRERGQTVG
MDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovLAogCQkJCTBGNDcxMEFCMURCNTZBRkMwMDJE
Q0VDMyAvKiBET01SZWN0SW5pdC5oICovLAogCQkJCTBGNDcxMEFDMURCNTZBRkMwMDJEQ0VDMyAv
KiBET01SZWN0SW5pdC5pZGwgKi8sCiAJCQkJMEY0NzEwQUQxREI1NkFGQzAwMkRDRUMzIC8qIERP
TVJlY3RSZWFkT25seS5oICovLApAQCAtMjcwNzMsNiArMjcwODQsNyBAQAogCQkJCUJDNUE4Njg1
MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUM1
NDQyNzRCMTFBNTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzY0NjQwQTExRDdGMzA0MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE4ODYwNEI0MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDVGRDY5RTAxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQzJCMEMxMjM3MERBMDAwNkE5OTFBIC8qIERPTVRv
a2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY5OSw2ICsyNzcxMSw3IEBACiAJCQkJQkU4
RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NkVEOEQzMUVERTAxNDQwMDVFNDNGNiAv
KiBKU0RPTVJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5
RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0M3QTY5RjFFNTc5MTc4
MDBDNjdENzEgLyogSlNCYXNpY0NyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2
MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMDY5OCw2ICszMDcxMSw3IEBACiAJCQkJNTEwMTg0NkEwQjA4NjAyQTAwNEE4MjVGIC8q
IENhY2hlZFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBFREE3NzQxNDNFMzAzQzAwMjhF
MzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzFG
MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0NjgzNDRERjFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDgxRTNDMzNDRTU4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzEwODAsNyArMzEwOTQsNiBAQAogCQkJCTJENTAwMkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBET01Q
YXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBE
T01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUYwRDc0NUUzODAwNjQ0MkU5
IC8qIERPTVBsdWdpbkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzMTQ5RkY2MUVCMzhC
MzcwMDA4OTY2NSAvKiBET01SZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUE4Njg0MEMz
MzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1
NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTg4NjA0QjMwRjJFNjU0QTAwMEI2NDQzIC8qIERPTVRpbWVyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMzM3ODEsNiArMzM3OTQsNyBAQAogCQkJCUIxMEI2OTgxMTQwQzE3NDAwMEJDMUMy
NiAvKiBXZWJWVFRUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q4MjAzMTExMzk1
QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTQ2NkRDNkFDMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg1MDMxQjUwMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFMTk1MTZCMUI2NTk4RDIwMERGNkVFRiAvKiBXaGVl
bEV2ZW50RGVsdGFGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVFRUU1NUMxQjY2QTA0
NzAwOEUyQ0JDIC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVJlY3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzk2ZTYy
OTM1NzQzODNiZDJmNmIyYmI2OTJkNWZiYTM0ZjcxYTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRE9NUmVjdC5oIgotCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVmVjdG9yPFJlZjxET01SZWN0Pj4gY3JlYXRlRE9NUmVj
dFZlY3Rvcihjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCi17Ci0gICAgVmVjdG9yPFJl
ZjxET01SZWN0Pj4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1
YWRzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIHJlc3Vs
dC51bmNoZWNrZWRBcHBlbmQoRE9NUmVjdDo6Y3JlYXRlKHF1YWQuYm91bmRpbmdCb3goKSkpOwot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01SZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCmluZGV4IDE0NTMzODFj
MGU0ZjM4NGE2ZGUwMTU2OGQ5YjBkNDJmODZiZTUwNDguLjhhZjRmMGNlNjU5NGMzOGZlYzJhMDRk
NDFmNTNkYTdjNzZkNDRhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaApAQCAtNTgsNiArNTgsNCBAQCBw
cml2YXRlOgogICAgIERPTVJlY3QoKSA9IGRlZmF1bHQ7CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBW
ZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9h
dFF1YWQ+Jik7Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0TGlz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJk
MzNkMjkxMDU1MjllMzQzMWVjZGIwZWMzOGYzZDU0Yzg1ODQ3MzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdExpc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NUmVjdExpc3QuaCIK
KworI2luY2x1ZGUgIkRPTVJlY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01SZWN0
TGlzdDo6RE9NUmVjdExpc3QoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQoreworICAg
IG1faXRlbXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOworICAgIGZvciAo
YXV0byYgcXVhZCA6IHF1YWRzKQorICAgICAgICBtX2l0ZW1zLnVuY2hlY2tlZEFwcGVuZChET01S
ZWN0OjpjcmVhdGUocXVhZC5ib3VuZGluZ0JveCgpKSk7Cit9CisKK0RPTVJlY3RMaXN0Ojp+RE9N
UmVjdExpc3QoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01S
ZWN0TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNDZhYjM4OWYzZmVmNzdkYjZlNDQwMmY4MTNlOTYxMWYx
OTk3N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdExpc3Qu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01SZWN0OworCitj
bGFzcyBET01SZWN0TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVJlY3RMaXN0PiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxET01SZWN0TGlzdD4gY3JlYXRlKGNvbnN0IFZlY3RvcjxGbG9h
dFF1YWQ+JiBxdWFkcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01SZWN0TGlzdChxdWFkcykp
OyB9CisgICAgc3RhdGljIFJlZjxET01SZWN0TGlzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBET01SZWN0TGlzdCgpKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIH5ET01SZWN0TGlz
dCgpOworCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXpl
KCk7IH0KKyAgICBET01SZWN0KiBpdGVtKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA8
IG1faXRlbXMuc2l6ZSgpID8gbV9pdGVtc1tpbmRleF0ucHRyKCkgOiBudWxscHRyOyB9CisKK3By
aXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRE9NUmVjdExpc3QoY29uc3QgVmVj
dG9yPEZsb2F0UXVhZD4mIHF1YWRzKTsKKyAgICBET01SZWN0TGlzdCgpID0gZGVmYXVsdDsKKwor
ICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IG1faXRlbXM7Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVJlY3RMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjExMjgzZGI5NDg2Njc1ODhmMTNlNGRlZjc1Y2Q0
OGU1ODczNjgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3RM
aXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX0VYUE9SVCwKKyAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICAg
Tm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIERPTVJlY3RMaXN0IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIERPTVJlY3QgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYzg3
YTZkNjhlMTEwNTBiMWY3ODVkN2Y5NDEyYTRkNWVkZDBjZTcyMy4uMmJkMTdjNjViNmE5OGZiMjVl
ZmFjYjI2MDFkN2JjYzIzMTA3NjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgiCiAjaW5jbHVk
ZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgorI2luY2x1
ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRBbmltYXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wu
aCIKQEAgLTExNDQsMTMgKzExNDUsMTMgQEAgTGF5b3V0UmVjdCBFbGVtZW50OjphYnNvbHV0ZUV2
ZW50SGFuZGxlckJvdW5kcyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZW4KICAgICBy
ZXR1cm4gYWJzb2x1dGVFdmVudEJvdW5kc09mRWxlbWVudEFuZERlc2NlbmRhbnRzKGluY2x1ZGVz
Rml4ZWRQb3NpdGlvbkVsZW1lbnRzKTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gRWxlbWVu
dDo6Z2V0Q2xpZW50UmVjdHMoKQorUmVmPERPTVJlY3RMaXN0PiBFbGVtZW50OjpnZXRDbGllbnRS
ZWN0cygpCiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKIAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJCb3hNb2RlbE9iamVj
dCA9IHRoaXMtPnJlbmRlckJveE1vZGVsT2JqZWN0KCk7CiAgICAgaWYgKCFyZW5kZXJCb3hNb2Rl
bE9iamVjdCkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIERPTVJlY3RMaXN0
OjpjcmVhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgU1ZHIGVsZW1lbnRzLgogICAgIC8v
IEZJWE1FOiBIYW5kbGUgdGFibGUvaW5saW5lLXRhYmxlIHdpdGggYSBjYXB0aW9uLgpAQCAtMTE1
OCw3ICsxMTU5LDcgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gRWxlbWVudDo6Z2V0Q2xpZW50UmVj
dHMoKQogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIHJlbmRlckJveE1vZGVsT2Jq
ZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKICAgICBkb2N1bWVudCgpLmNvbnZlcnRBYnNvbHV0
ZVRvQ2xpZW50UXVhZHMocXVhZHMsIHJlbmRlckJveE1vZGVsT2JqZWN0LT5zdHlsZSgpKTsKLSAg
ICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RM
aXN0OjpjcmVhdGUocXVhZHMpOwogfQogCiBSZWY8RE9NUmVjdD4gRWxlbWVudDo6Z2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDk0MTQ2OWI1MTcxMDVkNzgxYzlk
MjY0OWU2MDFhMThkNWUxYjRjZTYuLmMzYjczMWRkZWVkMjNmNjE1ZjNjZjgxYzAwYjM5YjdlYTQ4
MGRiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTsKIGNsYXNzIERhdGFzZXRE
T01TdHJpbmdNYXA7CiBjbGFzcyBET01SZWN0OworY2xhc3MgRE9NUmVjdExpc3Q7CiBjbGFzcyBE
T01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURhdGE7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CkBAIC0xNzIsNyArMTczLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVj
dCBib3VuZHNJblJvb3RWaWV3U3BhY2UoKTsKIAotICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IGdl
dENsaWVudFJlY3RzKCk7CisgICAgUmVmPERPTVJlY3RMaXN0PiBnZXRDbGllbnRSZWN0cygpOwog
ICAgIFJlZjxET01SZWN0PiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIC8vIFJldHVy
bnMgdGhlIGFic29sdXRlIGJvdW5kaW5nIGJveCB0cmFuc2xhdGVkIGludG8gY2xpZW50IGNvb3Jk
aW5hdGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDc5ZWFiYjZmMWZlZTdiYjE4MmNmYzEx
OWNjOTI4OGUwNmI3YTA4NDUuLjRhMjNmZmJkYzUyZTczNzEzOWQ5OTk5YjAwNGVjN2EzODU4MjA4
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTY4LDcgKzY4LDcgQEAKICAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHZvaWQgaW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3aGVyZSwgRE9N
U3RyaW5nIGRhdGEpOyAvLyBIaXN0b3JpY2FsLgogCiAgICAgLy8gQ1NTT00tdmlldyBleHRlbnNp
b25zIChodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZXh0ZW5zaW9uLXRvLXRo
ZS1lbGVtZW50LWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVj
dHMoKTsKKyAgICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAgIFtOZXdPYmplY3Rd
IERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmll
dyhvcHRpb25hbCBib29sZWFuIGFsaWduV2l0aFRvcCA9IHRydWUpOyAvLyBGSVhNRTogUGFyYW1l
dGVyIHR5cGUgc2hvdWxkIGJlIChib29sZWFuIG9yIG9iamVjdCkuCiAgICAgW0ltcGxlbWVudGVk
QXM9c2Nyb2xsVG9dIHZvaWQgc2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDgyZjU4OWVmNDkyNjQ0MTQyNzk1MzVjYTBhNGYxMmYw
ZjRkNWVjZGUuLjhlOTU1NjUwZGE1YTJmYWIyMGY3OTg2MzE3ODFjZjE0YmE0OWRlNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29tbWVudC5oIgog
I2luY2x1ZGUgIkRPTVJlY3QuaCIKKyNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKQEAgLTE3NjIsOSArMTc2Myw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJhbmdlOjpleHBh
bmQoY29uc3QgU3RyaW5nJiB1bml0KQogICAgIHJldHVybiBzZXRFbmQoKmVuZENvbnRhaW5lciwg
ZW5kLmRlZXBFcXVpdmFsZW50KCkuY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKIH0K
IAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUmFuZ2U6OmdldENsaWVudFJlY3RzKCkgY29uc3QKK1Jl
ZjxET01SZWN0TGlzdD4gUmFuZ2U6OmdldENsaWVudFJlY3RzKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gY3JlYXRlRE9NUmVjdFZlY3Rvcihib3JkZXJBbmRUZXh0UXVhZHMoQ29vcmRpbmF0ZVNwYWNl
OjpDbGllbnQpKTsKKyAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShib3JkZXJBbmRUZXh0
UXVhZHMoQ29vcmRpbmF0ZVNwYWNlOjpDbGllbnQpKTsKIH0KIAogUmVmPERPTVJlY3Q+IFJhbmdl
OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCBlYTdjOTQ1
Yzg2YzQ5MDE1Y2FkYjQ4YzIyNGYwMzU2MmI4N2Q3YjAyLi4zYzU0Zjk0YTgxNmY2OTM0OTY0ZGQ0
NWI3ZDc5OGRjM2RjNzBkZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMzQsOCArMzQsOSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERPTVJlY3Q7CiBjbGFzcyBDb250YWluZXJOb2Rl
OworY2xhc3MgRE9NUmVjdDsKK2NsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRG9jdW1lbnQ7CiBj
bGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgRmxvYXRRdWFkOwpAQCAtMTQxLDcgKzE0Miw3
IEBAIHB1YmxpYzoKICAgICAvLyBmb3IgZGV0YWlscy4KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25Pcjx2b2lkPiBleHBhbmQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBWZWN0b3I8UmVmPERP
TVJlY3Q+PiBnZXRDbGllbnRSZWN0cygpIGNvbnN0OworICAgIFJlZjxET01SZWN0TGlzdD4gZ2V0
Q2xpZW50UmVjdHMoKSBjb25zdDsKICAgICBSZWY8RE9NUmVjdD4gZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlk
bAppbmRleCA0YzRkYjRlMjFjODY2ZDcwYThlYzEyNDE5NTRlNTM0YjU5YzgyNDZjLi44OGZjODA1
ZDY1MzYxMTlkOWZhMWYxYzQzYTQyMjMwZmFiMzljMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAg
LTY0LDcgKzY0LDcgQEAKICAgICBET01TdHJpbmcgdG9TdHJpbmcoKTsgLy8gRklYTUU6IFNob3Vs
ZCBiZSBzdHJpbmdpZmllciBvbmNlIHdlIHN1cHBvcnQgaXQuCiAKICAgICAvLyBFeHRlbnNpb25z
IGZyb20gQ1NTT00tdmlldyAoaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2V4
dGVuc2lvbnMtdG8tdGhlLXJhbmdlLWludGVyZmFjZSkuCi0gICAgc2VxdWVuY2U8RE9NUmVjdD4g
Z2V0Q2xpZW50UmVjdHMoKTsKKyAgICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwogICAg
IFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBF
eHRlbnNpb25zIGZyb20gRE9NUGFyc2luZyBhbmQgU2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9u
IChodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI2V4dGVuc2lvbnMtdG8tdGhlLXJh
bmdlLWludGVyZmFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBhZGM5ZTE3NzBhOWY3M2U3ZmUw
NWNkNTBhM2I5N2E0YjdkYjMzN2RhLi4wZjc4NWVkY2E0MzU2YjE1NTE4MDQ4YWI1N2FjYTM0N2M0
NDJhNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJD
b250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRPTVJlY3QuaCIKKyNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUg
IkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgpAQCAtNDA1LDcgKzQwNiw3IEBA
IFN0cmluZyBQYWdlOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoKQogICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6bm9uRmFzdFNj
cm9sbGFibGVSZWN0cygpCitSZWY8RE9NUmVjdExpc3Q+IFBhZ2U6Om5vbkZhc3RTY3JvbGxhYmxl
UmVjdHMoKQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+ZG9j
dW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dCgpOwpAQCAtNDIxLDEwICs0
MjIsMTAgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0
cygpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7ICsraSkKICAgICAg
ICAgcXVhZHNbaV0gPSBGbG9hdFJlY3QocmVjdHNbaV0pOwogCi0gICAgcmV0dXJuIGNyZWF0ZURP
TVJlY3RWZWN0b3IocXVhZHMpOworICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKHF1YWRz
KTsKIH0KIAotVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6dG91Y2hFdmVudFJlY3RzRm9yRXZl
bnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCitSZWY8RE9NUmVjdExpc3Q+IFBhZ2U6OnRvdWNo
RXZlbnRSZWN0c0ZvckV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQogewogICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBk
b2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBAIC00NDQsMTAgKzQ0NSwxMCBAQCBWZWN0b3I8UmVm
PERPTVJlY3Q+PiBQYWdlOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2
ZW50TmFtZSkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQog
ICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVjdChyZWN0c1tpXSk7CiAKLSAgICByZXR1cm4gY3Jl
YXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUo
cXVhZHMpOwogfQogCi1WZWN0b3I8UmVmPERPTVJlY3Q+PiBQYWdlOjpwYXNzaXZlVG91Y2hFdmVu
dExpc3RlbmVyUmVjdHMoKQorUmVmPERPTVJlY3RMaXN0PiBQYWdlOjpwYXNzaXZlVG91Y2hFdmVu
dExpc3RlbmVyUmVjdHMoKQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX21haW5G
cmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CkBA
IC00NjQsNyArNDY1LDcgQEAgVmVjdG9yPFJlZjxET01SZWN0Pj4gUGFnZTo6cGFzc2l2ZVRvdWNo
RXZlbnRMaXN0ZW5lclJlY3RzKCkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNp
emUoKTsgKytpKQogICAgICAgICBxdWFkc1tpXSA9IEZsb2F0UmVjdChyZWN0c1tpXSk7CiAKLSAg
ICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3RM
aXN0OjpjcmVhdGUocXVhZHMpOwogfQogCiAjaWYgRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDdiZWY1MGNmMWVlMDcyNWI3YzEwMTkxYWQ2N2I4ZThhOTQ5N2Jk
OGUuLmIyMmE0MjlhZmUzNDkyNDkzNmJiNzllYTJkMzAwZTFmYTFmYjk2ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC04NSw2ICs4NSw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgQ29udGV4dE1lbnVDbGll
bnQ7CiBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiBjbGFzcyBET01SZWN0OworY2xhc3Mg
RE9NUmVjdExpc3Q7CiBjbGFzcyBEYXRhYmFzZVByb3ZpZGVyOwogY2xhc3MgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7CiBjbGFzcyBEcmFnQ2FyZXRDb250cm9sbGVyOwpAQCAtMjM4LDEwICsyMzks
MTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1N0YXRl
VHJlZUFzVGV4dCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzeW5jaHJvbm91c1Njcm9s
bGluZ1JlYXNvbnNBc1RleHQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPERPTVJl
Y3Q+PiBub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPERP
TVJlY3RMaXN0PiBub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBWZWN0b3I8UmVmPERPTVJlY3Q+PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJp
bmcmIGV2ZW50TmFtZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxET01SZWN0Pj4g
cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVm
PERPTVJlY3RMaXN0PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPERPTVJlY3RMaXN0PiBwYXNzaXZlVG91Y2hF
dmVudExpc3RlbmVyUmVjdHMoKTsKIAogICAgIFNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IHsg
cmV0dXJuICptX3NldHRpbmdzOyB9CiAgICAgUHJvZ3Jlc3NUcmFja2VyJiBwcm9ncmVzcygpIGNv
bnN0IHsgcmV0dXJuICptX3Byb2dyZXNzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggN2VhY2IwZmY1NGMzNDkzYWU0MDBkYzYxYjFhOGNiYmYzZTEyMzFjYy4uYjNiNjVh
NjgzYzFhYjY1M2RiMGRjOTQxMjEwOGE0ZjQ3NDg3ZjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2lu
Y2x1ZGUgIkRPTVBhdGguaCIKICNpbmNsdWRlICJET01SZWN0LmgiCisjaW5jbHVkZSAiRE9NUmVj
dExpc3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKQEAgLTEzNTUsNyArMTM1Niw3IEBAIFJlZjxE
T01SZWN0PiBJbnRlcm5hbHM6OmJvdW5kaW5nQm94KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0
dXJuIERPTVJlY3Q6OmNyZWF0ZShyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25v
cmluZ1RyYW5zZm9ybXMoKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+
PiBJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKK0V4Y2VwdGlvbk9yPFJlZjxE
T01SZWN0TGlzdD4+IEludGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKQogewogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1l
bnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCkBAIC0xMzYzLDcgKzEzNjQsNyBAQCBFeGNlcHRpb25P
cjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4gSW50ZXJuYWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0
cygpCiAKICAgICBIaWdobGlnaHQgaGlnaGxpZ2h0OwogICAgIGRvY3VtZW50LT5wYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVy
bGF5OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKLSAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZl
Y3RvcihoaWdobGlnaHQucXVhZHMpOworICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKGhp
Z2hsaWdodC5xdWFkcyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjppbnNw
ZWN0b3JIaWdobGlnaHRPYmplY3QoKQpAQCAtMTc5OSw3ICsxODAwLDcgQEAgRXhjZXB0aW9uT3I8
dW5zaWduZWQ+IEludGVybmFsczo6dG91Y2hFdmVudEhhbmRsZXJDb3VudCgpCiAgICAgcmV0dXJu
IGRvY3VtZW50LT50b3VjaEV2ZW50SGFuZGxlckNvdW50KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZl
Y3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6OnRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50KGNv
bnN0IFN0cmluZyYgZXZlbnROYW1lKQorRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50
ZXJuYWxzOjp0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkK
IHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQpAQCAtMTgwOCw3ICsxODA5LDcgQEAgRXhj
ZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IEludGVybmFsczo6dG91Y2hFdmVudFJlY3Rz
Rm9yRXZlbnQoY29uc3QgU3RyaW4KICAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+dG91Y2hF
dmVudFJlY3RzRm9yRXZlbnQoZXZlbnROYW1lKTsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPFJl
ZjxET01SZWN0Pj4+IEludGVybmFsczo6cGFzc2l2ZVRvdWNoRXZlbnRMaXN0ZW5lclJlY3RzKCkK
K0V4Y2VwdGlvbk9yPFJlZjxET01SZWN0TGlzdD4+IEludGVybmFsczo6cGFzc2l2ZVRvdWNoRXZl
bnRMaXN0ZW5lclJlY3RzKCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9j
dW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQpAQCAtMjMz
MCw3ICsyMzMxLDcgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6Om1haW5UaHJlYWRT
Y3JvbGxpbmdSZWFzb25zKCkgY29uc3QKICAgICByZXR1cm4gcGFnZS0+c3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zQXNUZXh0KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVj
dD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKSBjb25zdAorRXhjZXB0aW9u
T3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjpub25GYXN0U2Nyb2xsYWJsZVJlY3RzKCkg
Y29uc3QKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkKQEAgLTIzMzgsNyArMjMzOSw3
IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBJbnRlcm5hbHM6Om5vbkZhc3RT
Y3JvbGxhYmxlUmVjdHMoKSBjb25zdAogCiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdl
KCk7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gVmVjdG9yPFJlZjxET01SZWN0Pj4g
eyB9OworICAgICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgcmV0dXJu
IHBhZ2UtPm5vbkZhc3RTY3JvbGxhYmxlUmVjdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDUyZTE2OGJmNjM0MGUwMWU1MGU0NTVhYTk5OTJmYWZjMDBlMmEwYTMuLjcy
Njk1ZGQ2NjRhMDQwOWIyZjc5ZjgxMjAzZjFlOGRlZTdiNzAxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEF1ZGlvQ29udGV4dDsKIGNsYXNzIERPTVJlY3Q7CitjbGFzcyBET01SZWN0TGlzdDsKIGNs
YXNzIERPTVVSTDsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIERvY3VtZW50OwpAQCAtMTgzLDcg
KzE4NCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZjxET01SZWN0PiBib3VuZGluZ0JveChFbGVtZW50
Jik7CiAKLSAgICBFeGNlcHRpb25PcjxWZWN0b3I8UmVmPERPTVJlY3Q+Pj4gaW5zcGVjdG9ySGln
aGxpZ2h0UmVjdHMoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBpbnNwZWN0
b3JIaWdobGlnaHRSZWN0cygpOwogICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gaW5zcGVjdG9ySGln
aGxpZ2h0T2JqZWN0KCk7CiAKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gbWFya2VyQ291bnRG
b3JOb2RlKE5vZGUmLCBjb25zdCBTdHJpbmcmKTsKQEAgLTI0Myw4ICsyNDQsOCBAQCBwdWJsaWM6
CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IHdoZWVsRXZlbnRIYW5kbGVyQ291bnQoKTsKICAg
ICBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gdG91Y2hFdmVudEhhbmRsZXJDb3VudCgpOwogCi0gICAg
RXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IHRvdWNoRXZlbnRSZWN0c0ZvckV2ZW50
KGNvbnN0IFN0cmluZyYpOwotICAgIEV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RE9NUmVjdD4+PiBw
YXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVjdHMoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8RE9N
UmVjdExpc3Q+PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChjb25zdCBTdHJpbmcmKTsKKyAgICBF
eGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVyUmVj
dHMoKTsKIAogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxOb2RlTGlzdD4+IG5vZGVzRnJvbVJlY3Qo
RG9jdW1lbnQmLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJp
Z2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcs
IGJvb2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGFsbG93
Q2hpbGRGcmFtZUNvbnRlbnQpIGNvbnN0OwogCkBAIC0yOTgsNyArMjk5LDcgQEAgcHVibGljOgog
ICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gcmVwYWludFJlY3RzQXNUZXh0KCkgY29uc3Q7CiAgICAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdDsKICAg
ICBFeGNlcHRpb25PcjxTdHJpbmc+IG1haW5UaHJlYWRTY3JvbGxpbmdSZWFzb25zKCkgY29uc3Q7
Ci0gICAgRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxET01SZWN0Pj4+IG5vbkZhc3RTY3JvbGxhYmxl
UmVjdHMoKSBjb25zdDsKKyAgICBFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBub25GYXN0
U2Nyb2xsYWJsZVJlY3RzKCkgY29uc3Q7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFbGVt
ZW50VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhFbGVtZW50JiwgYm9vbCB1c2VzRGlzcGxheUxpc3RE
cmF3aW5nKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFbGVtZW50VHJhY2tzRGlzcGxheUxp
c3RSZXBsYXkoRWxlbWVudCYsIGJvb2wgaXNUcmFja2luZ1JlcGxheSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggNWZkODZhYzQ4ZjVhODllZGQzNTcwYmIwMjRkYTNhZDli
YThmMGI1Mi4uMjY4NmIzMWE4YzE4YTI5MjZhYzY2OWMwYzU1NDUyYTQ0NDU2NzBlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUzLDcgKzE1Myw3IEBAIGVudW0gRXZl
bnRUaHJvdHRsaW5nQmVoYXZpb3IgewogCiAgICAgRE9NUmVjdCBib3VuZGluZ0JveChFbGVtZW50
IGVsZW1lbnQpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5jZTxET01SZWN0PiBp
bnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVj
dExpc3QgaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IERPTVN0cmluZyBpbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKIAogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdW5zaWduZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSBub2RlLCBET01T
dHJpbmcgbWFya2VyVHlwZSk7CkBAIC0yMTYsOCArMjE2LDggQEAgZW51bSBFdmVudFRocm90dGxp
bmdCZWhhdmlvciB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIHdoZWVs
RXZlbnRIYW5kbGVyQ291bnQoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxv
bmcgdG91Y2hFdmVudEhhbmRsZXJDb3VudCgpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBz
ZXF1ZW5jZTxET01SZWN0PiB0b3VjaEV2ZW50UmVjdHNGb3JFdmVudChET01TdHJpbmcgZXZlbnRO
YW1lKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNlcXVlbmNlPERPTVJlY3Q+IHBhc3NpdmVU
b3VjaEV2ZW50TGlzdGVuZXJSZWN0cygpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVj
dExpc3QgdG91Y2hFdmVudFJlY3RzRm9yRXZlbnQoRE9NU3RyaW5nIGV2ZW50TmFtZSk7CisgICAg
W01heVRocm93RXhjZXB0aW9uXSBET01SZWN0TGlzdCBwYXNzaXZlVG91Y2hFdmVudExpc3RlbmVy
UmVjdHMoKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gTm9kZUxpc3Q/IG5vZGVzRnJvbVJl
Y3QoRG9jdW1lbnQgZG9jdW1lbnQsIGxvbmcgeCwgbG9uZyB5LAogICAgICAgICB1bnNpZ25lZCBs
b25nIHRvcFBhZGRpbmcsIHVuc2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBsb25n
IGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCkBAIC0yNzQsNyArMjc0
LDcgQEAgZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAKICAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIERPTVN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKTsKICAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIERPTVN0cmluZyBtYWluVGhyZWFkU2Nyb2xsaW5nUmVhc29ucygpOyAvLyBG
SVhNRTogcmVuYW1lIHRvIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpLgotICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NUmVjdD4gbm9uRmFzdFNjcm9sbGFibGVSZWN0cygp
OworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NUmVjdExpc3Qgbm9uRmFzdFNjcm9sbGFibGVS
ZWN0cygpOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVwYWludFJlY3Rz
QXNUZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0TGlzdC5jcHAKaW5kZXggNzM1MjY4MTlmNDM3ZGI4NGI0MjFkNDIwOTJkMTAyNWM1
YjJlYmJhYy4uMzM3MDlmZGVkYjVkZGUwMjg5OTZkMDhiZGNiYTQ1ZDU5NjMyZTgyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5j
cHAKQEAgLTM1LDQzICszNSwzMSBAQAogCiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1Rf
TElTVF9HRVRfUFJJVkFURShvYmopIEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdF
QktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9MSVNULCBXZWJLaXRET01DbGllbnRSZWN0TGlzdFBy
aXZhdGUpCiAKLWNsYXNzIENsaWVudFJlY3RMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpZW50
UmVjdExpc3Q+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVh
dGUoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmIGl0ZW1zKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QoV1RGTW92ZShpdGVtcykp
KTsKLSAgICB9Ci0KLSAgICBjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+
JiBpdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXM7IH0KLQotcHJpdmF0ZToKLSAgICBDbGll
bnRSZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgaXRlbXMpCi0g
ICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0ZW1zKSkKLSAgICB7IH0KLQotICAgIFdURjo6VmVj
dG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4gbV9pdGVtczsKLX07Ci0KIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUgewotICAgIFJlZlB0cjxDbGllbnRSZWN0
TGlzdD4gY29yZU9iamVjdDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNvcmVP
YmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV1RGOjpWZWN0b3I8UmVmPFdl
YkNvcmU6OkRPTVJlY3Q+PiYmIG9iaikKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2Vi
Q29yZTo6RE9NUmVjdExpc3QqIG9iaikKIHsKLSAgICByZXR1cm4gd3JhcENsaWVudFJlY3RMaXN0
KFdURk1vdmUob2JqKSk7CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVChyZXQpOworCisgICAgcmV0dXJu
IHdyYXBET01SZWN0TGlzdChvYmopOwogfQogCi1zdGF0aWMgQ2xpZW50UmVjdExpc3QqIGNvcmUo
V2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCitXZWJDb3JlOjpET01SZWN0TGlzdCog
Y29yZShXZWJLaXRET01DbGllbnRSZWN0TGlzdCogcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gcmVx
dWVzdCA/IHN0YXRpY19jYXN0PENsaWVudFJlY3RMaXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVx
dWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkRPTVJlY3RMaXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCkt
PmNvcmVPYmplY3QpIDogbnVsbHB0cjsKIH0KIAotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdy
YXBDbGllbnRSZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgY29y
ZU9iamVjdCkKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwRE9NUmVjdExpc3QoV2ViQ29y
ZTo6RE9NUmVjdExpc3QqIGNvcmVPYmplY3QpCiB7Ci0gICAgYXV0byBsaXN0ID0gQ2xpZW50UmVj
dExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvcmVPYmplY3QpKTsKLSAgICByZXR1cm4gV0VCS0lUX0RP
TV9DTElFTlRfUkVDVF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JF
Q1RfTElTVCwgImNvcmUtb2JqZWN0IiwgbGlzdC5wdHIoKSwgbnVsbHB0cikpOworICAgIHJldHVy
biBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQ
RV9DTElFTlRfUkVDVF9MSVNULCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApAQCAtMTEyLDcgKzEwMCw4IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmpl
Y3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X3BhcmVu
dF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7CiAKICAgICBXZWJLaXRET01DbGllbnRSZWN0
TGlzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZB
VEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2xpZW50UmVj
dExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBwcml2
LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RE9NUmVjdExpc3QqPihXRUJLSVRf
RE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBXZWJLaXQ6OkRPTU9iamVjdENh
Y2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSwgb2JqZWN0KTsKIH0KIAogc3RhdGljIHZv
aWQgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2NsYXNzX2luaXQoV2ViS2l0RE9NQ2xpZW50
UmVjdExpc3RDbGFzcyogcmVxdWVzdENsYXNzKQpAQCAtMTQ1LDggKzEzNCw4IEBAIFdlYktpdERP
TUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNs
aWVudFJlY3RMaXN0KiBzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1Rf
TElTVChzZWxmKSwgbnVsbHB0cik7Ci0gICAgYXV0byYgbGlzdCA9IFdlYktpdDo6Y29yZShzZWxm
KS0+aXRlbXMoKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdD4gZ29iamVjdFJlc3VsdCA9
IGluZGV4ID49IGxpc3Quc2l6ZSgpID8gbnVsbHB0ciA6IGxpc3RbaW5kZXhdLnB0cigpOworICAg
IGF1dG8qIGxpc3QgPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRP
TVJlY3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihsaXN0LT5pdGVtKGluZGV4KSk7CiAg
ICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCkBAIC0xNTQs
NSArMTQzLDUgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3Ro
KFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2VsZiksIDApOwotICAgIHJldHVybiBXZWJLaXQ6OmNvcmUo
c2VsZiktPml0ZW1zKCkuc2l6ZSgpOworICAgIHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxl
bmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKaW5kZXggZDIxMjJiYTc3MmFkZWZmNzM4MDEwMTA3
ODExYWZhNmVmNTg1MmJkYS4uMTM5MmQ0NTc3NmQxNzQ4YzIxNmQwYmViNDBkZDQ0ZmZjYzY3M2Q5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNs
aWVudFJlY3RMaXN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVJl
Y3RMaXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUNsaWVudFJlY3RMaXN0Lmg+
Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLVdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV1RGOjpWZWN0b3I8UmVmPFdlYkNv
cmU6OkRPTVJlY3Q+PiYmKTsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV1RGOjpWZWN0
b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmKTsKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3
cmFwRE9NUmVjdExpc3QoV2ViQ29yZTo6RE9NUmVjdExpc3QqKTsKK1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdExpc3QqKTsKK1dlYkNvcmU6OkRPTVJlY3RMaXN0
KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3RMaXN0Kik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCmluZGV4IGI1
Njc1YTBiNDRmYmQ1Y2VmYjFiYTYwNGQ2YzM1YzhmMDIyZDNkOTYuLjE1ZjYyZDBiNmFlMjhmNmMx
YmY5NmI4MWVmNGM3YzNhN2M4ZjMwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FbGVtZW50LmNwcApAQCAtMTIzOSw3ICsxMjM5LDcgQEAgV2ViS2l0RE9NQ2xpZW50
UmVjdExpc3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVs
ZW1lbnQqIHMKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxscHRy
KTsKICAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAg
IHJldHVybiBXZWJLaXQ6OmtpdChpdGVtLT5nZXRDbGllbnRSZWN0cygpKTsKKyAgICByZXR1cm4g
V2ViS2l0OjpraXQoaXRlbS0+Z2V0Q2xpZW50UmVjdHMoKS5wdHIoKSk7CiB9CiAKIFdlYktpdERP
TUVsZW1lbnQqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X3BhcmVudChXZWJLaXRET01F
bGVtZW50KiBzZWxmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3ZDFkYmJkZjJiYjNlM2JlNzE0NzUzOWQ2YmNlZDMyYzBh
ZjJhMmMuLjcyNjQ0ZjZiMWNkMGE2NTQ5MjU4MDdkNWYzNzRmY2FlNGMxY2E1Y2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxNy0wNS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjIxNTk0Nik6IENhbid0IHJlZmVyZW5jZSBhIHRhYmxl
IGNlbGwgaW4gR29vZ2xlIHNwcmVhZHNoZWV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNDU4
MDg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSBleGlzdGluZyB0ZXN0cyB0byByZWZsZWN0IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5
cGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3Qt
Z2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL1JhbmdlL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1nZXRDbGllbnRSZWN0cy1yZXR1cm4tdHlw
ZS5odG1sOgorCiAyMDE3LTA1LTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2luXSBmYXN0L3NoYWRvdy1kb20vZnVsbHNjcmVlbi1pbi1zbG90LWZ1
bGxzY3JlZW5FbGVtZW50Lmh0bWwgaXMgZmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9FbGVtZW50L2dldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUt
ZXhwZWN0ZWQudHh0CmluZGV4IGVlZjIxMGNhOTZiYmI0MDU1MDgzZTNhMzliMzViM2ZlOTk0OWFh
YjcuLmRhYjMzODNjY2JjYTJiZmFjMTJmYTc5MTgxYzM1NTY4ZDNkZDhmNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50
UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACi1UZXN0cyB0
aGF0IEVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSByZXR1cm5zIGFuIGFycmF5IG9mIERPTVJlY3Qg
b2JqZWN0cy4KK1Rlc3RzIHRoYXQgRWxlbWVudC5nZXRDbGllbnRSZWN0cygpIHJldHVybnMgYSBs
aXN0IG9mIERPTVJlY3Qgb2JqZWN0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
LVBBU1MgcmVjdHMuX19wcm90b19fIGlzIEFycmF5LnByb3RvdHlwZQogUEFTUyByZWN0cy5sZW5n
dGggaXMgMQogUEFTUyByZWN0c1swXS5fX3Byb3RvX18gaXMgRE9NUmVjdC5wcm90b3R5cGUKK1BB
U1MgcmVjdHNbMF0gaXMgcmVjdHMuaXRlbSgwKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bGVtZW50L2dldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9FbGVtZW50L2dldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwKaW5kZXggNTk5ZTUz
ZDMwYjU1ZmM3NTZmMzVhZWVmZjkyYjg1YTBiY2ZiNTBjNC4uNmEwMTk1ODQwZTE0NjZlZmZiM2M1
MzdiM2U1YzQzNDNkOTIyNzc4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxl
bWVudC9nZXRDbGllbnRSZWN0cy1yZXR1cm4tdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0VsZW1lbnQvZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUuaHRtbApAQCAtMywxMiAr
MywxMiBAQAogPGJvZHk+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBFbGVt
ZW50LmdldENsaWVudFJlY3RzKCkgcmV0dXJucyBhbiBhcnJheSBvZiBET01SZWN0IG9iamVjdHMu
Iik7CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBFbGVtZW50LmdldENsaWVudFJlY3RzKCkgcmV0
dXJucyBhIGxpc3Qgb2YgRE9NUmVjdCBvYmplY3RzLiIpOwogCiBjb25zdCByZWN0cyA9IGRvY3Vt
ZW50LmJvZHkuZ2V0Q2xpZW50UmVjdHMoKTsKLXNob3VsZEJlKCJyZWN0cy5fX3Byb3RvX18iLCAi
QXJyYXkucHJvdG90eXBlIik7CiBzaG91bGRCZSgicmVjdHMubGVuZ3RoIiwgIjEiKTsKIHNob3Vs
ZEJlKCJyZWN0c1swXS5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90b3R5cGUiKTsKK3Nob3VsZEJl
KCJyZWN0c1swXSIsICJyZWN0cy5pdGVtKDApIik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJl
Y3QtZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVy
bi10eXBlLWV4cGVjdGVkLnR4dAppbmRleCAwMzIxZjNhNTA3ZWZjMTAxMjMwMDEzOWVlMzAzY2Mx
Y2MyMTk2NWJmLi5mZjFhZWMzNjUyMzYxYzdhYzBlMWI3OGYxZTE5MzlkZmE1Y2E5YTFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3Qt
Z2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1JhbmdlL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1nZXRDbGllbnRSZWN0cy1yZXR1
cm4tdHlwZS1leHBlY3RlZC50eHQKQEAgLTQsOCArNCw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIAogUEFTUyByZWN0Ll9fcHJvdG9fXyBpcyBET01SZWN0LnByb3RvdHlwZQotUEFTUyBy
ZWN0cy5fX3Byb3RvX18gaXMgQXJyYXkucHJvdG90eXBlCiBQQVNTIHJlY3RzLmxlbmd0aCA+IDAg
aXMgdHJ1ZQorUEFTUyByZWN0c1swXSBpcyByZWN0cy5pdGVtKDApCiBQQVNTIHJlY3RzWzBdLl9f
cHJvdG9fXyBpcyBET01SZWN0LnByb3RvdHlwZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGlu
Z0NsaWVudFJlY3QtZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1JhbmdlL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1nZXRDbGllbnRSZWN0cy1yZXR1
cm4tdHlwZS5odG1sCmluZGV4IGMxNzIwYTY4NDU3MzE5YWY0M2EwZmYzNmZhODUzMDc2ZmJjZDBh
NzguLmViYjk3MTY0NGNkYmM1MGVmYTM5NDY0ZTNiMjg5ZDA1YjhjYTA2ZjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1nZXRDbGll
bnRSZWN0cy1yZXR1cm4tdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jhbmdl
L2dldEJvdW5kaW5nQ2xpZW50UmVjdC1nZXRDbGllbnRSZWN0cy1yZXR1cm4tdHlwZS5odG1sCkBA
IC0xNCw4ICsxNCw4IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIHNob3VsZEJlKCJyZWN0
Ll9fcHJvdG9fXyIsICJET01SZWN0LnByb3RvdHlwZSIpOwogCiAgICAgcmVjdHMgPSByYW5nZS5n
ZXRDbGllbnRSZWN0cygpOwotICAgIHNob3VsZEJlKCJyZWN0cy5fX3Byb3RvX18iLCAiQXJyYXku
cHJvdG90eXBlIik7CiAgICAgc2hvdWxkQmVUcnVlKCJyZWN0cy5sZW5ndGggPiAwIik7CisgICAg
c2hvdWxkQmUoInJlY3RzWzBdIiwgInJlY3RzLml0ZW0oMCkiKTsKICAgICBzaG91bGRCZSgicmVj
dHNbMF0uX19wcm90b19fIiwgIkRPTVJlY3QucHJvdG90eXBlIik7CiAKICAgICBmaW5pc2hKU1Rl
c3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>