<?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>144543</bug_id>
          
          <creation_ts>2015-05-03 06:12:15 -0700</creation_ts>
          <short_desc>Purge PassRefPtr in WebCore/html</short_desc>
          <delta_ts>2015-05-03 18:22:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091208</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-03 06:12:15 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091209</commentid>
    <comment_count>1</comment_count>
      <attachid>252266</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-03 06:13:35 -0700</bug_when>
    <thetext>Created attachment 252266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091305</commentid>
    <comment_count>2</comment_count>
      <attachid>252266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-03 18:22:07 -0700</bug_when>
    <thetext>Comment on attachment 252266
Patch

Clearing flags on attachment: 252266

Committed r183735: &lt;http://trac.webkit.org/changeset/183735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091306</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-03 18:22:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252266</attachid>
            <date>2015-05-03 06:13:35 -0700</date>
            <delta_ts>2015-05-03 18:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144543-20150503221222.patch</filename>
            <type>text/plain</type>
            <size>66571</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMyNTcwOTJhMmE5NmQ2
MjI5ZWZmY2Y3MjI3ZDQwZGE2MTkyMTZhNy4uMDhmZTJmMmYxNjE1MGQxMGU0OTZlYTQ5NmM1MzRl
Y2NiYjRjYzEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxNS0wNS0wMyAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NDU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBQYXNzUmVmUHRyIGluIGNyZWF0ZSgpIGZhY3RvcnkgZnVu
Y3Rpb25zIHdpdGggUmVmLiBJbiBzb21lIGZ1bmN0aW9ucywKKyAgICAgICAgaXQgcmV0dXJucyBS
ZWZQdHIgd2hlbiBpdCBtaWdodCBoYXZlIGEgY2hhbmNlIHRvIHJldHVybiBudWxscHRyLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIE1v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5U2Vzc2lvbjo6c2VuZEVycm9yKToKKyAgICAgICAgKiBodG1sL0RPTUZvcm1E
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpET01Gb3JtRGF0YTo6Y3JlYXRlKToKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NZWRpYUVycm9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvTWVkaWFL
ZXlFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlFcnJvcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Byb3h5OjpjcmVh
dGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Byb3h5Lmg6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEFjdGl2
ZUluZm86OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmg6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU3luYy5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFVu
aWZvcm1Mb2NhdGlvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50OjptYXli
ZUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJl
d2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1ldGVy
SW5uZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJCYXJFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dy
ZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50OjptYXliZUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjcmVh
dGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlZUVEN1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6VlRUQ3VlOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUUmVn
aW9uLmg6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgICogaHRt
bC90cmFjay9WaWRlb1RyYWNrTGlzdC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllckNyZWF0
ZVJlc291cmNlTG9hZGVyKToKKwogMjAxNS0wNS0wMiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgY3JlYXRlKCkgZmFj
dG9yeSBmdW5jdGlvbnMgaW4gaHRtbCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCA2MzEyYjQ4NzQy
N2Q4MTFmYzNiNjBmZDhkZTJkYTA4OGY5NjQxMjk4Li5kZWIxYzAzODg2MDRiZTg4YjNhMTMyYTBi
ZGQ5MWZkMTExZTg0YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCkBAIC0yMjEsOCArMjIxLDggQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqIG1lc3NhZ2UsIFN0
cmluZyBkZXN0aW5hdGlvblVSTCkKIAogdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihD
RE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSBlcnJvckNvZGUsIHVuc2lnbmVkIGxv
bmcgc3lzdGVtQ29kZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFLZXlFcnJvcj4gZXJyb3IgPSBNZWRp
YUtleUVycm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKS5nZXQoKTsKLSAgICBzZXRF
cnJvcihlcnJvci5nZXQoKSk7CisgICAgUmVmPE1lZGlhS2V5RXJyb3I+IGVycm9yID0gTWVkaWFL
ZXlFcnJvcjo6Y3JlYXRlKGVycm9yQ29kZSwgc3lzdGVtQ29kZSkuZ2V0KCk7CisgICAgc2V0RXJy
b3IoZXJyb3IucHRyKCkpOwogCiAgICAgUmVmUHRyPEV2ZW50PiBrZXllcnJvckV2ZW50ID0gRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0a2V5ZXJyb3JFdmVudCwgZmFsc2UsIGZhbHNl
KTsKICAgICBrZXllcnJvckV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTUZv
cm1EYXRhLmgKaW5kZXggODQyZTYyYjA0ZWIzZDY3OTJkMDQ5YTM4M2U2NDhkMGZhNDkxYjM5NS4u
NjNmOTMxMzI2ODBjYTE4MGI3Nzk3ODdmMmUxOGFjODcyNTUwYjRhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NRm9ybURhdGEuaApAQCAtNDQsOCArNDQsOCBAQCBjbGFzcyBUZXh0RW5jb2Rpbmc7CiAKIGNs
YXNzIERPTUZvcm1EYXRhIDogcHVibGljIEZvcm1EYXRhTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8
RE9NRm9ybURhdGE+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01Gb3JtRGF0
YT4gY3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERP
TUZvcm1EYXRhKGZvcm0pKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZvcm1EYXRhPiBj
cmVhdGUoY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykgeyByZXR1cm4gYWRvcHRSZWYobmV3
IERPTUZvcm1EYXRhKGVuY29kaW5nKSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTUZvcm1EYXRhPiBj
cmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTUZv
cm1EYXRhKGZvcm0pKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NRm9ybURhdGE+IGNyZWF0ZShjb25z
dCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTUZvcm1E
YXRhKGVuY29kaW5nKSk7IH0KIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBuYW1l
LCBCbG9iKiwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSA9IFN0cmluZygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGMwY2JhNDhhYzU0ZjFhZDVlYjljNzVl
ZWMwN2JlNjVlY2JiMGIwYTAuLmQ0M2RlMDJmODY2MzUwODgzYmY1YWYwNmE4YmM1ODM0NzAzY2Rl
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTgxNCw5
ICs1ODE0LDkgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKQogICAgIHJldHVybiAmZG9jdW1lbnQoKS5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlcj4gSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRl
cihzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyQ2xpZW50PiBjbGll
bnQpCitSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXJDbGllbnQ+IGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lZGlhUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnQoKSwgZmFzdEdldEF0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0ciksIFdURjo6bW92ZShjbGllbnQpKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFSZXNvdXJjZUxvYWRlcihkb2N1bWVudCgpLCBmYXN0R2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSwgV1RGOjptb3ZlKGNsaWVudCkp
KTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZFdhaXRGb3JS
ZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGNoYWxsZW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggYmYxMTAxZjBjNDMzMGEwZWUzYmM2NGEyYWRmZjdkYWFhZWMyNWRhOS4uZWVkNDI2NDI0Nzk2
YmU1NTVjNGJmMGVmZWI1Y2VhZjdiYjFjNGU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTU4OCw3ICs1ODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBtZWRpYVBsYXllcklzUGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IG1lZGlhUGxheWVySXNMb29waW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBDYWNo
ZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+
IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlckNsaWVudD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRy
PFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxv
YWRlcihzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyQ2xpZW50Pikg
b3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
dmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VB
ZGFwdGVyKGNvbnN0IE1lZGlhUGxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFFcnJvci5oCmluZGV4IGRiMjJkMDA4MzE2MjNkZjVkZDNiM2FkNzg3ODQzOGNjM2Y4YWZjYmIu
Ljk1NDRlNTVlNjdkNGU0YTc0ZmQxNWM0MmIyMzRiMjdmMGM4Zjg1OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFFcnJvci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH07CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUVycm9yPiBjcmVhdGUoQ29kZSBjb2RlKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgTWVkaWFFcnJvcihjb2RlKSk7IH0KKyAgICBzdGF0aWMgUmVmPE1l
ZGlhRXJyb3I+IGNyZWF0ZShDb2RlIGNvZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFF
cnJvcihjb2RlKSk7IH0KIAogICAgIENvZGUgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhS2V5RXJyb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5oCmluZGV4IDZkYTU4NzI5YWVkYTQxMjVh
YWU0NjE0MGQxMDZmMzViNGQ4NDlkMTMuLjExNWM5NjE0Njc3M2ZlZDhiODU3N2M0YTE4MjYzODI5
NTc0MGZmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5oCkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgQ29kZTsKIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhS2V5RXJyb3I+IGNyZWF0ZShDb2RlIGNvZGUsIHVu
c2lnbmVkIGxvbmcgc3lzdGVtQ29kZSA9IDApIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUtl
eUVycm9yKGNvZGUsIHN5c3RlbUNvZGUpKTsgfQorICAgIHN0YXRpYyBSZWY8TWVkaWFLZXlFcnJv
cj4gY3JlYXRlKENvZGUgY29kZSwgdW5zaWduZWQgbG9uZyBzeXN0ZW1Db2RlID0gMCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleUVycm9yKGNvZGUsIHN5c3RlbUNvZGUpKTsgfQogCiAg
ICAgQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CiAgICAgdW5zaWduZWQgbG9u
ZyBzeXN0ZW1Db2RlKCkgeyByZXR1cm4gbV9zeXN0ZW1Db2RlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaAppbmRleCBhYzA1YWVmZmUxNjg1ODAwNWJhZTBh
MzIzNTMxN2RhMDdjOWVkZjZlLi4xNTdhNGVmMGUzM2I2YjQ3YzljYzc1N2IwY2RlNjcxOTM0NmQ0
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmgKQEAg
LTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1Byb3h5LmNwcAppbmRleCAzMDA2ZWQ2NWUxNjA3ZjFlNDIzYTdmOGU0NzllMzM2
N2Y0NGI3NThmLi5iYWYwYTA4NDZmMTRlNWY4NzA0OTZiZjUzZmQxMWY2ZTFlOWI4MTg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUHJveHkuY3BwCkBAIC0zMiw5ICszMiw5
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxDYW52YXNQcm94eT4gQ2Fu
dmFzUHJveHk6OmNyZWF0ZSgpCitSZWY8Q2FudmFzUHJveHk+IENhbnZhc1Byb3h5OjpjcmVhdGUo
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzUHJveHkoKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ2FudmFzUHJveHkoKSk7CiB9CiAKIENhbnZhc1Byb3h5OjpDYW52YXNQ
cm94eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUHJveHkuaAppbmRleCAyNTkx
ZjBlYjAxNDkzYWRkMzNlZGY0MTc0ZjU0ZDUyY2QyM2M2MzU3Li5jYmM0ZTdmZjQ3MmRjZGM5NDNl
ZTkyNWE0Y2MzNWM5NzgyMjViMzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1Byb3h5LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
YW52YXNQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc1Byb3h5PiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FudmFzUHJveHk+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBS
ZWY8Q2FudmFzUHJveHk+IGNyZWF0ZSgpOwogCiAgICAgdmlydHVhbCB+Q2FudmFzUHJveHkoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaAppbmRleCAw
OTM4YTIzNjZmYzAyMDA3MDMyNjkxMmQ4MzlkZTg1MmZhOWI1ODc1Li4xNDc1OGI5ZDRjMjFlZWQy
MTMxZjY5YTEwMGU0OTcwMzNiZTYzZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEFjdGl2ZUluZm8uaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFdlYkdMQWN0aXZlSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdMQWN0aXZl
SW5mbz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgR0MzRGVudW0gdHlwZSwgR0MzRGludCBzaXplKQor
ICAgIHN0YXRpYyBSZWY8V2ViR0xBY3RpdmVJbmZvPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50IHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkdMQWN0aXZlSW5mbyhuYW1lLCB0eXBlLCBzaXplKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkdMQWN0aXZlSW5mbyhuYW1lLCB0eXBlLCBzaXplKSk7CiAg
ICAgfQogICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgR0Mz
RGVudW0gdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oCmluZGV4IDJkMzg1MmU2
ZWJlNWY0NGRhODFiMmM5MTBhMjJhN2E3MzMxMjRmMTEuLmFjMDBkMDU3YjYwMWE5MmZlZmNhMWEz
ZDdiZmNiYTcyNTZiMDA2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkNhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0Qu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3Vw
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCmluZGV4
IGRlNDE5MjQxYWUyZjYzMDkwMGQwYzFkYTUwZTUwYzU5ZDEzMzdkNTguLjMxMWUyODA2NzNhNTcz
MzFhNTQ5ZTM2NTdiNWUxMjU1NzU2YjRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5oCmluZGV4IGQyOThkMjQ2Yjc2NGFhYjU2MmYwNDgyNDM0ZWExMGExNjg1NmRhNTguLjFk
OGJiYTEwMTY2ZGEzMGI5Y2NmNWY3OTllNDIwZGUyYTk4NWE3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRl
ICJXZWJHTFNoYWRlci5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUXVlcnkuaAppbmRleCBjYTljZDhiYTFmZThkOTEzNjNlMDkwNGVjNTc2MDE1
NDVmY2M5YjNjLi4xMDdhY2U5YzliZWFkNWVlYjVkOWFmMmI3OTY1NzBiZTBkYTc0MjcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCkBAIC0yOCw3ICsyOCw2IEBACiAK
ICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaAppbmRl
eCA1YjNjNmQzYzIyMDFjM2UwYjYzN2I0ZTJiM2I5OTc5OWU4Y2I5YTAzLi44YjY3NzkxZWMyMDhk
ODI5OTI1N2ViZjI2ZjUwY2FmMGMzZmQyNzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUg
IldlYkdMU2hhcmVkT2JqZWN0LmgiCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKaW5kZXggYWI1YzE1MDliZjhlNGNjMTgy
ZTA2ODVjNjZmYjU4MjIxNDAyZmY3YS4uYzI3MTliMjFlYTY5Zjk5OTM3N2YyODFhYWVkZmUwMmYx
YTRjNzAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKQEAg
LTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0LmgiCiAKLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5o
CmluZGV4IDUzOGYzNDEyOWNmYzVkOWViMWFiNmJlZGUyYjcyMTUxNjA2NTY2MmQuLjQ5MzEyMjZh
Njg5NjJkYWRhNjNiOTRhOGI3MTgxOGU5ZjY0NDBlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXIuaApAQCAtMjgsOCArMjgsNiBAQAogCiAjaW5jbHVkZSAiV2ViR0xT
aGFyZWRPYmplY3QuaCIKIAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTaGFkZXIgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFy
ZWRPYmplY3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0LmgKaW5kZXggYjM4ZTcwYTUwZDM3YmVhN2M0YTdjZGE5NjI5
MjdiY2YxNGIyMzU3Yi4uMzcwMjdmMGE2NTY1YmFjMjJlZjU0YTAzYTk0YTBlYjYyNzQyYTJmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjZGVmaW5lIFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0X2gKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFN5bmMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU3luYy5oCmluZGV4
IDc5NmY2ZDhhMDgxZDY0OGEzNTBmM2U2MzdiOWU3ZjhiNTUyYTg5ZGUuLjlkODQxOWM5YWQ4ODcy
MjA1MjRjMjA0MzM5ODdlOTk3MGIxOGEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMU3luYy5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVj
dC5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVGV4dHVyZS5oCmluZGV4IDYyMGIwM2Q0YmUyNzhiMzYxMDJmN2ZhNjU3MjU5ODg3NDcw
MGRkNTYuLjEzMzYyMmQ1MmUxZjI5NDBjZDIxMmFiNzdlOTBmNjkwYmJhMTAxMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAK
ICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2su
aAppbmRleCA1ODMzZjZjY2YwZWZhN2Y1MzZmN2U4OWE0NmU5ZmI5N2RlMWM3YzlhLi5kMjliYjM2
NGZkNjkyNDE3YzM1NmU3OGQ3N2RmNzEwZDE4ZWY4ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0yOCw3ICsyOCw2
IEBACiAKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZv
cm1Mb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9j
YXRpb24uaAppbmRleCBiMTM3ZmI2ZTY3MWEyNzE4OGYzMWFlOGIxMWMzYjExM2FiZTZkNzYxLi5i
ZmUwZjhmYmU3NzRhNmQyOGUyM2YwYTVlZmEwZTE3YWY0ZDE1ZGE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmgKQEAgLTI5LDcgKzI5
LDYgQEAKIAogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgKaW5kZXggMDU0OGQxYzlhODE3NWJjMzczMjQ5MjMyMDQ0ZTliYTI1NmU0
MTQ5ZC4uM2E0ZWYyODExNTcwMzNmYzUyMzczZDI3ZWEwMTBmYjQxNWMzY2M4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaApAQCAtMzAsOCArMzAsNiBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgog
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNS
b290RWxlbWVudC5jcHAKaW5kZXggNjViNWMzMTQ4ZmJhMTVhYjZiMzJlMjdiNGZmOTI0MGU4OWEz
NjA0Ni4uZjE3OGRmYWQ4MjhjYjBjMWVmZTY4N2JiNzFhMzYzMjBmMDNhNDkwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQuY3BwCkBAIC0zMSw5ICszMSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExB
VEZPUk0oTUFDKQotUGFzc1JlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29u
dHJvbHNSb290RWxlbWVudDo6bWF5YmVDcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPElt
YWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50OjptYXliZUNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5oCmluZGV4IGEwYzljZDViYWE1YjkxMmJkNTY1ZWI1ODNiNzU5MWE5MmI0Y2M1MWIuLjE0YzEx
NTc5Yjk0YzczZjI2YzE3YjJjNDYyYTU3NzMzNTU1MzhkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVudC5oCkBAIC0zOCw3
ICszOCw3IEBAIGNsYXNzIEltYWdlQ29udHJvbHNSb290RWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2
RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IG1h
eWJlQ3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQ+IG1heWJlQ3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA1YTY2
ZWZkNDRmNjYyMDM5ZDIwYTZjMGQ0ZDgzZjcwZTVlZGY0NmQwLi5mYmMwMDdhZjQ2N2IwMDMzNmI4
NmIzYWEzOTBkYmVkNDc2YmNkODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC03OSw5ICs3OSw5IEBAIE1lZGlhQ29u
dHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVu
dD4gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50KGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50
KGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzdGFydERy
YWcoY29uc3QgTGF5b3V0UG9pbnQmIGV2ZW50TG9jYXRpb24pCkBAIC0yNjEsOSArMjYxLDkgQEAg
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xv
c3VyZUVsZW1lbnQoRG9jdW1lbnQmIGQKICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlh
Q29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxl
bWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCkBAIC0yNzUsOSArMjc1LDkgQEAgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xv
c3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW4K
ICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJs
YXktZW5jbG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQog
Ci1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNv
bnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3Zl
cmxheUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTI4OCwxMSArMjg4LDExIEBAIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KERvY3VtCiAg
ICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGlu
ZS1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAK
LVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gZWxlbWVudCA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBlbGVt
ZW50ID0gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQo
ZG9jdW1lbnQpKTsKICAgICBlbGVtZW50LT5oaWRlKCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQucmVs
ZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50OwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRpbWVs
aW5lQ29udGFpbmVyRWxlbWVudDo6c2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wgaGlkZGVuKQpA
QCAtMzIzLDExICszMjMsMTEgQEAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWUKICAgICBzZXRQc2V1
ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBlbGVtZW50LT5oaWRl
KCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50Owog
fQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKQEAgLTM2MSwxMSArMzYxLDExIEBAIE1l
ZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudChEb2N1bWVudCYgZG9jCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudD4gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gZWxlbWVudCA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChkb2N1bWVudCkp
OworICAgIFJlZjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gZWxlbWVudCA9IGFk
b3B0UmVmKCpuZXcgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQpKTsK
ICAgICBlbGVtZW50LT5oaWRlKCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOworICAg
IHJldHVybiBlbGVtZW50OwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVt
ZW50Ojp1cGRhdGUoKQpAQCAtNDEwLDE0ICs0MTAsMTQgQEAgTWVkaWFDb250cm9sUGFuZWxNdXRl
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVu
dCYKICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11
dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1Q
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlh
Q29udHJvbHMqIGNvbnRyb2xzKQorUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogewogICAgIEFTU0VSVChjb250cm9s
cyk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoZG9j
dW1lbnQsIGNvbnRyb2xzKSk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVs
ZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwotICAgIHJldHVy
biBidXR0b24ucmVsZWFzZSgpOworICAgIHJldHVybiBidXR0b247CiB9CiAKIHZvaWQgTWVkaWFD
b250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCog
ZXZlbnQpCkBAIC00MzYsMTIgKzQzNiwxMiBAQCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZQogICAg
IHNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlci1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
IH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCitSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgUmVmPE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZigqbmV3
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAg
ICAgYnV0dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgYnV0dG9uLT5zZXRU
eXBlKCJidXR0b24iKTsKLSAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKKyAgICByZXR1cm4g
YnV0dG9uOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NTIsMTIg
KzQ1MiwxMiBAQCBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGxh
eUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHNldFBzZXVkbyhBdG9taWNT
dHJpbmcoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGxh
eUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBNZWRp
YUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsK
LSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0
UmVmKG5ldyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIFJl
ZjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYoKm5ldyBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5z
dXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7
Ci0gICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGJ1dHRvbjsKIH0KIAog
dm9pZCBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCkBAIC00ODYsMTIgKzQ4NiwxMiBAQCBNZWRpYUNvbnRyb2xPdmVybGF5UGxh
eUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChEb2N1
bQogICAgIHNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zl
cmxheS1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
IH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK1JlZjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KGRv
Y3VtZW50KSk7CisgICAgUmVmPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4g
YnV0dG9uID0gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsK
ICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwotICAgIHJldHVybiBidXR0b24ucmVsZWFz
ZSgpOworICAgIHJldHVybiBidXR0b247CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBs
YXlCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTUy
MCwxMiArNTIwLDEyIEBAIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6TWVk
aWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KERvY3VtCiAgICAgc2V0UHNldWRvKEF0
b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0Zvcndh
cmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29u
dHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBSZWY8
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZigq
bmV3IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAg
IGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGJ1dHRvbi0+c2V0VHlw
ZSgiYnV0dG9uIik7Ci0gICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGJ1
dHRvbjsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTM2LDEyICs1
MzYsMTIgQEAgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xT
ZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGQKICAgICBzZXRQc2V1ZG8oQXRvbWljU3Ry
aW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0
b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9u
RWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9u
RWxlbWVudChkb2N1bWVudCkpOworICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVs
ZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290
KCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKLSAgICByZXR1cm4gYnV0dG9uLnJl
bGVhc2UoKTsKKyAgICByZXR1cm4gYnV0dG9uOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkBAIC01NTIsMTIgKzU1MiwxMiBAQCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25F
bGVtZW50OjpNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bQog
ICAgIHNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5k
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0KIAotUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29u
dHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJl
d2luZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgUmVmPE1lZGlhQ29udHJvbFJld2luZEJ1
dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93
Um9vdCgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7Ci0gICAgcmV0dXJuIGJ1dHRv
bi5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGJ1dHRvbjsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAg
LTU3NywxMyArNTc3LDEzIEBAIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlCiAgICAgc2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK1JlZjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gTWVk
aWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFs
dGltZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250
cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24t
PmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRv
biIpOwogICAgIGJ1dHRvbi0+aGlkZSgpOwotICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwor
ICAgIHJldHVybiBidXR0b247CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQpAQCAtNjA5
LDE1ICs2MDksMTUgQEAgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0IKICAgICBzZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVk
aWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKK1JlZjxNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFD
b250cm9scyogY29udHJvbHMpCiB7CiAgICAgQVNTRVJUKGNvbnRyb2xzKTsKIAotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1l
bnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRy
b2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7
CiAgICAgYnV0dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgYnV0dG9uLT5z
ZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKLSAgICByZXR1cm4gYnV0dG9u
LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYnV0dG9uOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQpAQCAt
NjU1LDEyICs2NTUsMTIgQEAgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVt
ZW50OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckUKICAgICBzZXRQc2V1ZG8o
QXRvbWljU3RyaW5nKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250
YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBSZWY8TWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKICAg
ICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoZGlyQXR0ciwgImF1dG8iKTsKICAgICBlbGVtZW50LT5o
aWRlKCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50
OwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02NzcsMTEgKzY3Nywx
MSBAQCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RQogICAgIHNldFBzZXVkbyhBdG9taWNTdHJpbmco
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFD
b250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlh
Q29udHJvbHMqIGNvbnRyb2xzKQorUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKIHsKICAg
ICBBU1NFUlQoY29udHJvbHMpOwotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOwotICAgIHJl
dHVybiBlbGVtZW50LnJlbGVhc2UoKTsKKyAgICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CisgICAg
cmV0dXJuIGVsZW1lbnQ7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTgzNywx
NSArODM3LDE1IEBAIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6TWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgTWVkCiAgICAgc2V0UHNldWRvKEF0b21p
Y1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
bGluZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCitSZWY8TWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogewogICAgIEFTU0VSVChjb250
cm9scyk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGlu
ZSA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoZG9jdW1lbnQsIGNv
bnRyb2xzKSk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUg
PSBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChkb2N1bWVudCwgY29u
dHJvbHMpKTsKICAgICB0aW1lbGluZS0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAg
IHRpbWVsaW5lLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHRpbWVsaW5lLT5zZXRBdHRyaWJ1dGUo
cHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7Ci0gICAgcmV0dXJuIHRpbWVsaW5lLnJlbGVhc2UoKTsK
KyAgICByZXR1cm4gdGltZWxpbmU7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sVGltZWxpbmVFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTkwNSwxNCArOTA1LDE0
IEBAIE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sUGFu
ZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygi
LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9s
dW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVt
ZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbFZv
bHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxW
b2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbFBh
bmVsVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHNsaWRlci0+ZW5zdXJlVXNl
ckFnZW50U2hhZG93Um9vdCgpOwogICAgIHNsaWRlci0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICBz
bGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAiZmxvYXQiKTsKICAgICBzbGlkZXIt
PnNldEF0dHJpYnV0ZShtYXhBdHRyLCAiMSIpOwotICAgIHJldHVybiBzbGlkZXIucmVsZWFzZSgp
OworICAgIHJldHVybiBzbGlkZXI7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KQEAgLTkyMywxNCArOTIzLDE0IEBAIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlCiAgICAgc2V0
UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZv
bHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAK
LVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCkpOworICAgIFJlZjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHNs
aWRlci0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIHNsaWRlci0+c2V0VHlwZSgi
cmFuZ2UiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAiZmxvYXQi
KTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShtYXhBdHRyLCAiMSIpOwotICAgIHJldHVybiBz
bGlkZXIucmVsZWFzZSgpOworICAgIHJldHVybiBzbGlkZXI7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk0MSwxMyArOTQxLDEzIEBAIE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChE
b2N1bWVuCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gYnV0dG9u
ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KGRvY3Vt
ZW50KSk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgYnV0dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAg
YnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKLSAgICByZXR1
cm4gYnV0dG9uLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYnV0dG9uOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKQEAgLTk4NSwxMiArOTg1LDEyIEBAIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNaW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0CiAg
ICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2Ny
ZWVuLXZvbHVtZS1taW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWluQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1p
bkJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwotICAgIHJldHVybiBi
dXR0b24ucmVsZWFzZSgpOworICAgIHJldHVybiBidXR0b247CiB9CiAKIHZvaWQgTWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQpAQCAtMTAxMSwxMiArMTAxMSwxMiBAQCBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1h
eEJ1dAogICAgIHNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZnVsbHNjcmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
YXhCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gYnV0dG9uID0g
YWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50
KGRvY3VtZW50KSk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0
b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZigqbmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVNYXhCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5lbnN1cmVVc2Vy
QWdlbnRTaGFkb3dSb290KCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKLSAgICBy
ZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYnV0dG9uOwogfQogCiB2b2lkIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTEwMzcsOSArMTAzNyw5IEBAIE1lZGlhQ29udHJvbFRp
bWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50CiAgICAgc2V0UHNldWRvKGdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudFNoYWRvd1BzZXVkb0lkKCkpOwogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIGdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVk
b0lkKCkKQEAgLTEwNTYsOSArMTA1Niw5IEBAIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ6Ok1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQoRG9jCiAgICAg
c2V0UHNldWRvKGdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnRTaGFkb3dQ
c2V1ZG9JZCgpKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3Bs
YXlFbGVtZW50PiBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xD
dXJyZW50VGltZURpc3BsYXlFbGVtZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChkb2N1bWVudCkpOwog
fQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xDdXJyZW50VGlt
ZURpc3BsYXlFbGVtZW50U2hhZG93UHNldWRvSWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggYWRkMDZlMmE2ODM2NjE5NjI1
YzZiOTMwYmRlNDU5NzRmYjc2MTU3OC4uODZkOTcwMjkwNTMwN2M2MjIyZjk4MjczYWJmZmQ4YjFm
YzIxMmU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbERp
dkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRDYW5CZURy
YWdnZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRJc0Rpc3BsYXllZChib29sKTsKQEAgLTgzLDcgKzgz
LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
IGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlh
Q29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCYpOwpAQCAtOTMsNyArOTMsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVk
aWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTEwMyw3ICsx
MDMsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5l
Q29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNldFRpbWVE
aXNwbGF5c0hpZGRlbihib29sKTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAKIGNs
YXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdmly
dHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZU1vdmVFdmVudHMoKSBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250
cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVz
RGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdm9p
ZCB1cGRhdGUoKTsKIApAQCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29u
dHJvbHMqKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZU1vdmVFdmVudHMoKSBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0xNjgsNyArMTY4LDcgQEAgcHJpdmF0ZToKIAogY2xh
c3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYp
OwpAQCAtMTc5LDcgKzE3OSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBsYXlC
dXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CkBAIC0xOTcsNyArMTk3LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVk
aWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxheVR5cGUoKSBvdmVycmlk
ZTsKIApAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xTZWVrQnV0
dG9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMg
UmVmPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50KERvY3VtZW50Jik7CkBAIC0yMjMsNyArMjIzLDcgQEAgcHJpdmF0ZToKIAogY2xh
c3MgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlh
Q29udHJvbFNlZWtCdXR0b25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBjcmVhdGUo
RG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFj
a0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIzNSw3ICsyMzUsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1l
ZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25k
VG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjUxLDcg
KzI1MSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0yNjcsNyArMjY3LDcg
QEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25FbGVtZW50IGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CisgICAg
c3RhdGljIFJlZjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjg5LDcgKzI4OSw3IEBAIHByaXZhdGU6CiAKIGNsYXNz
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWlu
ZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAg
dmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtMzAzLDcgKzMwMyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNZWRp
YUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYs
IE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zVHJhY2tMaXN0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgTWVkaWFDb250cm9scyopOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0zMzEsNyArMzMxLDcg
QEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50IGZpbmFsIDog
cHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBN
ZWRpYUNvbnRyb2xzKik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3Zl
cnJpZGU7CkBAIC0zNTIsNyArMzUyLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9s
RnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAK
ICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTM3MCw3ICszNzAsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbFBhbmVs
Vm9sdW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Jik7
CkBAIC0zNzksNyArMzc5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZVNsaWRlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Jik7CkBAIC0zODksNyArMzg5LDcg
QEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTQwNCw3ICs0MDQs
NyBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
YXhCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9N
b3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNDIxLDcgKzQy
MSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZWRpYUNv
bnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudChEb2N1bWVudCYpOwpAQCAtNDMxLDcgKzQzMSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFD
b250cm9sVGltZURpc3BsYXlFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmgKaW5kZXggZDJkYTYyNzcwOTBkZTA5
OWVlMDRlMmQ1NzZmYjcyOGJmY2VkMzJjYy4uMmY4NDc1OWVjOTUzMzg1NjhiNmQ4MGJiZWQ4MjMy
NjU2MmZiMTM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0FwcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sc0FwcGxlLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgTWVkaWFDb250cm9sc0FwcGxlOwog
CiBjbGFzcyBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlz
dGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBs
ZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShNZWRpYUNvbnRyb2xzQXBwbGUqIG1lZGlhQ29udHJvbHMp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyKG1l
ZGlhQ29udHJvbHMpKTsgfQorICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sc0FwcGxlRXZlbnRM
aXN0ZW5lcj4gY3JlYXRlKE1lZGlhQ29udHJvbHNBcHBsZSogbWVkaWFDb250cm9scykgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyKG1lZGlhQ29u
dHJvbHMpKTsgfQogICAgIHN0YXRpYyBjb25zdCBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3Rl
bmVyKiBjYXN0KGNvbnN0IEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGxpc3RlbmVyLT50eXBlKCkgPT0gTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5l
clR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50
LmgKaW5kZXggM2YxNTFkYTU1MDdiY2FhZTY3ODk5MGY4OTRhMzc0MDQ5OGE4NmU0Zi4uNGY5YjMw
NGQ3MDJiNjUzZWViNzhjZGI3Y2Q1OGIzYWI2Zjc5ODI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJp
dmF0ZToKIAogY2xhc3MgTWV0ZXJJbm5lckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWV0ZXJTaGFk
b3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRlcklubmVyRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZXRlcklubmVyRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgTWV0ZXJJbm5lckVsZW1lbnQo
RG9jdW1lbnQmKTsKQEAgLTYyLDE0ICs2MiwxNCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAotaW5saW5l
IFBhc3NSZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQoraW5saW5lIFJlZjxNZXRlcklubmVyRWxlbWVudD4gTWV0ZXJJ
bm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNZXRlcklubmVyRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1ldGVySW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIGNsYXNzIE1ldGVy
QmFyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNZXRlclNoYWRvd0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxNZXRlckJhckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBw
cml2YXRlOgogICAgIE1ldGVyQmFyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC04MCwx
NCArODAsMTQgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxNZXRl
ckJhckVsZW1lbnQ+IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K2lubGluZSBSZWY8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRlckJhckVsZW1l
bnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXRlckJhckVsZW1lbnQo
ZG9jdW1lbnQpKTsKIH0KIAogY2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
TWV0ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRl
clZhbHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNZXRlclZh
bHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAgICAgdm9pZCBzZXRXaWR0aFBlcmNlbnRh
Z2UoZG91YmxlKTsKICAgICB2b2lkIHVwZGF0ZVBzZXVkbygpIHsgc2V0UHNldWRvKHZhbHVlUHNl
dWRvSWQoKSk7IH0KIApAQCAtMTAxLDkgKzEwMSw5IEBAIHByaXZhdGU6CiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZVBzZXVkb0lkKCkgY29uc3Q7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0
cjxNZXRlclZhbHVlRWxlbWVudD4gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCitpbmxpbmUgUmVmPE1ldGVyVmFsdWVFbGVtZW50PiBNZXRlclZhbHVlRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1ldGVyVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWV0ZXJWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAppbmRleCBkZGEzZDdmMTZk
YWY5YzEyODUxNWJkMmE2NTVkNDA4YWQ4ODFlYWEyLi45N2Y4MjRmZGZlNWQ5Y2YxZWQ3NmZjZmVk
M2UxZGZhN2ZmNjYwYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogCiBjbGFz
cyBQcm9ncmVzc0lubmVyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBQcm9ncmVzc1NoYWRvd0VsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzSW5uZXJFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBQcm9ncmVzc0lubmVyRWxlbWVu
dChEb2N1bWVudCYpOwpAQCAtNjEsNDAgKzYxLDQwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIH07CiAK
LWlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzSW5uZXJFbGVtZW50PiBQcm9ncmVzc0lubmVyRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK2lubGluZSBSZWY8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewotICAgIFJlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYo
bmV3IFByb2dyZXNzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgUmVmPFByb2dyZXNzSW5u
ZXJFbGVtZW50PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzSW5uZXJFbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXBy
b2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogY2xhc3MgUHJvZ3Jlc3NCYXJFbGVtZW50IGZp
bmFsIDogcHVibGljIFByb2dyZXNzU2hhZG93RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFByb2dyZXNzQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZh
dGU6CiAgICAgUHJvZ3Jlc3NCYXJFbGVtZW50KERvY3VtZW50Jik7CiB9OwogCi1pbmxpbmUgUGFz
c1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK2lubGluZSBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVz
c0JhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFBy
b2dyZXNzQmFyRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYobmV3IFByb2dyZXNzQmFyRWxlbWVu
dChkb2N1bWVudCkpOworICAgIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgUHJvZ3Jlc3NCYXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBjbGFzcyBQ
cm9ncmVzc1ZhbHVlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBQcm9ncmVzc1NoYWRvd0VsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFByb2dyZXNzVmFsdWVFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKICAgICB2b2lkIHNldFdpZHRoUGVyY2VudGFnZShkb3VibGUpOwog
CiBwcml2YXRlOgogICAgIFByb2dyZXNzVmFsdWVFbGVtZW50KERvY3VtZW50Jik7CiB9OwogCi1p
bmxpbmUgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gUHJvZ3Jlc3NWYWx1ZUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitpbmxpbmUgUmVmPFByb2dyZXNzVmFsdWVF
bGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICBSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKG5l
dyBQcm9ncmVzc1ZhbHVlRWxlbWVudChkb2N1bWVudCkpOworICAgIFJlZjxQcm9ncmVzc1ZhbHVl
RWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc1ZhbHVlRWxlbWVudChkb2N1
bWVudCkpOwogICAgIHJlc3VsdC0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1wcm9n
cmVzcy12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCBiNmVlY2Nj
MGI0MWVjMGJmNDk0NGY4ZmZmNTI1ZmI4YTEyOThiM2UzLi5hNDRhNWRlMDY5MmExNmIzYjQ5ZGI4
NzQxMTk1YmFhYWRlN2Y1OTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAtODAs
MTIgKzgwLDEyIEBAIHZvaWQgUmVuZGVySW1hZ2VDb250cm9sczo6Y29tcHV0ZUxvZ2ljYWxIZWln
aHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVCiAgICAgY29tcHV0ZWRWYWx1ZXMu
bV9leHRlbnQgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5sb2dpY2FsSGVpZ2h0
KCk7CiB9CiAKLVBhc3NSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZlB0cjxJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudDo6bWF5YmVD
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYyhkb2N1bWVudCkpOworICAgIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+
IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9j
dW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRy
LCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAogICAgIGNvbnRyb2xzLT5hcHBlbmRDaGls
ZChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKaW5kZXggMmIy
ZTJjYzJjNmRjYzczMDNmZWNhNDVmZGIzZDRhNmM2ZDI4MDIyOC4uZjgzNzIyOTY2NzRjNzQyZDk0
MDU5ZTVlYjg4ODg3MTI5MWNkMGIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dFRyYWNrQ3Vl
TGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+
IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBjcmVhdGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tDdWVMaXN0KTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7CiAgICAgfQogCiAgICAg
flRleHRUcmFja0N1ZUxpc3QoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApp
bmRleCA1YjM1OTJkMTZkNDRjMTE0NTRhMWIzOWI0NjRjYTFjNTZkMzNlYmU2Li4zNGEyZWU3OTZh
ODg4MDA2OTAzMjg4M2MzMWViOGZmMTVlNzQ3YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRDdWUuY3BwCkBAIC0yNDcsOSArMjQ3LDkgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWU6
OmN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKQogICAgIHJldHVybiBjdWVCYWNrZHJvcFNoYWRv
d1BzZXVkb0lkOwogfQogCi1QYXNzUmVmUHRyPFZUVEN1ZT4gVlRUQ3VlOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgV2ViVlRUQ3VlRGF0YSYgZGF0YSkKK1Jl
ZjxWVFRDdWU+IFZUVEN1ZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFdlYlZUVEN1ZURhdGEmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBW
VFRDdWUoY29udGV4dCwgZGF0YSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVEN1ZShj
b250ZXh0LCBkYXRhKSk7CiB9CiAKIFZUVEN1ZTo6VlRUQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVEN1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaAppbmRl
eCBlNTBkYzcxOWRkMjM5NzY4OTI5NTZmOGI4MjkzNzJhYjVhZjA2ODRiLi5lMzI0M2VhNzA5NjA0
ZDJlMGI2NjNkZDgyZDA3NjY0N2QwN2M1ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmgKQEAgLTc0LDE3ICs3NCwxNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIFZUVEN1ZSA6IHB1Ymxp
YyBUZXh0VHJhY2tDdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZUVEN1ZT4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGRvdWJsZSBzdGFydCwgZG91
YmxlIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50KQorICAgIHN0YXRpYyBSZWY8VlRUQ3VlPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3Vi
bGUgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCiAgICAgewogICAgICAgICByZXR1cm4gY3Jl
YXRlKGNvbnRleHQsIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShzdGFydCksIE1lZGlhVGlt
ZTo6Y3JlYXRlV2l0aERvdWJsZShlbmQpLCBjb250ZW50KTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxWVFRDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3QgU3Ry
aW5nJiBjb250ZW50KQorICAgIHN0YXRpYyBSZWY8VlRUQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgVlRUQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGNvbnRlbnQpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlRUQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGNvbnRl
bnQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWVFRDdWU+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgV2ViVlRUQ3VlRGF0YSYpOworICAgIHN0YXRpYyBS
ZWY8VlRUQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFdlYlZUVEN1
ZURhdGEmKTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGN1ZUJhY2tkcm9wU2hh
ZG93UHNldWRvSWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXgg
ZWE1OGI4NDJhZmQ0MGVjZDg1NzQxNTQ0ZTMzNGQyMzlkMjEzODEwOS4uNGZhNTk4YmE2OTdmYWVk
YTRiYmRlYTFjNWMyMTA2ZTE5NGNkNzdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5oCkBAIC00OCw5ICs0OCw5IEBAIGNsYXNzIFZUVFNjYW5uZXI7CiAKIGNsYXNzIFZUVFJl
Z2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFZUVFJlZ2lvbj4sIHB1YmxpYyBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VlRU
UmVnaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICBzdGF0
aWMgUmVmPFZUVFJlZ2lvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZUVFJlZ2lvbihjb250ZXh0KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbihjb250ZXh0KSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB+VlRUUmVnaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5oCmluZGV4IDgwYzIxYzYxMDM3MmIwNjY3Yjg4NmU5MmJmYjBjNDJkM2M0YjRjZjku
LjE2NzJkYWZmNzlhM2FmYzA0MjA5YzExODAwNjhjNzZlODEyYTA4NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIAogY2xh
c3MgVmlkZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBWaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VmlkZW9UcmFj
az4gY3JlYXRlKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNr
UHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFjaz4gY3JlYXRl
KFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1Ry
YWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFZpZGVvVHJhY2soY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKICAgICB9CiAgICAgdmlydHVhbCB+
VmlkZW9UcmFjaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0
LmgKaW5kZXggYzdiMjdjMTczZDVhN2VmZjk2MjAxODBlOTI2YmQwODEyNzM2OGJiZS4uNGQxZDY3
ZTc0ZGEwYjlkNzNhNzE4NTdhMTg2OWVkOGI5ZTdhNDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBWaWRlb1Ry
YWNrOwogCiBjbGFzcyBWaWRlb1RyYWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xpc3RCYXNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWaWRlb1RyYWNrTGlzdD4gY3JlYXRl
KEhUTUxNZWRpYUVsZW1lbnQqIG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50
KiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVmlkZW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQp
KTsKICAgICB9CiAgICAgdmlydHVhbCB+VmlkZW9UcmFja0xpc3QoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKaW5kZXggNDg1YWNiYmRmNzA0NTEzODJi
ODU3OGYzZTNhYWU5NjU3NGJhN2NmYS4uNGEyZjMxYjNlNTYzNGYzMTAyZmY1NGViZjBmYTBkOTY2
YTk1N2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3Bw
CkBAIC03NSw5ICs3NSw5IEBAIFdlYlZUVEVsZW1lbnQ6OldlYlZUVEVsZW1lbnQoV2ViVlRUTm9k
ZVR5cGUgbm9kZVR5cGUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxX
ZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2ViVlRUTm9kZVR5cGUgbm9kZVR5
cGUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxXZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50
OjpjcmVhdGUoV2ViVlRUTm9kZVR5cGUgbm9kZVR5cGUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZUVEVsZW1lbnQobm9kZVR5cGUsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVlRURWxlbWVudChub2RlVHlwZSwgZG9j
dW1lbnQpKTsKIH0KIAogUmVmUHRyPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCBiNzIxOWJjMTY4
NjNmNmIxY2Q1YWE3NzkyZjZlYzNlODE2ZDM3ZDc3Li4xYmU3NjM2YzM2NjNkODU4YmQ3NjM2YWVj
Y2MxOWI3MDZkZmM2YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1l
bnQuaApAQCAtNDYsNyArNDYsNyBAQCBlbnVtIFdlYlZUVE5vZGVUeXBlIHsKIAogY2xhc3MgV2Vi
VlRURWxlbWVudCBmaW5hbCA6IHB1YmxpYyBFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJWVFRFbGVtZW50PiBjcmVhdGUoY29uc3QgV2ViVlRUTm9kZVR5cGUsIERv
Y3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxXZWJWVFRFbGVtZW50PiBjcmVhdGUoY29uc3QgV2Vi
VlRUTm9kZVR5cGUsIERvY3VtZW50Jik7CiAgICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3Jl
YXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFJlZlB0
cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3Vt
ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaApp
bmRleCBjMzQ3YWUwZWVhZjQ5OTZkMzkxYmM3ODUwZjhlMDA5NjY2ODVjNDRmLi5jZmFmMDE4M2Ey
NzMzNjEzNTMxN2UwNWRkNDc0NDFjY2FiMmNjYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogY2xhc3MgV2ViVlRU
Q3VlRGF0YSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZUVEN1ZURhdGE+IHsKIHB1Ymxp
YzoKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZUVEN1ZURhdGE+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJWVFRDdWVEYXRhKCkpOyB9CisgICAgc3RhdGljIFJlZjxXZWJW
VFRDdWVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZUVEN1ZURhdGEo
KSk7IH0KICAgICB+V2ViVlRUQ3VlRGF0YSgpIHsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5ZDQxZGJjNGQxZmJkYzE3ZGM5ZmJi
MTdjNWVmZWYyZjI4NTIyZDM4Li5jMjAyNDFjNTNmMTBhZGFiMzYxNzA1YWZjNDgwMzY3OWZmYzU4
MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKQEAgLTI0NCw3ICsyNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxh
eWVySXNQYXVzZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIG1l
ZGlhUGxheWVySXNMb29waW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkg
eyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlckNsaWVudD4pIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxh
eWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlckNsaWVudD4pIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wg
ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiwgQXRvbWljU3RyaW5nKiA9IDAp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>