<?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>122118</bug_id>
          
          <creation_ts>2013-09-30 12:46:41 -0700</creation_ts>
          <short_desc>Remove IDBTracing.h</short_desc>
          <delta_ts>2013-09-30 13:31:12 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>934754</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-09-30 12:46:41 -0700</bug_when>
    <thetext>Remove IDBTracing.h

All it does is specify a shorthand for LOG(StorageAPI, &lt;msg&gt;), and we don&apos;t need to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934759</commentid>
    <comment_count>1</comment_count>
      <attachid>213027</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-09-30 12:50:42 -0700</bug_when>
    <thetext>Created attachment 213027
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934797</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-09-30 13:31:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156676</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213027</attachid>
            <date>2013-09-30 12:50:42 -0700</date>
            <delta_ts>2013-09-30 12:51:40 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>74645</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZjY4YzA0Li45NjgyYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTMtMDktMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBJREJUcmFjaW5nLmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjIxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHbG9iYWwgcmVwbGFjZSBvZiAiSURCX1RSQUNFIiB3aXRoICJMT0co
U3RvcmFnZUFQSSkiLCBhbmQgcmVtb3ZlIGFsbCBub3Rpb25zIG9mIHRoaXMgaGVhZGVyLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhY2luZy5o
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxl
dmVsREIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29y
QmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHA6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisKIDIwMTMt
MDktMzAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBGb250VHJhbnNjb2RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjcxYTU2
MC4uZGFkNzU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTM5LDcgKzE5
MzksNiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFjaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERCLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBmYWMwZDMzLi4zOTczNmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAg
LTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJPYmplY3RT
dG9yZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKLSNpbmNsdWRlICJJREJUcmFjaW5nLmgi
CiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTk0LDI1ICs5NCwyNSBAQCBJREJDdXJzb3I6On5J
REJDdXJzb3IoKQogCiBjb25zdCBTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uKCkgY29uc3QK
IHsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6ZGlyZWN0aW9uIik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJDdXJzb3I6OmRpcmVjdGlvbiIpOwogICAgIHJldHVybiBkaXJlY3Rpb25Ub1N0
cmluZyhtX2RpcmVjdGlvbik7CiB9CiAKIGNvbnN0IFNjcmlwdFZhbHVlJiBJREJDdXJzb3I6Omtl
eSgpIGNvbnN0CiB7Ci0gICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OmtleSIpOworICAgIExPRyhT
dG9yYWdlQVBJLCAiSURCQ3Vyc29yOjprZXkiKTsKICAgICByZXR1cm4gbV9jdXJyZW50S2V5VmFs
dWU7CiB9CiAKIGNvbnN0IFNjcmlwdFZhbHVlJiBJREJDdXJzb3I6OnByaW1hcnlLZXkoKSBjb25z
dAogewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjpwcmltYXJ5S2V5Iik7CisgICAgTE9HKFN0
b3JhZ2VBUEksICJJREJDdXJzb3I6OnByaW1hcnlLZXkiKTsKICAgICByZXR1cm4gbV9jdXJyZW50
UHJpbWFyeUtleVZhbHVlOwogfQogCiBjb25zdCBTY3JpcHRWYWx1ZSYgSURCQ3Vyc29yOjp2YWx1
ZSgpIGNvbnN0CiB7Ci0gICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OnZhbHVlIik7CisgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJDdXJzb3I6OnZhbHVlIik7CiAgICAgcmV0dXJuIG1fY3VycmVudFZh
bHVlOwogfQogCkBAIC0xMjMsNyArMTIzLDcgQEAgSURCQW55KiBJREJDdXJzb3I6OnNvdXJjZSgp
IGNvbnN0CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjp1cGRhdGUiKTsKKyAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkN1cnNvcjo6dXBkYXRlIik7CiAKICAgICBpZiAoIW1fZ290VmFsdWUgfHwgaXNLZXlD
dXJzb3IoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkU3Rh
dGVFcnJvcjsKQEAgLTE1NSw3ICsxNTUsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1
cnNvcjo6dXBkYXRlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbAogdm9p
ZCBJREJDdXJzb3I6OmFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgZWMgPSAwOwotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjphZHZhbmNlIik7
CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJDdXJzb3I6OmFkdmFuY2UiKTsKICAgICBpZiAoIW1f
Z290VmFsdWUpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0
YXRlRXJyb3I7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIElEQkN1
cnNvcjo6Y29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTY3JpcHRWYQogdm9pZCBJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0
cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwotICAgIElE
Ql9UUkFDRSgiSURCQ3Vyc29yOjpjb250aW51ZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURC
Q3Vyc29yOjpjb250aW51ZSIpOwogICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAgcmV0
dXJuOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9u
KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKLSAgICBJREJf
VFJBQ0UoIklEQkN1cnNvcjo6ZGVsZXRlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJDdXJz
b3I6OmRlbGV0ZSIpOwogICAgIGlmICghbV90cmFuc2FjdGlvbi0+aXNBY3RpdmUoKSkgewogICAg
ICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I7
CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDg3Y2ExMDEuLmMzYmYxNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTQxLDkgKzQx
LDkgQEAKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNp
bmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgotI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VFdmVudC5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAt
MTU2LDcgKzE1Niw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvCiAKIFBhc3NSZWZQdHI8SURC
T2JqZWN0U3RvcmU+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZTo6Y3JlYXRlT2Jq
ZWN0U3RvcmUiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNlOjpjcmVhdGVPYmpl
Y3RTdG9yZSIpOwogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJX
ZWJDb3JlLkluZGV4ZWREQi5Gcm9udEVuZEFQSUNhbGxzIiwgSURCQ3JlYXRlT2JqZWN0U3RvcmVD
YWxsLCBJREJNZXRob2RzTWF4KTsKICAgICBpZiAoIW1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9y
OwpAQCAtMTk2LDcgKzE5Niw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQkRhdGFi
YXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvCiAKIHZvaWQgSURC
RGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3Rv
cmUiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9y
ZSIpOwogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJXZWJDb3Jl
LkluZGV4ZWREQi5Gcm9udEVuZEFQSUNhbGxzIiwgSURCRGVsZXRlT2JqZWN0U3RvcmVDYWxsLCBJ
REJNZXRob2RzTWF4KTsKICAgICBpZiAoIW1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKSB7CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9yOwpAQCAt
MjIwLDcgKzIyMCw3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbW9kZVN0
cmluZywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZTo6
dHJhbnNhY3Rpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNlOjp0cmFuc2Fj
dGlvbiIpOwogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJXZWJD
b3JlLkluZGV4ZWREQi5Gcm9udEVuZEFQSUNhbGxzIiwgSURCVHJhbnNhY3Rpb25DYWxsLCBJREJN
ZXRob2RzTWF4KTsKICAgICBpZiAoIXNjb3BlLnNpemUoKSkgewogICAgICAgICBlYyA9IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkQWNjZXNzRXJyb3I7CkBAIC0yNjksNyArMjY5LDcgQEAg
dm9pZCBJREJEYXRhYmFzZTo6Zm9yY2VDbG9zZSgpCiAKIHZvaWQgSURCRGF0YWJhc2U6OmNsb3Nl
KCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkRhdGFiYXNlOjpjbG9zZSIpOworICAgIExPRyhTdG9y
YWdlQVBJLCAiSURCRGF0YWJhc2U6OmNsb3NlIik7CiAgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpj
bG9zZUNvbm5lY3Rpb24oKQogCiB2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UodWlu
dDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbiwgSW5kZXhlZERCOjpWZXJzaW9u
TnVsbG5lc3MgbmV3VmVyc2lvbk51bGxuZXNzKQogewotICAgIElEQl9UUkFDRSgiSURCRGF0YWJh
c2U6Om9uVmVyc2lvbkNoYW5nZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRGF0YWJhc2U6
Om9uVmVyc2lvbkNoYW5nZSIpOwogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzIzLDcgKzMyMyw3IEBA
IHZvaWQgSURCRGF0YWJhc2U6OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkK
IAogYm9vbCBJREJEYXRhYmFzZTo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkRhdGFiYXNlOjpkaXNwYXRjaEV2ZW50Iik7CisgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZTo6ZGlzcGF0Y2hFdmVudCIpOwogICAgIEFTU0VS
VChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS52ZXJzaW9uY2hhbmdlRXZlbnQpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9lbnF1ZXVlZEV2ZW50cy5zaXplKCk7ICsraSkgewog
ICAgICAgICBpZiAobV9lbnF1ZXVlZEV2ZW50c1tpXS5nZXQoKSA9PSBldmVudC5nZXQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggM2U1MWNjMC4uZjQ2ZDU4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTkwLDggKzkwLDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjb3VudChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJhbmdlKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4pID0gMDsKLQotCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmlu
ZGV4IGM0ZmIwZGUuLjYxYTA5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSAiSURCS2V5
LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0
LmgiCi0jaW5jbHVkZSAiSURCVHJhY2luZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgU3RyaW5nIGdldEluZGV4ZWREQkRh
dGFiYXNlUGF0aChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogCiBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJ
REJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJG
YWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzIik7CiAgICAgaWYgKCFpc0NvbnRleHRWYWxpZChjb250
ZXh0KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFjb250ZXh0LT5zZWN1cml0eU9yaWdp
bigpLT5jYW5BY2Nlc3NEYXRhYmFzZShjb250ZXh0LT50b3BPcmlnaW4oKSkpIHsKQEAgLTExNSwx
MyArMTE1LDEzIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJh
c2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAKIFBhc3NSZWZQdHI8SURCT3Bl
bkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9U
UkFDRSgiSURCRmFjdG9yeTo6b3BlbiIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRmFjdG9y
eTo6b3BlbiIpOwogICAgIHJldHVybiBvcGVuSW50ZXJuYWwoY29udGV4dCwgbmFtZSwgMCwgSW5k
ZXhlZERCOjpOdWxsVmVyc2lvbiwgZWMpOwogfQogCiBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJGYWN0b3J5OjpvcGVuIik7CisgICAgTE9HKFN0
b3JhZ2VBUEksICJJREJGYWN0b3J5OjpvcGVuIik7CiAgICAgaWYgKCF2ZXJzaW9uKSB7CiAgICAg
ICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gMDsKQEAgLTE1Myw3ICsxNTMsNyBA
QCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW5JbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogCiBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+
IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RS
QUNFKCJJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAi
SURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UiKTsKICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0
b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5JbmRleGVkREIuRnJvbnRFbmRBUElDYWxscyIsIElE
QkRlbGV0ZURhdGFiYXNlQ2FsbCwgSURCTWV0aG9kc01heCk7CiAgICAgaWYgKG5hbWUuaXNOdWxs
KCkpIHsKICAgICAgICAgZWMgPSBUeXBlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXggMjZiNTVlNC4uNjM4MmNiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtMzMsOCArMzMs
OCBAQAogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUu
aCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiSURCVHJhY2luZy5oIgogI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYs
NyArNTYsNyBAQCBJREJJbmRleDo6fklEQkluZGV4KCkKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25T
dHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCSW5kZXg6Om9w
ZW5DdXJzb3IiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkluZGV4OjpvcGVuQ3Vyc29yIik7
CiAgICAgaWYgKG1fZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpJbnZhbGlkU3RhdGVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CkBAIC03Nyw3ICs3Nyw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5k
ZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2Ny
aXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIElEQl9UUkFDRSgiSURCSW5kZXg6Om9wZW5DdXJzb3IiKTsKKyAgICBMT0coU3Rv
cmFnZUFQSSwgIklEQkluZGV4OjpvcGVuQ3Vyc29yIik7CiAgICAgUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIDA7CkBAIC04Niw3ICs4Niw3IEBAIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmNvdW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4Ojpjb3Vu
dCIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCSW5kZXg6OmNvdW50Iik7CiAgICAgaWYgKG1f
ZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkU3Rh
dGVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDIsNyArMTAyLDcgQEAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlAKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJJbmRleDo6Y291bnQiKTsK
KyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkluZGV4Ojpjb3VudCIpOwogICAgIFJlZlB0cjxJREJL
ZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTExLDcgKzExMSw3IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFNjCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9w
ZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpvcGVuS2V5Q3Vyc29y
Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJJbmRleDo6b3BlbktleUN1cnNvciIpOwogICAg
IGlmIChtX2RlbGV0ZWQpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52
YWxpZFN0YXRlRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTMyLDcgKzEzMiw3IEBAIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6
b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3Jp
cHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgSURCX1RSQUNFKCJJREJJbmRleDo6b3BlbktleUN1cnNvciIpOworICAgIExPRyhT
dG9yYWdlQVBJLCAiSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IiKTsKICAgICBSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE0MSw3ICsxNDEsNyBAQCBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpnZXQiKTsKKyAg
ICBMT0coU3RvcmFnZUFQSSwgIklEQkluZGV4OjpnZXQiKTsKICAgICBSZWZQdHI8SURCS2V5UmFu
Z2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1MCw3ICsxNTAsNyBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU2NyaQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCSW5kZXg6Omdl
dCIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCSW5kZXg6OmdldCIpOwogICAgIGlmIChtX2Rl
bGV0ZWQpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRl
RXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTcxLDcgKzE3MSw3IEBAIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldEtleShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpnZXRLZXkiKTsK
KyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkluZGV4OjpnZXRLZXkiKTsKICAgICBSZWZQdHI8SURC
S2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE4MSw3ICsxODEsNyBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgUwogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4Ojpn
ZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURC
SW5kZXg6OmdldEtleSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCSW5kZXg6OmdldEtleSIp
OwogICAgIGlmIChtX2RlbGV0ZWQpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SW52YWxpZFN0YXRlRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGRiZjU0
ZjUuLmQxMGRmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTM4LDggKzM4LDggQEAKICNpbmNsdWRlICJJREJLZXku
aCIKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKLSNp
bmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgpAQCAtNTgsNyArNTgsNyBAQCBJREJPYmplY3RTdG9yZTo6SURCT2JqZWN0U3RvcmUoY29uc3Qg
SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgbWV0YWRhdGEsIElEQlRyYW5zYQogCiBQYXNzUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IElEQk9iamVjdFN0b3JlOjppbmRleE5hbWVzKCkgY29uc3QKIHsKLSAg
ICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjppbmRleE5hbWVzIik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJPYmplY3RTdG9yZTo6aW5kZXhOYW1lcyIpOwogICAgIFJlZlB0cjxET01TdHJp
bmdMaXN0PiBpbmRleE5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7CiAgICAgZm9yIChJ
REJPYmplY3RTdG9yZU1ldGFkYXRhOjpJbmRleE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX21l
dGFkYXRhLmluZGV4ZXMuYmVnaW4oKTsgaXQgIT0gbV9tZXRhZGF0YS5pbmRleGVzLmVuZCgpOyAr
K2l0KQogICAgICAgICBpbmRleE5hbWVzLT5hcHBlbmQoaXQtPnZhbHVlLm5hbWUpOwpAQCAtNjgs
NyArNjgsNyBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQk9iamVjdFN0b3JlOjppbmRl
eE5hbWVzKCkgY29uc3QKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6
Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+IGtleVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBJREJfVFJBQ0UoIklEQk9i
amVjdFN0b3JlOjpnZXQiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQk9iamVjdFN0b3JlOjpn
ZXQiKTsKICAgICBpZiAobV9kZWxldGVkKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNl
cHRpb246OkludmFsaWRTdGF0ZUVycm9yOwogICAgICAgICByZXR1cm4gMDsKQEAgLTExOSwyNSAr
MTE5LDI1IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlSW5kZXhLZXlzRm9yVmFsdWUoRE9NUmVxdWVz
dFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IElEQkluCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OmFkZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVl
JiB2YWx1ZSwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6YWRkIik7CisgICAgTE9HKFN0b3JhZ2VBUEks
ICJJREJPYmplY3RTdG9yZTo6YWRkIik7CiAgICAgcmV0dXJuIHB1dChJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U6OkFkZE9ubHksIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUs
IGtleSwgZWMpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjph
ZGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmFkZCIpOworICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0U3RvcmU6OmFkZCIpOwogICAgIHJldHVybiBwdXQoSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwg
c3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPigwKSwgZWMpOwogfQogCiBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OnB1dCIpOworICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0U3RvcmU6OnB1dCIpOwogICAgIHJldHVybiBwdXQoSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhp
cyksIHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCT2JqZWN0U3RvcmU6OnB1dChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9y
ZTo6cHV0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJPYmplY3RTdG9yZTo6cHV0Iik7CiAg
ICAgcmV0dXJuIHB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9yVXBkYXRlLCBJ
REJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPigw
KSwgZWMpOwogfQogCkBAIC0yMzksNyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6cHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZQog
CiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBr
ZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJPYmplY3RT
dG9yZTo6ZGVsZXRlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJPYmplY3RTdG9yZTo6ZGVs
ZXRlIik7CiAgICAgaWYgKG1fZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpJbnZhbGlkU3RhdGVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yNzIsNyAr
MjcyLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY28KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6Y2xlYXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6Y2xl
YXIiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQk9iamVjdFN0b3JlOjpjbGVhciIpOwogICAg
IGlmIChtX2RlbGV0ZWQpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52
YWxpZFN0YXRlRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMzc0LDcgKzM3NCw3IEBAIFBh
c3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0CiAKIFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0
b3JlOjpjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29s
IG11bHRpRW50cnksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCT2Jq
ZWN0U3RvcmU6OmNyZWF0ZUluZGV4Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJPYmplY3RT
dG9yZTo6Y3JlYXRlSW5kZXgiKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNo
YW5nZSgpIHx8IG1fZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpJbnZhbGlkU3RhdGVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CkBAIC00MzAsNyArNDMwLDcg
QEAgUGFzc1JlZlB0cjxJREJJbmRleD4gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKIAogUGFzc1JlZlB0cjxJREJJbmRleD4gSURCT2Jq
ZWN0U3RvcmU6OmluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6aW5kZXgiKTsKKyAgICBMT0coU3RvcmFn
ZUFQSSwgIklEQk9iamVjdFN0b3JlOjppbmRleCIpOwogICAgIGlmIChtX2RlbGV0ZWQpIHsKICAg
ICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3I7CiAgICAg
ICAgIHJldHVybiAwOwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIFBhc3NSZWZQdHI8SURCSW5kZXg+IElE
Qk9iamVjdFN0b3JlOjppbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVj
CiAKIHZvaWQgSURCT2JqZWN0U3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6ZGVs
ZXRlSW5kZXgiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQk9iamVjdFN0b3JlOjpkZWxldGVJ
bmRleCIpOwogICAgIGlmICghbV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkgfHwgbV9k
ZWxldGVkKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0
ZUVycm9yOwogICAgICAgICByZXR1cm47CkBAIC00OTQsNyArNDk0LDcgQEAgdm9pZCBJREJPYmpl
Y3RTdG9yZTo6ZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBl
YykKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBy
YW5nZSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElE
Ql9UUkFDRSgiSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IiKTsKKyAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yIik7CiAgICAgaWYgKG1fZGVsZXRlZCkgewog
ICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkU3RhdGVFcnJvcjsKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC01MjQsNyArNTI0LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXgKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Y291bnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2Us
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNv
dW50Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJPYmplY3RTdG9yZTo6Y291bnQiKTsKICAg
ICBpZiAobV9kZWxldGVkKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Oklu
dmFsaWRTdGF0ZUVycm9yOwogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggOWUyZjAy
Ny4uNDc4YTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJJREJE
YXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIgogI2luY2x1
ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKLSNpbmNsdWRlICJJREJUcmFjaW5n
LmgiCiAjaW5jbHVkZSAiSURCVmVyc2lvbkNoYW5nZUV2ZW50LmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNjUsNyArNjUsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBJREJPcGVuREJS
ZXF1ZXN0OjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIHZvaWQgSURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKHVpbnQ2NF90IG9sZFZlcnNpb24pCiB7Ci0gICAgSURCX1RSQUNFKCJJ
REJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQoKSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURC
T3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKCkiKTsKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVu
dCgpKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSURCT3Bl
bkRCUmVxdWVzdDo6b25CbG9ja2VkKHVpbnQ2NF90IG9sZFZlcnNpb24pCiAKIHZvaWQgSURCT3Bl
bkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKHVpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBwcnBEYXRhYmFzZUJhY2tlbmQsIGNvbnN0
IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhKQogewotICAgIElEQl9UUkFDRSgiSURCT3Bl
bkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKCkiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklE
Qk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZCgpIik7CiAgICAgaWYgKG1fY29udGV4dFN0
b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewogICAgICAgICBSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYiA9IHBycERhdGFiYXNlQmFja2VuZDsKICAgICAg
ICAgZGItPmFib3J0KG1fdHJhbnNhY3Rpb25JZCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBJ
REJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQodWludDY0X3Qgb2xkVmVyc2lvbiwgUGFz
c1JlZlB0cjxJREJEYXRhYmEKIAogdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycEJhY2tlbmQsIGNvbnN0IElE
QkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhKQogewotICAgIElEQl9UUkFDRSgiSURCT3BlbkRC
UmVxdWVzdDo6b25TdWNjZXNzKCkiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQk9wZW5EQlJl
cXVlc3Q6Om9uU3VjY2VzcygpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCmluZGV4IDFkOWZlNjEuLjkzYWU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00MSw4ICs0MSw4IEBACiAj
aW5jbHVkZSAiSURCQ3Vyc29yV2l0aFZhbHVlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIKLSNpbmNsdWRlICJJREJUcmFjaW5nLmgi
CiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0yNDksNyArMjQ5LDcgQEAgYm9vbCBJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQoKSBj
b25zdAogCiB2b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPiBlcnJvcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uRXJyb3IoKSIpOwor
ICAgIExPRyhTdG9yYWdlQVBJLCAiSURCUmVxdWVzdDo6b25FcnJvcigpIik7CiAgICAgaWYgKCFz
aG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjcsNyArMjY3LDcg
QEAgc3RhdGljIFBhc3NSZWZQdHI8RXZlbnQ+IGNyZWF0ZVN1Y2Nlc3NFdmVudCgpCiAKIHZvaWQg
SURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZG9tU3RyaW5n
TGlzdCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhET01TdHJpbmdM
aXN0KSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCUmVxdWVzdDo6b25TdWNjZXNzKERPTVN0
cmluZ0xpc3QpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxET01TdHJpbmdMaXN0PiBkb21TdHJpbmdMaXN0KQogCiB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQs
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQogewotICAgIElEQl9UUkFDRSgiSURCUmVx
dWVzdDo6b25TdWNjZXNzKElEQkN1cnNvcikiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhJREJDdXJzb3IpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZl
bnQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kLCBQYXNzUmUKIAogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+IGlkYktleSkKIHsKLSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJREJL
ZXkpIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURCS2V5
KSIpOwogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCS2V5PiBpZGJLZXkpCiAKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiB2YWx1ZUJ1ZmZlcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhTaGFyZWRCdWZmZXIpIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoU2hhcmVkQnVmZmVyKSIpOwogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlPiBlZmZlY3RpdmVPYmplY3RTdG9yZShQYXNzUmVmUHRyPElE
QkFueT4gc291cmNlCiAKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiB2YWx1ZUJ1ZmZlciwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXks
IGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0
OjpvblN1Y2Nlc3MoU2hhcmVkQnVmZmVyLCBJREJLZXksIElEQktleVBhdGgpIik7CisgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoU2hhcmVkQnVmZmVyLCBJREJLZXks
IElEQktleVBhdGgpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVmUHRyPElEQksKIAog
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoaW50NjRfdCB2YWx1ZSkKIHsKLSAgICBJREJfVFJB
Q0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhpbnQ2NF90KSIpOworICAgIExPRyhTdG9yYWdlQVBJ
LCAiSURCUmVxdWVzdDo6b25TdWNjZXNzKGludDY0X3QpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1
ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHJldHVybiBvblN1Y2Nlc3NJbnRlcm5h
bChTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKHZhbHVlKSk7CkBAIC0zNzAsNyAr
MzcwLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoaW50NjRfdCB2YWx1ZSkKIAogdm9p
ZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoKQogewotICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6
b25TdWNjZXNzKCkiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQlJlcXVlc3Q6Om9uU3VjY2Vz
cygpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIHJldHVybiBvblN1Y2Nlc3NJbnRlcm5hbChTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVm
aW5lZFZhbHVlKCkpOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNj
ZXNzSW50ZXJuYWwoY29uc3QgU2NyaXB0VmFsdWUmIHZhbHVlKQogCiB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcikKIHsKLSAgICBJREJfVFJB
Q0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlKSIpOworICAg
IExPRyhTdG9yYWdlQVBJLCAiSURCUmVxdWVzdDo6b25TdWNjZXNzKGtleSwgcHJpbWFyeUtleSwg
dmFsdWUpIik7CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC00MzIsNyArNDMyLDcgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgSURCUmVxdWVzdDo6
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogCiBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJSZXF1
ZXN0OjpkaXNwYXRjaEV2ZW50Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJSZXF1ZXN0Ojpk
aXNwYXRjaEV2ZW50Iik7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAg
ICBBU1NFUlQoIW1fY29udGV4dFN0b3BwZWQpOwogICAgIEFTU0VSVChtX2hhc1BlbmRpbmdBY3Rp
dml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFjaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFjaW5nLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MzcyZWYuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhY2luZy5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgR09PR0xFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQlRyYWNpbmdfaAotI2RlZmluZSBJREJUcmFj
aW5nX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiTG9nZ2lu
Zy5oIgotCi0jZGVmaW5lIElEQl9UUkFDRShhKSBMT0coU3RvcmFnZUFQSSwgYSkKLQotI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jZW5kaWYgLy8gSURCVHJhY2luZ19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5j
cHAKaW5kZXggMmRmYjhjYy4uZWMwMWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgog
I2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKLSNpbmNsdWRlICJJREJU
cmFjaW5nLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIApAQCAtMjc4LDcgKzI3
OCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OnVucmVnaXN0ZXJSZXF1ZXN0KElEQlJlcXVlc3Qq
IHJlcXVlc3QpCiAKIHZvaWQgSURCVHJhbnNhY3Rpb246Om9uQWJvcnQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPiBwcnBFcnJvcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQlRyYW5zYWN0aW9u
OjpvbkFib3J0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJUcmFuc2FjdGlvbjo6b25BYm9y
dCIpOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvciA9IHBycEVycm9yOwogICAg
IEFTU0VSVChtX3N0YXRlICE9IEZpbmlzaGVkKTsKIApAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQg
SURCVHJhbnNhY3Rpb246Om9uQWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBwcnBF
cnJvcikKIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6b25Db21wbGV0ZSgpCiB7Ci0gICAgSURCX1RS
QUNFKCJJREJUcmFuc2FjdGlvbjo6b25Db21wbGV0ZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAi
SURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUiKTsKICAgICBBU1NFUlQobV9zdGF0ZSAhPSBGaW5p
c2hlZCk7CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGluZzsKICAgICBtX29iamVjdFN0b3JlQ2xlYW51
cE1hcC5jbGVhcigpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURC
VHJhbnNhY3Rpb246Om1vZGVUb1N0cmluZyhJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2Rl
CiAKIGJvb2wgSURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCIp
OworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQiKTsK
ICAgICBBU1NFUlQobV9zdGF0ZSAhPSBGaW5pc2hlZCk7CiAgICAgQVNTRVJUKG1faGFzUGVuZGlu
Z0FjdGl2aXR5KTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCmluZGV4IGU1ZjRjOWEuLjkzZDM3MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAtMzUsMTIgKzM1LDEyIEBA
CiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJMZXZlbERCQ29kaW5nLmgi
CiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5j
bHVkZSAiTGV2ZWxEQkNvbXBhcmF0b3IuaCIKICNpbmNsdWRlICJMZXZlbERCRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJMZXZlbERCSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMZXZlbERCU2xpY2UuaCIK
ICNpbmNsdWRlICJMZXZlbERCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMzgwLDcgKzM4MCw3IEBAIFBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlPiBJREJCYWNraW5nU3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNl
Y3VyaXR5T3JpZ2luCiAKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJCYWNraW5nU3Rv
cmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIHBh
dGhCYXNlQXJnLCBjb25zdCBTdHJpbmcmIGZpbGVJZGVudGlmaWVyLCBMZXZlbERCRmFjdG9yeSog
bGV2ZWxEQkZhY3RvcnkpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6Om9wZW4i
KTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6b3BlbiIpOwogICAgIEFT
U0VSVCghcGF0aEJhc2VBcmcuaXNFbXB0eSgpKTsKICAgICBTdHJpbmcgcGF0aEJhc2UgPSBwYXRo
QmFzZUFyZzsKIApAQCAtNDUwLDcgKzQ1MCw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
PiBJREJCYWNraW5nU3RvcmU6Om9wZW5Jbk1lbW9yeShTZWN1cml0eU9yaWdpbiogc2VjdXJpCiAK
IFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJCYWNraW5nU3RvcmU6Om9wZW5Jbk1lbW9y
eShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgTGV2ZWxEQkZhY3Rv
cnkqKQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpvcGVuSW5NZW1vcnkiKTsK
KyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6b3BlbkluTWVtb3J5Iik7CiAK
ICAgICBPd25QdHI8TGV2ZWxEQkNvbXBhcmF0b3I+IGNvbXBhcmF0b3IgPSBhZG9wdFB0cihuZXcg
Q29tcGFyYXRvcigpKTsKICAgICBPd25QdHI8TGV2ZWxEQkRhdGFiYXNlPiBkYiA9IExldmVsREJE
YXRhYmFzZTo6b3BlbkluTWVtb3J5KGNvbXBhcmF0b3IuZ2V0KCkpOwpAQCAtNjIyLDcgKzYyMiw3
IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZVJhbmdlKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGNvbnN0IFZlY3RvcjxjaGFyPiYgYmVnCiAKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpkZWxl
dGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZURhdGFiYXNlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZURhdGFiYXNlIik7CiAgICAgT3duUHRyPExldmVsREJXcml0ZU9ubHlU
cmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBMZXZlbERCV3JpdGVPbmx5VHJhbnNhY3Rpb246OmNy
ZWF0ZShtX2RiLmdldCgpKTsKIAogICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGE7CkBA
IC02NjcsNyArNjY3LDcgQEAgc3RhdGljIGJvb2wgY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRh
VHlwZShjb25zdCBMZXZlbERCSXRlcmF0b3IqIGl0LCBjb25zdCBWZWMKIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBkbyBzb21lIGVycm9yIGhhbmRsaW5nIHJhdGhlciB0aGFuIHBsb3dpbmcgYWhlYWQg
d2hlbiBiYWQgZGF0YSBpcyBlbmNvdW50ZXJlZC4KIGJvb2wgSURCQmFja2luZ1N0b3JlOjpnZXRP
YmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpPYmpl
Y3RTdG9yZU1hcCogb2JqZWN0U3RvcmVzKQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0
b3JlOjpnZXRPYmplY3RTdG9yZXMiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdT
dG9yZTo6Z2V0T2JqZWN0U3RvcmVzIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OmlzVmFsaWREYXRh
YmFzZUlkKGRhdGFiYXNlSWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY29uc3QgVmVj
dG9yPGNoYXI+IHN0YXJ0S2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFi
YXNlSWQsIDEsIDApOwpAQCAtNzgyLDcgKzc4Miw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0
aWMgYm9vbCBzZXRNYXhPYmplY3RTdG9yZUlkKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
CiAKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5
UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0
b3JlOjpjcmVhdGVPYmplY3RTdG9yZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2lu
Z1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElk
cyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3Jl
OjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC04
MTMsNyArODEzLDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlKElE
QkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW8KIAogYm9vbCBJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKIHsK
LSAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsKKyAg
ICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsK
ICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJU
cmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2Fj
dGlvbkZyb20odHJhbnNhY3Rpb24pOwpAQCAtODQyLDcgKzg0Miw3IEBAIGJvb2wgSURCQmFja2lu
Z1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvCiAKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQoSURCQmFja2luZ1N0
b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgVmVjdG9yPGNoYXI+JiByZWNvcmQp
CiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZCIpOworICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQiKTsKICAgICBpZiAoIUtl
eVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9
IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJh
bnNhY3Rpb24pOwpAQCAtOTAwLDcgKzkwMCw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0aWMg
Ym9vbCBnZXROZXdWZXJzaW9uTnVtYmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3RpCiAK
IGJvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXkmIGtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycFZhbHVl
LCBSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQogewotICAgIElEQl9UUkFDRSgi
SURCQmFja2luZ1N0b3JlOjpwdXRSZWNvcmQiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJh
Y2tpbmdTdG9yZTo6cHV0UmVjb3JkIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRh
dGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgQVNT
RVJUKGtleS5pc1ZhbGlkKCkpOwpAQCAtOTMwLDcgKzkzMCw3IEBAIGJvb2wgSURCQmFja2luZ1N0
b3JlOjpwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0CiAKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpjbGVhck9iamVjdFN0b3JlKElEQkJhY2tp
bmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6
Y2xlYXJPYmplY3RTdG9yZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3Jl
OjpjbGVhck9iamVjdFN0b3JlIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFi
YXNlSWQsIG9iamVjdFN0b3JlSWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgTGV2ZWxE
QlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5z
YWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTk0Myw3ICs5
NDMsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbgogCiBib29sIElEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRl
bnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlUmVjb3JkIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3Rv
cmU6OmRlbGV0ZVJlY29yZCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZUlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExldmVsREJU
cmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xMDI5LDcgKzEw
MjksNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJy
ZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZTo6VHJhbgogCiBib29sIElEQkJhY2tpbmdTdG9yZTo6
a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0
IElEQktleSYga2V5LCBSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJv
b2wmIGZvdW5kKQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJ
bk9iamVjdFN0b3JlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmU6Omtl
eUV4aXN0c0luT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3Vu
ZCA9IGZhbHNlOwpAQCAtMTA3Miw3ICsxMDcyLDcgQEAgc3RhdGljIGJvb2wgY2hlY2tJbmRleEFu
ZE1ldGFEYXRhS2V5KGNvbnN0IExldmVsREJJdGVyYXRvciogaXQsIGNvbnN0IFZlY3RvcjxjaGEK
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBkbyBzb21lIGVycm9yIGhhbmRsaW5nIHJhdGhlciB0aGFu
IHBsb3dpbmcgYWhlYWQgd2hlbiBiYWQgZGF0YSBpcyBlbmNvdW50ZXJlZC4KIGJvb2wgSURCQmFj
a2luZ1N0b3JlOjpnZXRJbmRleGVzKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOjpJbmRleE1hcCogaW5kZXhlcykKIHsKLSAg
ICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6Z2V0SW5kZXhlcyIpOworICAgIExPRyhTdG9y
YWdlQVBJLCAiSURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVzIik7CiAgICAgaWYgKCFLZXlQcmVm
aXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0YXJ0S2V5ID0gSW5kZXhNZXRhRGF0YUtl
eTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIDAsIDApOwpAQCAtMTE1MCw3ICsx
MTUwLDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIHN0YXRpYyBib29sIHNldE1heEluZGV4SWQoTGV2
ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW4KIAogYm9vbCBJREJCYWNraW5nU3RvcmU6
OmNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgaXNV
bmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0
b3JlOjpjcmVhdGVJbmRleCIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3Jl
OjpjcmVhdGVJbmRleCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlk
LCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExl
dmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpU
cmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xMTcx
LDcgKzExNzEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgoSURCQmFja2lu
Z1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludAogCiBib29sIElEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4Iik7
CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4Iik7CiAg
ICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGlu
ZGV4SWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBs
ZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERC
VHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTExODgsNyArMTE4OCw3IEBAIGJvb2wg
SURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbiwgaW50CiAKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFG
b3JSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IElEQktleSYga2V5LCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVy
KQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNv
cmQiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6cHV0SW5kZXhEYXRh
Rm9yUmVjb3JkIik7CiAgICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOwogICAgIGlmICghS2V5UHJl
Zml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTI1MSw3ICsxMjUxLDcgQEAgc3RhdGljIGJvb2wgdmVyc2lv
bkV4aXN0cyhMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGkKIAogYm9vbCBJREJCYWNraW5nU3RvcmU6OmZpbmRLZXlJbkluZGV4KElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgVmVj
dG9yPGNoYXI+JiBmb3VuZEVuY29kZWRQcmltYXJ5S2V5LCBib29sJiBmb3VuZCkKIHsKLSAgICBJ
REJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6ZmluZEtleUluSW5kZXgiKTsKKyAgICBMT0coU3Rv
cmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6ZmluZEtleUluSW5kZXgiKTsKICAgICBBU1NFUlQo
S2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSk7
CiAKICAgICBBU1NFUlQoZm91bmRFbmNvZGVkUHJpbWFyeUtleS5pc0VtcHR5KCkpOwpAQCAtMTI5
Myw3ICsxMjkzLDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmU6OmZpbmRLZXlJbkluZGV4KElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAogCiBib29sIElEQkJhY2tpbmdT
dG9yZTo6Z2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgUmVmUHRyPElEQktleT4mIHByaW1h
cnlLZXkpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6OmdldFByaW1hcnlLZXlW
aWFJbmRleCIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlOjpnZXRQcmlt
YXJ5S2V5VmlhSW5kZXgiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJ
ZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
MTMxNCw3ICsxMzE0LDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmU6OmdldFByaW1hcnlLZXlWaWFJ
bmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2EKIAogYm9vbCBJREJCYWNr
aW5nU3RvcmU6OmtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJREJLZXk+JiBm
b3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykKIHsKLSAgICBJREJfVFJBQ0UoIklEQkJhY2tp
bmdTdG9yZTo6a2V5RXhpc3RzSW5JbmRleCIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFj
a2luZ1N0b3JlOjprZXlFeGlzdHNJbkluZGV4Iik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlk
SWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBib29sIGluZGV4Q3Vyc29yT3B0
aW9ucyhMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlCiAK
IFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6b3Bl
bk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURC
S2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUN1cnNvciIp
OworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlOjpvcGVuT2JqZWN0U3RvcmVD
dXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElE
QkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNh
Y3Rpb24pOwogICAgIElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yOjpDdXJzb3JPcHRpb25zIGN1cnNv
ck9wdGlvbnM7CiAgICAgaWYgKCFvYmplY3RTdG9yZUN1cnNvck9wdGlvbnMobGV2ZWxEQlRyYW5z
YWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCByYW5nZSwgZGlyZWN0aW9uLCBjdXJz
b3JPcHRpb25zKSkKQEAgLTE5MjcsNyArMTkyNyw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJh
CiAKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6
b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rp
b24pCiB7Ci0gICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUtl
eUN1cnNvciIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlOjpvcGVuT2Jq
ZWN0U3RvcmVLZXlDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFu
c2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlv
bkZyb20odHJhbnNhY3Rpb24pOwogICAgIElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yOjpDdXJzb3JP
cHRpb25zIGN1cnNvck9wdGlvbnM7CiAgICAgaWYgKCFvYmplY3RTdG9yZUN1cnNvck9wdGlvbnMo
bGV2ZWxEQlRyYW5zYWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCByYW5nZSwgZGly
ZWN0aW9uLCBjdXJzb3JPcHRpb25zKSkKQEAgLTE5NDEsNyArMTk0MSw3IEBAIFBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVjdFN0b3Jl
S2V5Q3Vyc29yKElECiAKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJh
Y2tpbmdTdG9yZTo6b3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6
Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdT
dG9yZTo6b3BlbkluZGV4S2V5Q3Vyc29yIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNr
aW5nU3RvcmU6Om9wZW5JbmRleEtleUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiog
bGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6bGV2ZWxE
QlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CiAgICAgSURCQmFja2luZ1N0b3JlOjpDdXJz
b3I6OkN1cnNvck9wdGlvbnMgY3Vyc29yT3B0aW9uczsKICAgICBpZiAoIWluZGV4Q3Vyc29yT3B0
aW9ucyhsZXZlbERCVHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4
SWQsIHJhbmdlLCBkaXJlY3Rpb24sIGN1cnNvck9wdGlvbnMpKQpAQCAtMTk1NSw3ICsxOTU1LDcg
QEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlOjpv
cGVuSW5kZXhLZXlDdXJzb3IoSURCQmFja2kKIAogUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6
OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlOjpvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3Jl
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIElEQl9UUkFDRSgi
SURCQmFja2luZ1N0b3JlOjpvcGVuSW5kZXhDdXJzb3IiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0
aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjps
ZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKICAgICBJREJCYWNraW5nU3RvcmU6
OkN1cnNvcjo6Q3Vyc29yT3B0aW9ucyBjdXJzb3JPcHRpb25zOwogICAgIGlmICghaW5kZXhDdXJz
b3JPcHRpb25zKGxldmVsREJUcmFuc2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwg
aW5kZXhJZCwgcmFuZ2UsIGRpcmVjdGlvbiwgY3Vyc29yT3B0aW9ucykpCkBAIC0xOTc0LDE0ICsx
OTc0LDE0IEBAIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uKElEQkJh
Y2tpbmdTdG9yZSogYmFja2luZ1N0b3JlKQogCiB2b2lkIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb246OmJlZ2luKCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb246OmJlZ2luIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmU6OlRy
YW5zYWN0aW9uOjpiZWdpbiIpOwogICAgIEFTU0VSVCghbV90cmFuc2FjdGlvbik7CiAgICAgbV90
cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlvbjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLT5t
X2RiLmdldCgpKTsKIH0KIAogYm9vbCBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpjb21t
aXQoKQogewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6Y29t
bWl0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9u
Ojpjb21taXQiKTsKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbik7CiAgICAgYm9vbCByZXN1bHQg
PSBtX3RyYW5zYWN0aW9uLT5jb21taXQoKTsKICAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CkBA
IC0xOTkyLDcgKzE5OTIsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmNv
bW1pdCgpCiAKIHZvaWQgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6cm9sbGJhY2soKQog
ewotICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6cm9sbGJhY2si
KTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OnJv
bGxiYWNrIik7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24pOwogICAgIG1fdHJhbnNhY3Rpb24t
PnJvbGxiYWNrKCk7CiAgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2
ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1
cnNvckJhY2tlbmRMZXZlbERCLmNwcAppbmRleCA4NmM2N2Q3Li5iODY3ZTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tl
bmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcApAQCAtMzQsOCArMzQsOCBAQAogI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiSURCVHJhY2luZy5oIgogI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaCIKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEyMCwyMSArMTIwLDIxIEBAIElEQkN1cnNvckJhY2tlbmRMZXZlbERCOjp+SURCQ3Vyc29yQmFj
a2VuZExldmVsREIoKQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpjb250aW51ZUZ1
bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29y
QmFja2VuZExldmVsREI6OmNvbnRpbnVlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJDdXJz
b3JCYWNrZW5kTGV2ZWxEQjo6Y29udGludWUiKTsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CiAgICAgbV90cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNr
KG1fdGFza1R5cGUsIEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIGtleSwg
Y2FsbGJhY2tzKSk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmFkdmFuY2Uo
dW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNr
cywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJDdXJzb3JCYWNrZW5kTGV2
ZWxEQjo6YWR2YW5jZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQ3Vyc29yQmFja2VuZExl
dmVsREI6OmFkdmFuY2UiKTsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MgPSBw
cnBDYWxsYmFja3M7CiAgICAgbV90cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKEN1cnNvckFkdmFu
Y2VPcGVyYXRpb246OmNyZWF0ZSh0aGlzLCBjb3VudCwgY2FsbGJhY2tzKSk7CiB9CiAKIHZvaWQg
SURCQ3Vyc29yQmFja2VuZExldmVsREI6OkN1cnNvckFkdmFuY2VPcGVyYXRpb246OnBlcmZvcm0o
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiopCiB7Ci0gICAgSURCX1RSQUNFKCJDdXJzb3JB
ZHZhbmNlT3BlcmF0aW9uIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JBZHZhbmNlT3Bl
cmF0aW9uIik7CiAgICAgaWYgKCFtX2N1cnNvci0+bV9jdXJzb3IgfHwgIW1fY3Vyc29yLT5tX2N1
cnNvci0+YWR2YW5jZShtX2NvdW50KSkgewogICAgICAgICBtX2N1cnNvci0+bV9jdXJzb3IgPSAw
OwogICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZl
cio+KDApKTsKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmRMZXZlbERC
OjpDdXJzb3JBZHZhbmNlT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFjawogCiB2
b2lkIElEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpDdXJzb3JJdGVyYXRpb25PcGVyYXRpb246OnBl
cmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiopCiB7Ci0gICAgSURCX1RSQUNFKCJD
dXJzb3JJdGVyYXRpb25PcGVyYXRpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIkN1cnNvckl0
ZXJhdGlvbk9wZXJhdGlvbiIpOwogICAgIGlmICghbV9jdXJzb3ItPm1fY3Vyc29yIHx8ICFtX2N1
cnNvci0+bV9jdXJzb3ItPmNvbnRpbnVlRnVuY3Rpb24obV9rZXkuZ2V0KCkpKSB7CiAgICAgICAg
IG1fY3Vyc29yLT5tX2N1cnNvciA9IDA7CiAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
c3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQg
SURCQ3Vyc29yQmFja2VuZExldmVsREI6OkN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9y
bShJREJUcmFuc2FjdGlvbkJhCiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRlbGV0
ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlv
bkNvZGUmKQogewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRlbGV0
ZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRlbGV0
ZSIpOwogICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSW5kZXhlZERCOjpUcmFu
c2FjdGlvblJlYWRPbmx5KTsKICAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gSURC
S2V5UmFuZ2U6OmNyZWF0ZShtX2N1cnNvci0+cHJpbWFyeUtleSgpKTsKICAgICBtX2RhdGFiYXNl
LT5kZWxldGVSYW5nZShtX3RyYW5zYWN0aW9uLT5pZCgpLCBtX29iamVjdFN0b3JlSWQsIGtleVJh
bmdlLnJlbGVhc2UoKSwgcHJwQ2FsbGJhY2tzKTsKQEAgLTE2NiwxNCArMTY2LDE0IEBAIHZvaWQg
SURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBwcnBDYWxsYmFjCiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZExldmVsREI6OnByZWZl
dGNoQ29udGludWUoaW50IG51bWJlclRvRmV0Y2gsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29y
QmFja2VuZExldmVsREI6OnByZWZldGNoQ29udGludWUiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpwcmVmZXRjaENvbnRpbnVlIik7CiAgICAgUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOwogICAgIG1fdHJhbnNhY3Rp
b24tPnNjaGVkdWxlVGFzayhtX3Rhc2tUeXBlLCBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJh
dGlvbjo6Y3JlYXRlKHRoaXMsIG51bWJlclRvRmV0Y2gsIGNhbGxiYWNrcykpOwogfQogCiB2b2lk
IElEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlv
bjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKikKIHsKLSAgICBJREJfVFJB
Q0UoIkN1cnNvclByZWZldGNoSXRlcmF0aW9uT3BlcmF0aW9uIik7CisgICAgTE9HKFN0b3JhZ2VB
UEksICJDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbiIpOwogCiAgICAgVmVjdG9yPFJl
ZlB0cjxJREJLZXk+ID4gZm91bmRLZXlzOwogICAgIFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+IGZv
dW5kUHJpbWFyeUtleXM7CkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5k
TGV2ZWxEQjo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb246OnBlcmZvcm0oSURCVHJh
bnMKIAogdm9pZCBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQjo6cHJlZmV0Y2hSZXNldChpbnQgdXNl
ZFByZWZldGNoZXMsIGludCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRMZXZl
bERCOjpwcmVmZXRjaFJlc2V0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQjo6cHJlZmV0Y2hSZXNldCIpOwogICAgIG1fY3Vyc29yID0gbV9zYXZlZEN1cnNv
cjsKICAgICBtX3NhdmVkQ3Vyc29yID0gMDsKIApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgSURC
Q3Vyc29yQmFja2VuZExldmVsREI6OnByZWZldGNoUmVzZXQoaW50IHVzZWRQcmVmZXRjaGVzLCBp
bnQpCiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmNsb3NlKCkKIHsKLSAgICBJREJf
VFJBQ0UoIklEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpjbG9zZSIpOworICAgIExPRyhTdG9yYWdl
QVBJLCAiSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmNsb3NlIik7CiAgICAgbV9jbG9zZWQgPSB0
cnVlOwogICAgIG1fY3Vyc29yLmNsZWFyKCk7CiAgICAgbV9zYXZlZEN1cnNvci5jbGVhcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJE
YXRhYmFzZUJhY2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggMTE5OTQ3MC4u
NGNmYmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCkBA
IC0zNCw5ICszNCw5IEBACiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmgiCiAj
aW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCLmgiCi0jaW5jbHVkZSAiSURCVHJhY2luZy5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
TGV2ZWxEQi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKQEAgLTU0OCw3ICs1NDgsNyBA
QCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
YmFja2luZ1N0b3JlKCkgY29uc3QKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29s
IGF1dG9JbmNyZW1lbnQpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCOjpjcmVhdGVPYmplY3RTdG9yZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlT2JqZWN0U3RvcmUiKTsKICAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2Fj
dGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47CkBAIC01NjQs
NyArNTY0LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QKIAogdm9pZCBDcmVhdGVPYmplY3RT
dG9yZU9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFu
c2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uIik7
CisgICAgTE9HKFN0b3JhZ2VBUEksICJDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbiIpOwogICAg
IGlmICghbV9iYWNraW5nU3RvcmUtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLT5iYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbigpLCB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+aWQoKSwgbV9v
YmplY3RTdG9yZU1ldGFkYXRhLmlkLCBtX29iamVjdFN0b3JlTWV0YWRhdGEubmFtZSwgbV9vYmpl
Y3RTdG9yZU1ldGFkYXRhLmtleVBhdGgsIG1fb2JqZWN0U3RvcmVNZXRhZGF0YS5hdXRvSW5jcmVt
ZW50KSkgewogICAgICAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IgPSBJREJEYXRh
YmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgU3Ry
aW5nOjpmb3JtYXQoIkludGVybmFsIGVycm9yIGNyZWF0aW5nIG9iamVjdCBzdG9yZSAnJXMnLiIs
IG1fb2JqZWN0U3RvcmVNZXRhZGF0YS5uYW1lLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgdHJh
bnNhY3Rpb24tPmFib3J0KGVycm9yLnJlbGVhc2UoKSk7CkBAIC01NzQsNyArNTc0LDcgQEAgdm9p
ZCBDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCKiB0cmFuc2FjdGkKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpk
ZWxldGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCkKIHsKLSAgICBJREJfVFJBQ0UoIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmRlbGV0
ZU9iamVjdFN0b3JlIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCOjpkZWxldGVPYmplY3RTdG9yZSIpOwogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwog
ICAgIGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTU4OSw3ICs1ODksNyBA
QCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0
X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdAogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI6OmNyZWF0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0
aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKIHsKLSAgICBJREJfVFJB
Q0UoIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZUluZGV4Iik7CisgICAgTE9HKFN0
b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVJbmRleCIpOwogICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6
OmNyZWF0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplYwogCiB2b2lk
IENyZWF0ZUluZGV4T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIqIHRyYW5zYWN0aW9uKQogewotICAgIElEQl9UUkFDRSgiQ3JlYXRlSW5kZXhPcGVyYXRpb24i
KTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIkNyZWF0ZUluZGV4T3BlcmF0aW9uIik7CiAgICAgaWYg
KCFtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uKCksIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5pZCgpLCBtX29iamVjdFN0b3Jl
SWQsIG1faW5kZXhNZXRhZGF0YS5pZCwgbV9pbmRleE1ldGFkYXRhLm5hbWUsIG1faW5kZXhNZXRh
ZGF0YS5rZXlQYXRoLCBtX2luZGV4TWV0YWRhdGEudW5pcXVlLCBtX2luZGV4TWV0YWRhdGEubXVs
dGlFbnRyeSkpIHsKICAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KElEQkRhdGFiYXNlRXJyb3I6
OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBTdHJpbmc6OmZvcm1h
dCgiSW50ZXJuYWwgZXJyb3Igd2hlbiB0cnlpbmcgdG8gY3JlYXRlIGluZGV4ICclcycuIiwgbV9p
bmRleE1ldGFkYXRhLm5hbWUudXRmOCgpLmRhdGEoKSkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
NjE3LDE0ICs2MTcsMTQgQEAgdm9pZCBDcmVhdGVJbmRleE9wZXJhdGlvbjo6cGVyZm9ybShJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIAogdm9pZCBDcmVhdGVJbmRl
eEFib3J0T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRy
YW5zYWN0aW9uKQogewotICAgIElEQl9UUkFDRSgiQ3JlYXRlSW5kZXhBYm9ydE9wZXJhdGlvbiIp
OworICAgIExPRyhTdG9yYWdlQVBJLCAiQ3JlYXRlSW5kZXhBYm9ydE9wZXJhdGlvbiIpOwogICAg
IEFTU0VSVF9VTlVTRUQodHJhbnNhY3Rpb24sICF0cmFuc2FjdGlvbik7CiAgICAgbV9kYXRhYmFz
ZS0+cmVtb3ZlSW5kZXgobV9vYmplY3RTdG9yZUlkLCBtX2luZGV4SWQpOwogfQogCiB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmRlbGV0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpCiB7Ci0gICAgSURCX1RS
QUNFKCJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVJbmRleCIpOworICAgIExPRyhT
dG9yYWdlQVBJLCAiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6ZGVsZXRlSW5kZXgiKTsKICAg
ICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rp
b25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICBy
ZXR1cm47CkBAIC02NDMsNyArNjQzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
OjpkZWxldGVJbmRleChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWMKIAogdm9p
ZCBEZWxldGVJbmRleE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKiB0cmFuc2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIkRlbGV0ZUluZGV4T3BlcmF0aW9u
Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJEZWxldGVJbmRleE9wZXJhdGlvbiIpOwogICAgIGJv
b2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlSW5kZXgodHJhbnNhY3Rpb24tPmJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uKCksIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5pZCgpLCBtX29iamVj
dFN0b3JlSWQsIG1faW5kZXhNZXRhZGF0YS5pZCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBS
ZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IgPSBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUo
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgU3RyaW5nOjpmb3JtYXQoIkludGVy
bmFsIGVycm9yIGRlbGV0aW5nIGluZGV4ICclcycuIiwgbV9pbmRleE1ldGFkYXRhLm5hbWUudXRm
OCgpLmRhdGEoKSkpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgRGVsZXRlSW5kZXhPcGVyYXRp
b246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24pCiAK
IHZvaWQgRGVsZXRlSW5kZXhBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIkRlbGV0ZUluZGV4
QWJvcnRPcGVyYXRpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIkRlbGV0ZUluZGV4QWJvcnRP
cGVyYXRpb24iKTsKICAgICBBU1NFUlRfVU5VU0VEKHRyYW5zYWN0aW9uLCAhdHJhbnNhY3Rpb24p
OwogICAgIG1fZGF0YWJhc2UtPmFkZEluZGV4KG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleE1ldGFk
YXRhLCBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpOwogfQpAQCAtNjgxLDcgKzY4MSw3IEBA
IHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YWJvcnQoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBQYXNzUmVmUHRyPElEQkRhdGFiCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
Qjo6Z2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBib29sIGtleU9u
bHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7Ci0gICAgSURCX1RSQUNF
KCJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpnZXQiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmdldCIpOwogICAgIElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9u
SWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTY5MSw3ICs2
OTEsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmdldChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZAogCiB2b2lkIEdldE9wZXJhdGlvbjo6cGVy
Zm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIHsKLSAgICBJ
REJfVFJBQ0UoIkdldE9wZXJhdGlvbiIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiR2V0T3BlcmF0
aW9uIik7CiAKICAgICBSZWZQdHI8SURCS2V5PiBrZXk7CiAKQEAgLTc4Myw3ICs3ODMsNyBAQCB2
b2lkIEdldE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0
cmFuc2FjdGlvbikKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpwdXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4m
IGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogewotICAgIElE
Ql9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cHV0Iik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpwdXQiKTsKICAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFu
c2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47CkBAIC03
OTgsNyArNzk4LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpwdXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQKIAogdm9pZCBQdXRPcGVyYXRp
b246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24pCiB7
Ci0gICAgSURCX1RSQUNFKCJQdXRPcGVyYXRpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIlB1
dE9wZXJhdGlvbiIpOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CiAgICAgQVNTRVJUKG1faW5kZXhJZHMuc2l6ZSgpID09
IG1faW5kZXhLZXlzLnNpemUoKSk7CiAgICAgYm9vbCBrZXlXYXNHZW5lcmF0ZWQgPSBmYWxzZTsK
QEAgLTg2OSw3ICs4NjksNyBAQCB2b2lkIFB1dE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0
b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlz
KQogewotICAgIElEQl9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6c2V0SW5kZXhL
ZXlzIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpz
ZXRJbmRleEtleXMiKTsKICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2Fj
dGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5z
YWN0aW9uKQogICAgICAgICByZXR1cm47CkBAIC05MTQsNyArOTE0LDcgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IG9iamUKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVz
UmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIGluZGV4SWRzKQogewotICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2
ZWxEQjo6c2V0SW5kZXhlc1JlYWR5Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJPYmplY3RT
dG9yZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVzUmVhZHkiKTsKIAogICAgIElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5z
YWN0aW9uSWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCkBAIC05MjUsMTQgKzkyNSwxNCBAQCB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4ZXNSZWFkeShpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3QsCiAKIHZvaWQgU2V0SW5kZXhlc1JlYWR5T3BlcmF0aW9uOjpw
ZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uKQogewotICAg
IElEQl9UUkFDRSgiU2V0SW5kZXhlc1JlYWR5T3BlcmF0aW9uIik7CisgICAgTE9HKFN0b3JhZ2VB
UEksICJTZXRJbmRleGVzUmVhZHlPcGVyYXRpb24iKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1faW5kZXhDb3VudDsgKytpKQogICAgICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29tcGxldGVQ
cmVlbXB0aXZlRXZlbnQoKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpv
cGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVk
REI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUgdGFz
a1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7Ci0gICAgSURCX1RS
QUNFKCJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpvcGVuQ3Vyc29yIik7CisgICAgTE9HKFN0
b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpvcGVuQ3Vyc29yIik7CiAgICAg
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9u
cy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0
dXJuOwpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
b3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0CiAKIHZvaWQg
T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
KiB0cmFuc2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIk9wZW5DdXJzb3JPcGVyYXRpb24iKTsK
KyAgICBMT0coU3RvcmFnZUFQSSwgIk9wZW5DdXJzb3JPcGVyYXRpb24iKTsKIAogICAgIC8vIFRo
ZSBmcm9udGVuZCBoYXMgYmVndW4gaW5kZXhpbmcsIHNvIHRoaXMgcGF1c2VzIHRoZSB0cmFuc2Fj
dGlvbgogICAgIC8vIHVudGlsIHRoZSBpbmRleGluZyBpcyBjb21wbGV0ZS4gVGhpcyBjYW4ndCBo
YXBwZW4gYW55IGVhcmxpZXIKQEAgLTk3NSw3ICs5NzUsNyBAQCB2b2lkIE9wZW5DdXJzb3JPcGVy
YXRpb246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24p
CiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y291bnQoaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjb3VudCIp
OworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y291bnQi
KTsKICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9IG1fdHJh
bnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAg
ICAgICByZXR1cm47CkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCOjpjb3VudChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmUK
IAogdm9pZCBDb3VudE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKiB0cmFuc2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIkNvdW50T3BlcmF0aW9uIik7Cisg
ICAgTE9HKFN0b3JhZ2VBUEksICJDb3VudE9wZXJhdGlvbiIpOwogICAgIHVpbnQzMl90IGNvdW50
ID0gMDsKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1
cnNvcjsKIApAQCAtMTAwOCw3ICsxMDA4LDcgQEAgdm9pZCBDb3VudE9wZXJhdGlvbjo6cGVyZm9y
bShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIAogdm9pZCBJREJE
YXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Us
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7Ci0gICAgSURCX1RSQUNFKCJJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZSIpOworICAgIExPRyhTdG9yYWdl
QVBJLCAiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6ZGVsZXRlUmFuZ2UiKTsKICAgICBJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdl
dCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47
CkBAIC0xMDE5LDcgKzEwMTksNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmRl
bGV0ZVJhbmdlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplYwogCiB2b2lkIERl
bGV0ZVJhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIq
IHRyYW5zYWN0aW9uKQogewotICAgIElEQl9UUkFDRSgiRGVsZXRlUmFuZ2VPcGVyYXRpb24iKTsK
KyAgICBMT0coU3RvcmFnZUFQSSwgIkRlbGV0ZVJhbmdlT3BlcmF0aW9uIik7CiAgICAgUmVmUHRy
PElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdT
dG9yZS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFu
c2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQo
KSwgSW5kZXhlZERCOjpDdXJzb3JOZXh0KTsKICAgICBpZiAoYmFja2luZ1N0b3JlQ3Vyc29yKSB7
CiAgICAgICAgIGRvIHsKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHZvaWQgRGVsZXRlUmFuZ2VPcGVy
YXRpb246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24p
CiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y2xlYXIoaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpj
bGVhciIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
Y2xlYXIiKTsKICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiA9
IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9u
KQogICAgICAgICByZXR1cm47CkBAIC0xMDQ2LDcgKzEwNDYsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZExldmVsREI6OmNsZWFyKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZQogCiB2b2lkIENsZWFyT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uKQogewotICAgIElEQl9UUkFDRSgiT2JqZWN0U3RvcmVD
bGVhck9wZXJhdGlvbiIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiT2JqZWN0U3RvcmVDbGVhck9w
ZXJhdGlvbiIpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUtPmNsZWFyT2JqZWN0U3RvcmUodHJh
bnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmpl
Y3RTdG9yZUlkKSkgewogICAgICAgICBtX2NhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVy
cm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgIkVycm9yIGNs
ZWFyaW5nIG9iamVjdCBzdG9yZSIpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTA1Niw3ICsxMDU2
LDcgQEAgdm9pZCBDbGVhck9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbikKIAogdm9pZCBEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6
cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIHsKLSAg
ICBJREJfVFJBQ0UoIkRlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uIik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbiIpOwogICAgIGJvb2wgb2sgPSBtX2Jh
Y2tpbmdTdG9yZS0+ZGVsZXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uKCksIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5pZCgpLCBtX29iamVjdFN0b3Jl
TWV0YWRhdGEuaWQpOwogICAgIGlmICghb2spIHsKICAgICAgICAgUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJJbnRlcm5hbCBlcnJvciBkZWxldGlu
ZyBvYmplY3Qgc3RvcmUgJyVzJy4iLCBtX29iamVjdFN0b3JlTWV0YWRhdGEubmFtZS51dGY4KCku
ZGF0YSgpKSk7CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIERlbGV0ZU9iamVjdFN0b3JlT3Bl
cmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aQog
CiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb246
OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24pCiB7Ci0g
ICAgSURCX1RSQUNFKCJWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uIik7CisgICAgTE9HKFN0b3JhZ2VB
UEksICJWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uIik7CiAgICAgaW50NjRfdCBkYXRhYmFzZUlkID0g
bV9kYXRhYmFzZS0+aWQoKTsKICAgICB1aW50NjRfdCBvbGRWZXJzaW9uID0gbV9kYXRhYmFzZS0+
bV9tZXRhZGF0YS52ZXJzaW9uOwogCkBAIC0xMzYyLDIxICsxMzYyLDIxIEBAIHZvaWQgSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4gcHJwQ2FsbGJhCiAKIHZvaWQgQ3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbjo6cGVy
Zm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbikKIHsKLSAgICBJ
REJfVFJBQ0UoIkNyZWF0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb24iKTsKKyAgICBMT0coU3Rv
cmFnZUFQSSwgIkNyZWF0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb24iKTsKICAgICBBU1NFUlRf
VU5VU0VEKHRyYW5zYWN0aW9uLCAhdHJhbnNhY3Rpb24pOwogICAgIG1fZGF0YWJhc2UtPnJlbW92
ZU9iamVjdFN0b3JlKG1fb2JqZWN0U3RvcmVJZCk7CiB9CiAKIHZvaWQgRGVsZXRlT2JqZWN0U3Rv
cmVBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0
cmFuc2FjdGlvbikKIHsKLSAgICBJREJfVFJBQ0UoIkRlbGV0ZU9iamVjdFN0b3JlQWJvcnRPcGVy
YXRpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIkRlbGV0ZU9iamVjdFN0b3JlQWJvcnRPcGVy
YXRpb24iKTsKICAgICBBU1NFUlRfVU5VU0VEKHRyYW5zYWN0aW9uLCAhdHJhbnNhY3Rpb24pOwog
ICAgIG1fZGF0YWJhc2UtPmFkZE9iamVjdFN0b3JlKG1fb2JqZWN0U3RvcmVNZXRhZGF0YSwgSURC
T2JqZWN0U3RvcmVNZXRhZGF0YTo6SW52YWxpZElkKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpWZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRpb246OnBlcmZvcm0oSURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24pCiB7Ci0gICAgSURCX1RSQUNFKCJW
ZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRpb24iKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgIlZlcnNp
b25DaGFuZ2VBYm9ydE9wZXJhdGlvbiIpOwogICAgIEFTU0VSVF9VTlVTRUQodHJhbnNhY3Rpb24s
ICF0cmFuc2FjdGlvbik7CiAgICAgbV9kYXRhYmFzZS0+bV9tZXRhZGF0YS52ZXJzaW9uID0gbV9w
cmV2aW91c0ludFZlcnNpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxE
Qi5jcHAKaW5kZXggNGEzODEwNi4uMzNiNjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJh
Y2tlbmRMZXZlbERCLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdT
dG9yZUxldmVsREIuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKLSNpbmNsdWRlICJJREJUcmFjaW5nLmgi
CiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxldmVsREIuaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKSAmJiBVU0UoTEVWRUxEQikKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBJ
REJGYWN0b3J5QmFja2VuZExldmVsREI6OnJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBT
dHJpbmcmIHVuaXF1ZUlkZW4KIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZExldmVsREI6OmdldERh
dGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3RvcnkpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJGYWN0
b3J5QmFja2VuZExldmVsREI6OmdldERhdGFiYXNlTmFtZXMiKTsKKyAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6Z2V0RGF0YWJhc2VOYW1lcyIpOwogICAgIFJl
ZlB0cjxJREJCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IG9wZW5CYWNraW5nU3RvcmUoc2Vj
dXJpdHlPcmlnaW4sIGRhdGFEaXJlY3RvcnkpOwogICAgIGlmICghYmFja2luZ1N0b3JlKSB7CiAg
ICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0
YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgIkludGVybmFsIGVycm9yIG9wZW5pbmcgYmFj
a2luZyBzdG9yZSBmb3IgaW5kZXhlZERCLndlYmtpdEdldERhdGFiYXNlTmFtZXMuIikpOwpAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCOjpnZXREYXRhYmFz
ZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFjCiAKIHZvaWQgSURCRmFjdG9y
eUJhY2tlbmRMZXZlbERCOjpkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyZWN0b3J5KQogewotICAgIElEQl9UUkFDRSgiSURCRmFjdG9yeUJhY2tlbmRMZXZlbERC
OjpkZWxldGVEYXRhYmFzZSIpOworICAgIExPRyhTdG9yYWdlQVBJLCAiSURCRmFjdG9yeUJhY2tl
bmRMZXZlbERCOjpkZWxldGVEYXRhYmFzZSIpOwogICAgIGNvbnN0IFN0cmluZyB1bmlxdWVJZGVu
dGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlPcmlnaW4uZ2V0
KCkpOwogCiAgICAgSURCRGF0YWJhc2VCYWNrZW5kTWFwOjppdGVyYXRvciBpdCA9IG1fZGF0YWJh
c2VCYWNrZW5kTWFwLmZpbmQodW5pcXVlSWRlbnRpZmllcik7CkBAIC0xNjAsNyArMTYwLDcgQEAg
UGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6b3Bl
bkJhY2tpbmdTdG9yZShQYXNzUmVmUHQKIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZExldmVsREI6
Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHBycFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyZWN0b3J5KQogewotICAgIElEQl9UUkFDRSgiSURCRmFjdG9yeUJh
Y2tlbmRMZXZlbERCOjpvcGVuIik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJGYWN0b3J5QmFj
a2VuZExldmVsREI6Om9wZW4iKTsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5
T3JpZ2luID0gcHJwU2VjdXJpdHlPcmlnaW47CiAgICAgY29uc3QgU3RyaW5nIHVuaXF1ZUlkZW50
aWZpZXIgPSBjb21wdXRlVW5pcXVlSWRlbnRpZmllcihuYW1lLCBzZWN1cml0eU9yaWdpbi5nZXQo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwCmlu
ZGV4IDgwMTBlN2UuLmRkMTExM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRMZXZlbERCLmNwcApAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgIklEQktleS5oIgog
I2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgotI2luY2x1
ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIuY3BwCmluZGV4IGY4ODljMmIuLmQ2ZGI1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1
ZGUgIklEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUNh
bGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAi
SURCVHJhY2luZy5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERC
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk3
LDcgKzk3LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjphYm9ydCgpCiAK
IHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6YWJvcnQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPiBlcnJvcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREI6OmFib3J0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCOjphYm9ydCIpOwogICAgIGlmIChtX3N0YXRlID09IEZpbmlzaGVkKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI6OnN0YXJ0KCkKIAogdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCOjpjb21taXQoKQogewotICAgIElEQl9UUkFDRSgiSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQjo6Y29tbWl0Iik7CisgICAgTE9HKFN0b3JhZ2VBUEksICJJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCOjpjb21taXQiKTsKIAogICAgIC8vIEluIG11bHRpcHJvY2VzcyBwb3J0cywgZnJv
bnQtZW5kIG1heSBoYXZlIHJlcXVlc3RlZCBhIGNvbW1pdCBidXQgYW4gYWJvcnQgaGFzIGFscmVh
ZHkKICAgICAvLyBiZWVuIGluaXRpYXRlZCBhc3luY2hyb25vdXNseSBieSB0aGUgYmFjay1lbmQu
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpj
b21taXQoKQogCiB2b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OnRhc2tUaW1lckZp
cmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+KikKIHsKLSAgICBJREJfVFJB
Q0UoIklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OnRhc2tUaW1lckZpcmVkIik7CisgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjp0YXNrVGltZXJG
aXJlZCIpOwogICAgIEFTU0VSVCghaXNUYXNrUXVldWVFbXB0eSgpKTsKIAogICAgIGlmIChtX3N0
YXRlID09IFN0YXJ0UGVuZGluZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2NDE1Y2UuLjdkYmQxOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxNTEs
NyArMzE1MSw2IEBACiAJCTk3MTJBNUVGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rp
b25Nb25pdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmggKi87IH07CiAJCTk3MTJBNUYyMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzEyQTU5OTE1MDA0RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5oICovOyB9OwotCQk5NzEy
QTVGNDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhY2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OUIxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QlRyYWNpbmcuaCAqLzsgfTsKIAkJOTcxMkE1RjYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5z
YWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzEyQTU5RDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24uaCAqLzsgfTsKIAkJOTcx
MkE1RkUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBNTE1MDA0RURB
MDA0OEFGMTAgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLzsgfTsKIAkJOTcxMkE1RkYx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1QTYxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlZlcnNpb25DaGFuZ2VFdmVudC5oICovOyB9OwpAQCAtOTc2Niw3ICs5NzY1LDYgQEAK
IAkJOTcxMkE1OTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCUGVuZGluZ1RyYW5zYWN0
aW9uTW9uaXRvci5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0
aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5OTE1MDA0
RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBJREJSZXF1ZXN0Lmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTlBMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJREJSZXF1ZXN0LmlkbDsg
cGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5NzEyQTU5QjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhY2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFjaW5nLmg7IHBhdGggPSBNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFjaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk3MTJBNTlEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFuc2FjdGlvbi5oOyBwYXRoID0gTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBJREJUcmFuc2FjdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NUE1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcDsg
cGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc3NSw3ICsxNjc3Myw2IEBACiAJCQkJNTExRUYy
OTcxN0YwRkE2RjAwRTRGQTE2IC8qIElEQlJlcXVlc3QuY3BwICovLAogCQkJCTk3MTJBNTk5MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmggKi8sCiAJCQkJOTcxMkE1OUExNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlJlcXVlc3QuaWRsICovLAotCQkJCTk3MTJBNTlCMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJUcmFjaW5nLmggKi8sCiAJCQkJNTExRUYyOTgxN0YwRkE2RjAwRTRGQTE2IC8qIElE
QlRyYW5zYWN0aW9uLmNwcCAqLywKIAkJCQk5NzEyQTU5RDE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb24uaCAqLywKIAkJCQk5NzEyQTU5RTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJh
bnNhY3Rpb24uaWRsICovLApAQCAtMjI3NzQsNyArMjI3NzEsNiBAQAogCQkJCTk3MTJBNUVBMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcx
MkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3MTJBNUYyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzEyQTVGNDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJh
Y2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjYxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGRjE1MDA0RURBMDA0OEFG
MTAgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTcxRDU3
QzBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmlu
ZGV4IDkyYjYzZDUuLmI4ZjFiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAi
RE9NUmVxdWVzdFN0YXRlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5
UGF0aC5oIgotI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKICNpbmNsdWRlIDxydW50aW1lL0RhdGVJbnN0YW5j
ZS5oPgpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBib29sIGNhbkluamVjdE50aFZhbHVlT25L
ZXlQYXRoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByb290VmFsdWUsIGNvbnN0CiAKIGJvb2wg
aW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRl
LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IElEQktl
eVBhdGgmIGtleVBhdGgpCiB7Ci0gICAgSURCX1RSQUNFKCJpbmplY3RJREJLZXlJbnRvU2NyaXB0
VmFsdWUiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgImluamVjdElEQktleUludG9TY3JpcHRWYWx1
ZSIpOwogCiAgICAgQVNTRVJUKGtleVBhdGgudHlwZSgpID09IElEQktleVBhdGg6OlN0cmluZ1R5
cGUpOwogCkBAIC0yNTYsNyArMjU2LDcgQEAgYm9vbCBpbmplY3RJREJLZXlJbnRvU2NyaXB0VmFs
dWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIFBhc3NSZWZQdHI8SURCS2UKIAogUGFz
c1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoRE9N
UmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IFNjcmlwdFZhbHVlJiB2YWx1ZSwgY29u
c3QgSURCS2V5UGF0aCYga2V5UGF0aCkKIHsKLSAgICBJREJfVFJBQ0UoImNyZWF0ZUlEQktleUZy
b21TY3JpcHRWYWx1ZUFuZEtleVBhdGgiKTsKKyAgICBMT0coU3RvcmFnZUFQSSwgImNyZWF0ZUlE
QktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgiKTsKICAgICBBU1NFUlQoIWtleVBhdGguaXNO
dWxsKCkpOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gcmVxdWVzdFN0YXRlLT5leGVjKCk7CkBA
IC0yNzksNyArMjc5LDcgQEAgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21TY3Jp
cHRWYWx1ZUFuZEtleVBhdGgoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXMKIAogYm9vbCBjYW5Jbmpl
Y3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNv
bnN0IFNjcmlwdFZhbHVlJiBzY3JpcHRWYWx1ZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCkK
IHsKLSAgICBJREJfVFJBQ0UoImNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZSIpOworICAg
IExPRyhTdG9yYWdlQVBJLCAiY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlIik7CiAKICAg
ICBBU1NFUlQoa2V5UGF0aC50eXBlKCkgPT0gSURCS2V5UGF0aDo6U3RyaW5nVHlwZSk7CiAgICAg
VmVjdG9yPFN0cmluZz4ga2V5UGF0aEVsZW1lbnRzOwo=
</data>
<flag name="review"
          id="235321"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>