<?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>129447</bug_id>
          
          <creation_ts>2014-02-27 13:57:20 -0800</creation_ts>
          <short_desc>Web Replay: capture and replay Reload, Navigate, and Stop commands</short_desc>
          <delta_ts>2017-07-10 13:59:26 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>131043</dependson>
          <blocked>136290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bburg</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985335</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-27 13:57:20 -0800</bug_when>
    <thetext>We should capture and replay navigation commands that come through from WebKit2. These three are fairly easy to do, as they don&apos;t require 
messing around with the history.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995438</commentid>
    <comment_count>1</comment_count>
      <attachid>228081</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-28 13:44:16 -0700</bug_when>
    <thetext>Created attachment 228081
serialization of wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003092</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-22 16:21:36 -0700</bug_when>
    <thetext>This patch reuses some of the serialization methods from wkbug.com/131043.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004830</commentid>
    <comment_count>3</comment_count>
      <attachid>230349</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-28 18:56:42 -0700</bug_when>
    <thetext>Created attachment 230349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115073</commentid>
    <comment_count>4</comment_count>
      <attachid>230349</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-05 11:30:24 -0700</bug_when>
    <thetext>Comment on attachment 230349
Patch

Clearing r? flag as this patch is bit-rotted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327138</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-10 13:59:26 -0700</bug_when>
    <thetext>Closing web replay-related bugs until we resume working on the feature again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228081</attachid>
            <date>2014-03-28 13:44:16 -0700</date>
            <delta_ts>2014-04-28 18:56:38 -0700</delta_ts>
            <desc>serialization of wip</desc>
            <filename>bug-129447-20140328134344.patch</filename>
            <type>text/plain</type>
            <size>22981</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUyYjExODEyYjVhNGFl
YjkwODQ3NTgxYWNiYTBkZjZhOTc4MmE0Yy4uZTI0OGFkY2U5YzI3YTRmZGE0MjIyNGY1NDhiY2Fm
ZDNlZjhjNGJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAzLTI4ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IGNhcHR1cmUg
YW5kIHJlcGxheSBSZWxvYWQsIE5hdmlnYXRlLCBhbmQgU3RvcCBjb21tYW5kcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDQ3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisKKyAgICAgICAgKiByZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TG9hZFVSTFJlcXVlc3Q6OmRpc3BhdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkluaXRpYWxOYXZpZ2F0aW9uOjpkaXNwYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWxvYWRGcmFtZTo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcExvYWRpbmdGcmFt
ZTo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6VHJ5Q2xvc2VQYWdlOjpkaXNwYXRjaCk6
CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RW5jb2RpbmdUcmFpdHM8Rm9ybURhdGE+OjplbmNvZGVWYWx1ZSk6CisgICAgICAgIChKU0M6
OkVuY29kaW5nVHJhaXRzPEZvcm1EYXRhPjo6ZGVjb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpF
bmNvZGluZ1RyYWl0czxGb3JtRGF0YUVsZW1lbnQ+OjplbmNvZGVWYWx1ZSk6CisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPEZvcm1EYXRhRWxlbWVudD46OmRlY29kZVZhbHVlKToKKyAgICAg
ICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVxdWVzdD46OmVuY29kZVZhbHVlKToK
KyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVxdWVzdD46OmRlY29kZVZh
bHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8SFRUUEhlYWRlck1hcD46OmVuY29k
ZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8SFRUUEhlYWRlck1hcD46OmRl
Y29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8S2V5cHJlc3NDb21tYW5k
Pjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxLZXlwcmVzc0Nv
bW1hbmQ+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgIChKU0M6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dEFwcEtpdDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QXBwS2l0KToKKyAgICAgICAgKEpTQzo6RW5j
b2RpbmdUcmFpdHM8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlND
OjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAg
IChKU0M6OkVuY29kaW5nVHJhaXRzPFN1YnN0aXR1dGVEYXRhPjo6ZW5jb2RlVmFsdWUpOgorICAg
ICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxTdWJzdGl0dXRlRGF0YT46OmRlY29kZVZhbHVlKToK
KyAgICAgICAgKiByZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaDoKKyAgICAgICAgKiByZXBs
YXkvV2ViSW5wdXRzLmpzb246CisKIDIwMTQtMDMtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW01TRV0gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFNvdXJjZUJ1
ZmZlci5yZW1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlu
cHV0RGlzcGF0Y2hNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1
dERpc3BhdGNoTWV0aG9kcy5jcHAKaW5kZXggMTA0NWU2NWJmODA2YzJlYmRiNmYwYWMwMjkyM2Zh
NjYwMTdlNjczYS4uZmM1OWJkMDAzMWU5NGQ5NGVhZDk4MjdkNGQyYjlhYmM0Yzc2MzgzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2Rz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhv
ZHMuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvblNjaGVkdWxlci5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXBsYXlDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiVXNl
cklucHV0QnJpZGdlLmgiCiAKQEAgLTUzLDYgKzU0LDQxIEBAIHZvaWQgSW5pdGlhbE5hdmlnYXRp
b246OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAgY29udHJvbGxl
ci5wYWdlKCkubWFpbkZyYW1lKCkubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRp
b25DaGFuZ2UobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91cmwsIG1fcmVmZXJyZXIsIHRydWUs
IHRydWUpOwogfQogCit2b2lkIExvYWRVUkxSZXF1ZXN0OjpkaXNwYXRjaChSZXBsYXlDb250cm9s
bGVyJiBjb250cm9sbGVyKQoreworICAgIGNvbnRyb2xsZXIucGFnZSgpLmlucHV0UHJveHkoKS5s
b2FkVVJMUmVxdWVzdCgqbV9sb2FkUmVxdWVzdCk7Cit9CisKK3ZvaWQgSW5pdGlhbE5hdmlnYXRp
b246OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCit7CisgICAgY29udHJv
bGxlci5wYWdlKCkubWFpbkZyYW1lKCkubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91cmwsIG1fcmVmZXJyZXIsIHRy
dWUsIHRydWUpOworfQorCit2b2lkIFJlbG9hZEZyYW1lOjpkaXNwYXRjaChSZXBsYXlDb250cm9s
bGVyJiBjb250cm9sbGVyKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvY3VtZW50RnJv
bUZyYW1lSW5kZXgoJmNvbnRyb2xsZXIucGFnZSgpLCBtX2ZyYW1lSW5kZXgpOworICAgIEFTU0VS
VChkb2N1bWVudCk7CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAg
QVNTRVJUKGZyYW1lKTsKKworICAgIGNvbnRyb2xsZXIucGFnZSgpLmlucHV0UHJveHkoKS5yZWxv
YWRGcmFtZShmcmFtZSwgbV9lbmRUb0VuZFJlbG9hZCwgdHJ1ZSk7Cit9CisKK3ZvaWQgU3RvcExv
YWRpbmdGcmFtZTo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKK3sKKyAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb2N1bWVudEZyb21GcmFtZUluZGV4KCZjb250cm9sbGVy
LnBhZ2UoKSwgbV9mcmFtZUluZGV4KTsKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICBj
b250cm9sbGVyLnBhZ2UoKS5pbnB1dFByb3h5KCkuc3RvcExvYWRpbmdGcmFtZShmcmFtZSwgdHJ1
ZSk7Cit9CisKK3ZvaWQgVHJ5Q2xvc2VQYWdlOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBj
b250cm9sbGVyKQoreworICAgIGNvbnRyb2xsZXIucGFnZSgpLmlucHV0UHJveHkoKS50cnlDbG9z
ZVBhZ2UodHJ1ZSk7Cit9CisKIHZvaWQgSGFuZGxlS2V5UHJlc3M6OmRpc3BhdGNoKFJlcGxheUNv
bnRyb2xsZXImIGNvbnRyb2xsZXIpCiB7CiAgICAgY29udHJvbGxlci5wYWdlKCkudXNlcklucHV0
QnJpZGdlKCkuaGFuZGxlS2V5RXZlbnQocGxhdGZvcm1FdmVudCgpLCBJbnB1dFNvdXJjZTo6U3lu
dGhldGljKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9u
TWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMu
Y3BwCmluZGV4IDVjYjllZjE2YTNkMDY3MzU5NzBhMjk2YWYzNDNjZjllNDc0OGRmNmYuLjYyYjU5
MzMyNTNjYmJhODc4MDY1Zjc3YTY5ZjljNDkzZWU3YzE2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcApAQCAtMzEsMjAgKzMxLDMxIEBACiAj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAKICNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVwbGF5
SW5wdXRUeXBlcy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlICJV
UkwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KIAordXNpbmcgV2ViQ29yZTo6Rm9y
bURhdGE7Cit1c2luZyBXZWJDb3JlOjpGb3JtRGF0YUVsZW1lbnQ7Cit1c2luZyBXZWJDb3JlOjpG
cmFtZUxvYWRSZXF1ZXN0OwogdXNpbmcgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kOwordXNpbmcg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcDsKIHVzaW5nIFdlYkNvcmU6OkludFBvaW50OwogdXNpbmcg
V2ViQ29yZTo6TW91c2VCdXR0b247CiB1c2luZyBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OwogdXNp
bmcgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OwogdXNpbmcgV2ViQ29yZTo6UGxhdGZv
cm1Nb3VzZUV2ZW50OwordXNpbmcgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk7Cit1c2lu
ZyBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q7Cit1c2luZyBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeTsKIHVzaW5nIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOwordXNpbmcgV2Vi
Q29yZTo6U3Vic3RpdHV0ZURhdGE7CiB1c2luZyBXZWJDb3JlOjpVUkw7CiB1c2luZyBXZWJDb3Jl
OjppbnB1dFR5cGVzOwogCkBAIC03Miw2ICs4MywxODEgQEAgV0VCX1JFUExBWV9JTlBVVF9OQU1F
U19GT1JfRUFDSChJTVBPUlRfRlJPTV9XRUJDT1JFX05BTUVTUEFDRSkKIAogbmFtZXNwYWNlIEpT
QyB7CiAKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxGb3JtRGF0YT46OmVuY29kZVZhbHVl
KGNvbnN0IEZvcm1EYXRhJiBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYmFzZWQgb24gRm9ybURh
dGE6OmVuY29kZVZhbHVlRm9yQmFja0ZvcndhcmQsIGV4Y2VwdCB3ZSB1c2Uga2V5L3ZhbHVlIG9i
amVjdHMgaW5zdGVhZAorICAgIC8vIG9mIGEgYnl0ZSBhcnJheS4KKyAgICBFbmNvZGVkVmFsdWUg
ZW5jb2RlZERhdGEgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZU9iamVjdCgpOworICAgIGVuY29kZWRE
YXRhLnB1dDxib29sPihBU0NJSUxpdGVyYWwoImFsd2F5c1N0cmVhbSIpLCBkYXRhLmFsd2F5c1N0
cmVhbSgpKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8aW50NjRfdD4oQVNDSUlMaXRlcmFsKCJpZGVu
dGlmaWVyIiksIGRhdGEuaWRlbnRpZmllcigpKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8VmVjdG9y
PGNoYXI+PihBU0NJSUxpdGVyYWwoImJvdW5kYXJ5IiksIGRhdGEuYm91bmRhcnkoKSk7CisKKyAg
ICBFbmNvZGVkVmFsdWUgZW5jb2RlZEVsZW1lbnRzID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVBcnJh
eSgpOworICAgIGZvciAoY29uc3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50IDogZGF0YS5lbGVt
ZW50cygpKQorICAgICAgICBlbmNvZGVkRWxlbWVudHMuYXBwZW5kPEZvcm1EYXRhRWxlbWVudD4o
ZWxlbWVudCk7CisKKyAgICBlbmNvZGVkRGF0YS5wdXQ8RW5jb2RlZFZhbHVlPihBU0NJSUxpdGVy
YWwoImVsZW1lbnRzIiksIHN0ZDo6bW92ZShlbmNvZGVkRWxlbWVudHMpKTsKKyAgICByZXR1cm4g
ZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8Rm9ybURhdGE+OjpkZWNvZGVW
YWx1ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybURhdGE+JikKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitFbmNvZGVkVmFsdWUg
RW5jb2RpbmdUcmFpdHM8Rm9ybURhdGFFbGVtZW50Pjo6ZW5jb2RlVmFsdWUoY29uc3QgRm9ybURh
dGFFbGVtZW50JiBlbGVtZW50KQoreworICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkRGF0YSA9IEVu
Y29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CisgICAgZW5jb2RlZERhdGEucHV0PEZvcm1EYXRh
RWxlbWVudDo6VHlwZT4oQVNDSUlMaXRlcmFsKCJ0eXBlIiksIHN0YXRpY19jYXN0PEZvcm1EYXRh
RWxlbWVudDo6VHlwZT4oZWxlbWVudC5tX3R5cGUpKTsKKyAgICBzd2l0Y2ggKGVsZW1lbnQubV90
eXBlKSB7CisgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OmRhdGE6CisgICAgICAgIGVuY29kZWRE
YXRhLnB1dDxWZWN0b3I8Y2hhcj4+KEFTQ0lJTGl0ZXJhbCgiZGF0YSIpLCBlbGVtZW50Lm1fZGF0
YSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9ybURhdGFFbGVtZW50OjplbmNvZGVkRmls
ZToKKyAgICAgICAgZW5jb2RlZERhdGEucHV0PFN0cmluZz4oQVNDSUlMaXRlcmFsKCJmaWxlbmFt
ZSIpLCBlbGVtZW50Lm1fZmlsZW5hbWUpOworICAgICAgICBlbmNvZGVkRGF0YS5wdXQ8Ym9vbD4o
QVNDSUlMaXRlcmFsKCJzaG91bGRHZW5lcmF0ZUZpbGUiKSwgZWxlbWVudC5tX3Nob3VsZEdlbmVy
YXRlRmlsZSk7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgICAgIGVuY29kZWREYXRhLnB1dDxsb25n
IGxvbmc+KEFTQ0lJTGl0ZXJhbCgiZmlsZVN0YXJ0IiksIGVsZW1lbnQubV9maWxlU3RhcnQpOwor
ICAgICAgICBlbmNvZGVkRGF0YS5wdXQ8bG9uZyBsb25nPihBU0NJSUxpdGVyYWwoImZpbGVMZW5n
dGgiKSwgZWxlbWVudC5tX2ZpbGVMZW5ndGgpOworICAgICAgICBlbmNvZGVkRGF0YS5wdXQ8ZG91
YmxlPihBU0NJSUxpdGVyYWwoImV4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUiKSwgZWxlbWVu
dC5tX2V4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUpOworI2VuZGlmCisgICAgICAgIGJyZWFr
OworCisjaWYgRU5BQkxFKEJMT0IpCisgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRC
bG9iOgorICAgICAgICBlbmNvZGVkRGF0YS5wdXQ8VVJMPihBU0NJSUxpdGVyYWwoImJsb2JVUkwi
KSwgZWxlbWVudC5tX3VybCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorCisgICAg
cmV0dXJuIGVuY29kZWREYXRhOworfQorCitib29sIEVuY29kaW5nVHJhaXRzPEZvcm1EYXRhRWxl
bWVudD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxGb3JtRGF0
YUVsZW1lbnQ+JikKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVxdWVzdD46OmVu
Y29kZVZhbHVlKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgRW5jb2Rl
ZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKyAgICBl
bmNvZGVkRGF0YS5wdXQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoInNlY3VyaXR5T3JpZ2luIiksIHJl
cXVlc3QucmVxdWVzdGVyKCkgPyByZXF1ZXN0LnJlcXVlc3RlcigpLT50b1N0cmluZygpIDogIiIp
OworICAgIGVuY29kZWREYXRhLnB1dDxSZXNvdXJjZVJlcXVlc3Q+KEFTQ0lJTGl0ZXJhbCgicmVz
b3VyY2VSZXF1ZXN0IiksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIGVuY29kZWRE
YXRhLnB1dDxTdHJpbmc+KEFTQ0lJTGl0ZXJhbCgiZnJhbWVOYW1lIiksIHJlcXVlc3QuZnJhbWVO
YW1lKCkpOworICAgIGVuY29kZWREYXRhLnB1dDxib29sPihBU0NJSUxpdGVyYWwoImxvY2tIaXN0
b3J5IiksIHJlcXVlc3QubG9ja0hpc3RvcnkoKSk7CisgICAgZW5jb2RlZERhdGEucHV0PGJvb2w+
KEFTQ0lJTGl0ZXJhbCgic2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kiKSwgcmVxdWVzdC5zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeSgpKTsKKyAgICBpZiAocmVxdWVzdC5oYXNTdWJzdGl0dXRl
RGF0YSgpKQorICAgICAgICBlbmNvZGVkRGF0YS5wdXQ8U3Vic3RpdHV0ZURhdGE+KEFTQ0lJTGl0
ZXJhbCgic3Vic3RpdHV0ZURhdGEiKSwgcmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKKyAgICBy
ZXR1cm4gZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVx
dWVzdD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBzdGQ6OnVuaXF1
ZV9wdHI8RnJhbWVMb2FkUmVxdWVzdD4mIGlucHV0KQoreworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gc2VjdXJpdHlPcmlnaW47CisgICAgaWYgKCFlbmNvZGVkVmFsdWUuZ2V0PFNlY3VyaXR5
T3JpZ2luPihBU0NJSUxpdGVyYWwoInNlY3VyaXR5T3JpZ2luIiksIHNlY3VyaXR5T3JpZ2luKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVx
dWVzdD4gcmVzb3VyY2VSZXF1ZXN0OworICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxSZXNvdXJj
ZVJlcXVlc3Q+KEFTQ0lJTGl0ZXJhbCgicmVzb3VyY2VSZXF1ZXN0IiksIHJlc291cmNlUmVxdWVz
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmluZyBmcmFtZU5hbWU7CisgICAg
aWYgKCFlbmNvZGVkVmFsdWUuZ2V0PFN0cmluZz4oQVNDSUlMaXRlcmFsKCJmcmFtZU5hbWUiKSwg
ZnJhbWVOYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBsb2NrSGlzdG9y
eTsKKyAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8Ym9vbD4oQVNDSUlMaXRlcmFsKCJsb2NrSGlz
dG9yeSIpLCBsb2NrSGlzdG9yeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wg
c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7CisgICAgaWYgKCFlbmNvZGVkVmFsdWUuZ2V0PGJv
b2w+KEFTQ0lJTGl0ZXJhbCgic2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kiKSwgc2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3kpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3Vic3RpdHV0ZURhdGE+IHN1YnN0aXR1dGVEYXRhOworICAgIGVuY29kZWRWYWx1
ZS5nZXQ8U3Vic3RpdHV0ZURhdGE+KEFTQ0lJTGl0ZXJhbCgic3Vic3RpdHV0ZURhdGEiKSwgc3Vi
c3RpdHV0ZURhdGEpOworCisgICAgaWYgKHN1YnN0aXR1dGVEYXRhKQorICAgICAgICBpbnB1dCA9
IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVMb2FkUmVxdWVzdD4oc2VjdXJpdHlPcmlnaW4sICpyZXNv
dXJjZVJlcXVlc3QsIGZyYW1lTmFtZSwgKnN1YnN0aXR1dGVEYXRhKTsKKyAgICBlbHNlCisgICAg
ICAgIGlucHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxGcmFtZUxvYWRSZXF1ZXN0PihzZWN1cml0eU9y
aWdpbiwgKnJlc291cmNlUmVxdWVzdCwgZnJhbWVOYW1lKTsKKworICAgIGlucHV0LT5zZXRMb2Nr
SGlzdG9yeShsb2NrSGlzdG9yeSk7CisgICAgaW5wdXQtPnNldFNob3VsZENoZWNrTmV3V2luZG93
UG9saWN5KHNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEhUVFBIZWFkZXJNYXA+OjplbmNvZGVWYWx1
ZShjb25zdCBIVFRQSGVhZGVyTWFwJiBpbnB1dCkKK3sKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2Rl
ZERhdGEgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZU9iamVjdCgpOworICAgIEVuY29kZWRWYWx1ZSBr
ZXlzID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVBcnJheSgpOworICAgIEVuY29kZWRWYWx1ZSB2YWx1
ZXMgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZUFycmF5KCk7CisKKyAgICBmb3IgKGF1dG8gaXQgPSBp
bnB1dC5iZWdpbigpOyBpdCAhPSBpbnB1dC5lbmQoKTsgKytpdCkgeworICAgICAgICBrZXlzLmFw
cGVuZDxTdHJpbmc+KGl0LT5rZXkuc3RyaW5nKCkpOworICAgICAgICB2YWx1ZXMuYXBwZW5kPFN0
cmluZz4oaXQtPnZhbHVlKTsKKyAgICB9CisKKyAgICBlbmNvZGVkRGF0YS5wdXQ8RW5jb2RlZFZh
bHVlPihBU0NJSUxpdGVyYWwoImtleXMiKSwga2V5cyk7CisgICAgZW5jb2RlZERhdGEucHV0PEVu
Y29kZWRWYWx1ZT4oQVNDSUlMaXRlcmFsKCJ2YWx1ZXMiKSwgdmFsdWVzKTsKKworICAgIHJldHVy
biBlbmNvZGVkRGF0YTsKK30KKworYm9vbCBFbmNvZGluZ1RyYWl0czxIVFRQSGVhZGVyTWFwPjo6
ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0ZDo6dW5pcXVlX3B0cjxI
VFRQSGVhZGVyTWFwPiYgZGVjb2RlZFZhbHVlKQoreworICAgIHN0ZDo6dW5pcXVlX3B0cjxIVFRQ
SGVhZGVyTWFwPiBkZWNvZGVkSGVhZGVyTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxIVFRQSGVhZGVy
TWFwPigpOworCisgICAgVmVjdG9yPFN0cmluZz4gZGVjb2RlZEtleXM7CisgICAgaWYgKCFlbmNv
ZGVkVmFsdWUuZ2V0PFZlY3RvcjxTdHJpbmc+PihBU0NJSUxpdGVyYWwoImtleXMiKSwgZGVjb2Rl
ZEtleXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBkZWNv
ZGVkVmFsdWVzOworICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxWZWN0b3I8U3RyaW5nPj4oQVND
SUlMaXRlcmFsKCJ2YWx1ZXMiKSwgZGVjb2RlZFZhbHVlcykpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChkZWNvZGVkS2V5cy5zaXplKCkgIT0gZGVjb2RlZFZhbHVlcy5zaXplKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGVj
b2RlZEtleXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGRlY29kZWRIZWFkZXJNYXAtPmFkZChkZWNv
ZGVkS2V5c1tpXSwgZGVjb2RlZFZhbHVlc1tpXSk7CisKKyAgICBkZWNvZGVkVmFsdWUgPSBzdGQ6
Om1vdmUoZGVjb2RlZEhlYWRlck1hcCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNpZiBVU0Uo
QVBQS0lUKQorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEtleXByZXNzQ29tbWFuZD46OmVu
Y29kZVZhbHVlKGNvbnN0IEtleXByZXNzQ29tbWFuZCYgY29tbWFuZCkKK3sKKyAgICBFbmNvZGVk
VmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKworICAg
IEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgY29tbWFu
ZE5hbWUsIGNvbW1hbmQuY29tbWFuZE5hbWUpOworICAgIEVOQ09ERV9PUFRJT05BTF9TQ0FMQVJf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgY29tbWFuZC50ZXh0LCAh
Y29tbWFuZC50ZXh0LmlzRW1wdHkoKSk7CisKKyAgICByZXR1cm4gZW5jb2RlZFZhbHVlOworfQor
Citib29sIEVuY29kaW5nVHJhaXRzPEtleXByZXNzQ29tbWFuZD46OmRlY29kZVZhbHVlKEVuY29k
ZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBLZXlwcmVzc0NvbW1hbmQmIGRlY29kZWRWYWx1ZSkKK3sK
KyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGNv
bW1hbmROYW1lKTsKKyAgICBERUNPREVfT1BUSU9OQUxfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5j
b2RlZFZhbHVlLCBTdHJpbmcsIHRleHQpOworCisgICAgZGVjb2RlZFZhbHVlID0gdGV4dFdhc0Rl
Y29kZWQgPyBLZXlwcmVzc0NvbW1hbmQoY29tbWFuZE5hbWUsIHRleHQpIDogS2V5cHJlc3NDb21t
YW5kKGNvbW1hbmROYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY2xhc3MgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50QXBwS2l0IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCB7CitwdWJsaWM6CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50QXBwS2l0KGNvbnN0IFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3Rv
cjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKKyAgICAgICAgOiBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQoZXZlbnQpCisgICAgeworICAgICAgICBtX2hhbmRsZWRCeUlucHV0TWV0aG9kID0gaGFu
ZGxlZEJ5SW5wdXRNZXRob2Q7CisgICAgICAgIG1fY29tbWFuZHMgPSBjb21tYW5kczsKKyAgICB9
Cit9OworI2VuZGlmIC8vIFVTRShBUFBLSVQpCisKIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0
czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgTm9uZGV0ZXJt
aW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpCiB7CiAgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1
ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CkBAIC0xMjksMzcgKzMxNSw2IEBAIGJv
b2wgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT46OmRlY29kZVZhbHVl
KEVuY29kZWRWYWx1ZSYgZW5jb2RlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgVVNFKEFQ
UEtJVCkKLUVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxLZXlwcmVzc0NvbW1hbmQ+OjplbmNv
ZGVWYWx1ZShjb25zdCBLZXlwcmVzc0NvbW1hbmQmIGNvbW1hbmQpCi17Ci0gICAgRW5jb2RlZFZh
bHVlIGVuY29kZWRWYWx1ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7Ci0KLSAgICBF
TkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGNvbW1hbmRO
YW1lLCBjb21tYW5kLmNvbW1hbmROYW1lKTsKLSAgICBFTkNPREVfT1BUSU9OQUxfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHRleHQsIGNvbW1hbmQudGV4dCwgIWNv
bW1hbmQudGV4dC5pc0VtcHR5KCkpOwotCi0gICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKLX0KLQot
Ym9vbCBFbmNvZGluZ1RyYWl0czxLZXlwcmVzc0NvbW1hbmQ+OjpkZWNvZGVWYWx1ZShFbmNvZGVk
VmFsdWUmIGVuY29kZWRWYWx1ZSwgS2V5cHJlc3NDb21tYW5kJiBkZWNvZGVkVmFsdWUpCi17Ci0g
ICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCBjb21t
YW5kTmFtZSk7Ci0gICAgREVDT0RFX09QVElPTkFMX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29k
ZWRWYWx1ZSwgU3RyaW5nLCB0ZXh0KTsKLQotICAgIGRlY29kZWRWYWx1ZSA9IHRleHRXYXNEZWNv
ZGVkID8gS2V5cHJlc3NDb21tYW5kKGNvbW1hbmROYW1lLCB0ZXh0KSA6IEtleXByZXNzQ29tbWFu
ZChjb21tYW5kTmFtZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNsYXNzIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudEFwcEtpdCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQg
ewotcHVibGljOgotICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudEFwcEtpdChjb25zdCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCi0gICAgICAgIDogUGxhdGZvcm1LZXlib2FyZEV2
ZW50KGV2ZW50KQotICAgIHsKLSAgICAgICAgbV9oYW5kbGVkQnlJbnB1dE1ldGhvZCA9IGhhbmRs
ZWRCeUlucHV0TWV0aG9kOwotICAgICAgICBtX2NvbW1hbmRzID0gY29tbWFuZHM7Ci0gICAgfQot
fTsKLSNlbmRpZiAvLyBVU0UoQVBQS0lUKQotCiBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8
UGxhdGZvcm1LZXlib2FyZEV2ZW50Pjo6ZW5jb2RlVmFsdWUoY29uc3QgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50JiBpbnB1dCkKIHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2Rl
ZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKQEAgLTI1Myw2ICs0MDgsMjkgQEAgYm9vbCBFbmNvZGlu
Z1RyYWl0czxQbGF0Zm9ybU1vdXNlRXZlbnQ+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVu
Y29kZWRWYWx1ZSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRW5jb2RlZFZhbHVlIEVuY29kaW5n
VHJhaXRzPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVZhbHVlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZERhdGEgPSBFbmNvZGVkVmFs
dWU6OmNyZWF0ZU9iamVjdCgpOworICAgIGVuY29kZWREYXRhLnB1dDxVUkw+KEFTQ0lJTGl0ZXJh
bCgidXJsIiksIHJlcXVlc3QudXJsKCkpOworICAgIGVuY29kZWREYXRhLnB1dDxSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeT4oQVNDSUlMaXRlcmFsKCJjYWNoZVBvbGljeSIpLCByZXF1ZXN0LmNh
Y2hlUG9saWN5KCkpOworICAgIGVuY29kZWREYXRhLnB1dDxkb3VibGU+KEFTQ0lJTGl0ZXJhbCgi
dGltZW91dEludGVydmFsIiksIHJlcXVlc3QudGltZW91dEludGVydmFsKCkpOworICAgIGVuY29k
ZWREYXRhLnB1dDxVUkw+KEFTQ0lJTGl0ZXJhbCgiZmlyc3RQYXJ0eUZvckNvb2tpZXMiKSwgcmVx
dWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8U3RyaW5n
PihBU0NJSUxpdGVyYWwoImh0dHBNZXRob2QiKSwgcmVxdWVzdC5odHRwTWV0aG9kKCkpOworICAg
IGVuY29kZWREYXRhLnB1dDxIVFRQSGVhZGVyTWFwPihBU0NJSUxpdGVyYWwoImh0dHBIZWFkZXJz
IiksIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8VmVj
dG9yPFN0cmluZz4+KEFTQ0lJTGl0ZXJhbCgicmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNv
ZGluZ0ZhbGxiYWNrQXJyYXkiKSwgcmVxdWVzdC5yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVu
Y29kaW5nRmFsbGJhY2tBcnJheSgpKTsKKyAgICBpZiAoRm9ybURhdGEqIGJvZHkgPSByZXF1ZXN0
Lmh0dHBCb2R5KCkpCisgICAgICAgIGVuY29kZWREYXRhLnB1dDxGb3JtRGF0YT4oQVNDSUlMaXRl
cmFsKCJodHRwQm9keSIpLCAqYm9keSk7CisgICAgZW5jb2RlZERhdGEucHV0PGJvb2w+KEFTQ0lJ
TGl0ZXJhbCgiYWxsb3dDb29raWVzIiksIHJlcXVlc3QuYWxsb3dDb29raWVzKCkpOworICAgIGVu
Y29kZWREYXRhLnB1dDxSZXNvdXJjZUxvYWRQcmlvcml0eT4oQVNDSUlMaXRlcmFsKCJsb2FkUHJp
b3JpdHkiKSwgcmVxdWVzdC5wcmlvcml0eSgpKTsKKyAgICByZXR1cm4gZW5jb2RlZERhdGE7Cit9
CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlVmFsdWUoRW5j
b2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVxdWVzdD4mKQoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIEVuY29kZWRWYWx1ZSBF
bmNvZGluZ1RyYWl0czxTZWN1cml0eU9yaWdpbj46OmVuY29kZVZhbHVlKFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gaW5wdXQpCiB7CiAgICAgcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3JlYXRlU3RyaW5n
KGlucHV0LT50b1N0cmluZygpKTsKQEAgLTI2NCw2ICs0NDIsNDggQEAgYm9vbCBFbmNvZGluZ1Ry
YWl0czxTZWN1cml0eU9yaWdpbj46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZh
bHVlLCBSZWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPFN1YnN0aXR1dGVEYXRhPjo6ZW5jb2RlVmFsdWUoY29uc3QgU3Vic3RpdHV0ZURhdGEmIGRh
dGEpCit7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVh
dGVPYmplY3QoKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8U2hhcmVkQnVmZmVyPihBU0NJSUxpdGVy
YWwoImNvbnRlbnQiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5jb250ZW50KCktPmRhdGEo
KSwgZGF0YS5jb250ZW50KCktPnNpemUoKSkpOworICAgIGVuY29kZWREYXRhLnB1dDxTdHJpbmc+
KEFTQ0lJTGl0ZXJhbCgibWltZVR5cGUiKSwgZGF0YS5taW1lVHlwZSgpKTsKKyAgICBlbmNvZGVk
RGF0YS5wdXQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoInRleHRFbmNvZGluZyIpLCBkYXRhLnRleHRF
bmNvZGluZygpKTsKKyAgICBlbmNvZGVkRGF0YS5wdXQ8VVJMPihBU0NJSUxpdGVyYWwoImZhaWxp
bmdVUkwiKSwgZGF0YS5mYWlsaW5nVVJMKCkpOworICAgIGVuY29kZWREYXRhLnB1dDxVUkw+KEFT
Q0lJTGl0ZXJhbCgicmVzcG9uc2VVUkwiKSwgZGF0YS5yZXNwb25zZVVSTCgpKTsKKyAgICBlbmNv
ZGVkRGF0YS5wdXQ8Ym9vbD4oQVNDSUlMaXRlcmFsKCJzaG91bGRSZXZlYWxUb1Nlc3Npb25IaXN0
b3J5IiksIGRhdGEuc2hvdWxkUmV2ZWFsVG9TZXNzaW9uSGlzdG9yeSgpKTsKKyAgICByZXR1cm4g
ZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8U3Vic3RpdHV0ZURhdGE+Ojpk
ZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8U3Vi
c3RpdHV0ZURhdGE+JiBpbnB1dCkKK3sKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBjb250ZW50
OworICAgIGlmICghZW5jb2RlZERhdGEuZ2V0PFNoYXJlZEJ1ZmZlcj4oQVNDSUlMaXRlcmFsKCJj
b250ZW50IiksIGNvbnRlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJpbmcg
bWltZVR5cGU7CisgICAgaWYgKCFlbmNvZGVkRGF0YS5nZXQ8U3RyaW5nPihBU0NJSUxpdGVyYWwo
Im1pbWVUeXBlIiksIG1pbWVUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3Ry
aW5nIHRleHRFbmNvZGluZzsKKyAgICBpZiAoIWVuY29kZWREYXRhLmdldDxTdHJpbmc+KEFTQ0lJ
TGl0ZXJhbCgidGV4dEVuY29kaW5nIiksIHRleHRFbmNvZGluZykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFVSTCBmYWlsaW5nVVJMOworICAgIGlmICghZW5jb2RlZERhdGEuZ2V0PFVS
TD4oQVNDSUlMaXRlcmFsKCJmYWlsaW5nVVJMIiksIGZhaWxpbmdVUkwpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBVUkwgcmVzcG9uc2VVUkw7CisgICAgaWYgKCFlbmNvZGVkRGF0YS5n
ZXQ8VVJMPihBU0NJSUxpdGVyYWwoInJlc3BvbnNlVVJMIiksIHJlc3BvbnNlVVJMKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzaG91bGRSZXZlYWxUb1Nlc3Npb25IaXN0b3J5
OworICAgIGlmICghZW5jb2RlZERhdGEuZ2V0PGJvb2w+KEFTQ0lJTGl0ZXJhbCgic2hvdWxkUmV2
ZWFsVG9TZXNzaW9uSGlzdG9yeSIpLCBzaG91bGRSZXZlYWxUb1Nlc3Npb25IaXN0b3J5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW5wdXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFN1YnN0
aXR1dGVEYXRhPihjb250ZW50LCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCBmYWlsaW5nVVJMLCBy
ZXNwb25zZVVSTCwgc2hvdWxkUmV2ZWFsVG9TZXNzaW9uSGlzdG9yeSk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxVUkw+OjplbmNvZGVWYWx1ZShj
b25zdCBVUkwmIGlucHV0KQogewogICAgIHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmlu
ZyhpbnB1dC5zdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2Vy
aWFsaXphdGlvbk1ldGhvZHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9u
TWV0aG9kcy5oCmluZGV4IDdhZmEyMzJiNjI2ZGEwZGE1MDQ0MTgxYWJmNTJmOTUyN2Q5NzA1ZWIu
LjYwOWExZDE4NzQzMDc4ZDA2NjdlZTBlYmVhMzE5YzU4NjQ0OTk1ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oCkBAIC0zNiwxMyArMzYsMjAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGb3JtRGF0YTsK
K2NsYXNzIEZvcm1EYXRhRWxlbWVudDsKIGNsYXNzIEZyYW1lOworY2xhc3MgSFRUUEhlYWRlck1h
cDsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0
Zm9ybU1vdXNlRXZlbnQ7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBTZWN1cml0eU9y
aWdpbjsKK2NsYXNzIFN1YnN0aXR1dGVEYXRhOwogY2xhc3MgVVJMOwogCitzdHJ1Y3QgRnJhbWVM
b2FkUmVxdWVzdDsKKwogI2lmIFVTRShBUFBLSVQpCiBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwog
I2VuZGlmCkBAIC01MSw2ICs1OCwxMyBAQCBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogLy8gVGVt
cGxhdGUgc3BlY2lhbGl6YXRpb25zIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3Bh
Y2UgYXMgdGhlIHRlbXBsYXRlIGRlY2xhcmF0aW9uLgogbmFtZXNwYWNlIEpTQyB7CiAKK3RlbXBs
YXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q+IHsK
KyAgICB0eXBlZGVmIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgRGVjb2RlZFR5cGU7CisKKyAg
ICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QmIHZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFs
dWUmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdD4mIHZhbHVlKTsK
K307CisKICNpZiBVU0UoQVBQS0lUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7CiAgICAgdHlwZWRlZiBXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQgRGVjb2RlZFR5cGU7CkBAIC04MSw2ICs5NSwyMCBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ+IHsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50PiYgdmFsdWUpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CisgICAgdHlwZWRlZiBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0aWMgRW5jb2Rl
ZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgdmFsdWUp
OworICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+JiB2YWx1ZSk7Cit9OworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YT4geworICAgIHR5
cGVkZWYgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0aWMg
RW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJiB2
YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhPiYgdmFsdWUpOworfTsKKwogdGVtcGxh
dGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6VVJMPiB7CiAgICAgdHlwZWRlZiBX
ZWJDb3JlOjpVUkwgRGVjb2RlZFR5cGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9XZWJJbnB1dHMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNv
bgppbmRleCBlMjRmZDliYTQ4ODBjMDIzNTY5MmU3M2E2ODU0MTlhNGM2OWM2MTllLi5hYmViZTg5
ZjUxMTdlOTcwYjBhZWRlZDQ3MDE4OTk3YzhhZTMxMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dl
YklucHV0cy5qc29uCkBAIC0zOCw2ICszOCwxMSBAQAogICAgICAgICAgICAgICAgICJoZWFkZXIi
OiAicmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmgiCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIkZyYW1lTG9hZFJlcXVlc3QiLCAibW9kZSI6
ICJPV05FRCIsCisgICAgICAgICAgICAgICAgImZsYWdzIjogWyJTVFJVQ1QiXSwKKyAgICAgICAg
ICAgICAgICAiaGVhZGVyIjogImxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgiCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIk1vZGlmaWVycyIs
ICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ4X3QiLAogICAgICAgICAgICAgICAg
ICJlbmNsb3NpbmdfY2xhc3MiOiAiUGxhdGZvcm1FdmVudCIsCiAgICAgICAgICAgICAgICAgImZs
YWdzIjogWyJFTlVNIl0sCkBAIC02Myw2ICs2OCwzNCBAQAogICAgICAgICAgICAgICAgICJoZWFk
ZXIiOiAicGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIlJlc291cmNlTG9hZFByaW9yaXR5
IiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAiaW50OF90IiwKKyAgICAgICAgICAgICAg
ICAiZmxhZ3MiOiBbIkVOVU0iXSwKKyAgICAgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAg
ICAgICAgICAgICAgICAiUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgIlJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdyIsCisgICAgICAgICAgICAg
ICAgICAgICJSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyIsCisgICAgICAgICAgICAgICAgICAgICJS
ZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSIsCisgICAgICAgICAgICAgICAgICAgICJSZXNvdXJj
ZUxvYWRQcmlvcml0eUhpZ2giLAorICAgICAgICAgICAgICAgICAgICAiUmVzb3VyY2VMb2FkUHJp
b3JpdHlWZXJ5SGlnaCIKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJoZWFk
ZXIiOiAicGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZVJl
cXVlc3QiLCAibW9kZSI6ICJPV05FRCIsCisgICAgICAgICAgICAgICAgImhlYWRlciI6ICJwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdC5oIgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGlj
eSIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ4X3QiLAorICAgICAgICAgICAg
ICAgICJmbGFncyI6IFsiRU5VTSJdLAorICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAg
ICAgICAgICAgICAgICAgICJVc2VQcm90b2NvbENhY2hlUG9saWN5IiwKKyAgICAgICAgICAgICAg
ICAgICAgIlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIlJl
dHVybkNhY2hlRGF0YUVsc2VMb2FkIiwKKyAgICAgICAgICAgICAgICAgICAgIlJldHVybkNhY2hl
RGF0YURvbnRMb2FkIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhlYWRl
ciI6ICJwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdC5oIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWN1cml0eU9yaWdpbiIs
ICJtb2RlIjogIlNIQVJFRCIsCiAgICAgICAgICAgICAgICAgImhlYWRlciI6ICJwYWdlL1NlY3Vy
aXR5T3JpZ2luLmgiCiAgICAgICAgICAgICB9LApAQCAtMTU1LDYgKzE4OCwzMSBAQAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAiVVJMIiB9LAogICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicmVmZXJyZXIiLCAidHlwZSI6ICJTdHJpbmciIH0KICAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiTG9hZFVSTFJl
cXVlc3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBlbWJlZGRlciByZXF1ZXN0
ZWQgdGhhdCB0aGUgc3BlY2lmaWVkIGZyYW1lIHN0YXJ0IGEgbmV3IGxvYWQuIiwKKyAgICAgICAg
ICAgICJxdWV1ZSI6ICJFVkVOVF9MT09QIiwKKyAgICAgICAgICAgICJtZW1iZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9hZFJlcXVlc3QiLCAidHlwZSI6ICJGcmFtZUxvYWRS
ZXF1ZXN0IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogIlJlbG9hZEZyYW1lIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU
aGUgZW1iZWRkZXIgcmVxdWVzdGVkIHRoYXQgdGhlIHNwZWNpZmllZCBmcmFtZSBzaG91bGQgcmVs
b2FkLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAi
bWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSW5kZXgiLCAidHlw
ZSI6ICJpbnQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmRUb0VuZFJlbG9hZCIs
ICJ0eXBlIjogImJvb2wiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiU3RvcExvYWRpbmdGcmFtZSIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVGhlIGVtYmVkZGVyIHJlcXVlc3RlZCB0aGF0IHRoZSBzcGVjaWZpZWQgZnJh
bWUgc2hvdWxkIHN0b3AgbG9hZGluZy4iLAorICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xP
T1AiLAorICAgICAgICAgICAgIm1lbWJlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJmcmFtZUluZGV4IiwgInR5cGUiOiAiaW50IiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0K
ICAgICBdCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230349</attachid>
            <date>2014-04-28 18:56:42 -0700</date>
            <delta_ts>2015-08-05 11:30:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129447-20140428185619.patch</filename>
            <type>text/plain</type>
            <size>32226</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3Njg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM4ZGIyYWE4MjM1MTVj
YTBmYTkwYTlkNDhkZGFmMmNlOGFjNDZlMC4uMmNiNGJjN2ZiMWRkNzQ5YWNhNzIyNmJkNzI2ODkx
YzUxODhiMzUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0LTA0LTI4ICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBXZWIgUmVwbGF5
OiBjYXB0dXJlIGFuZCByZXBsYXkgUmVsb2FkLCBOYXZpZ2F0ZSwgYW5kIFN0b3AgY29tbWFuZHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQ0Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBjYXB0dXJpbmcgYW5kIHJlcGxheWluZyBiYXNpYyBuYXZpZ2F0aW9uIGNvbW1hbmRz
IHRoYXQKKyAgICAgICAgY29tZSB0byBXZWJDb3JlIGZyb20gV0sxL1dLMiBXZWJQcm9jZXNzLiBU
aGlzIGhhbmRsZXMgbW9zdCBVSS1kcml2ZW4KKyAgICAgICAgbmF2aWdhdGlvbiBjb21tYW5kcywg
c3VjaCBhcyBjbGlja2luZyB0aGUgc3RvcCBvciByZWxvYWQgYnV0dG9ucywgb3IKKyAgICAgICAg
bG9hZGluZyBhIGJvb2ttYXJrZWQgcGFnZSBieSBjbGlja2luZyBvbiB0aGUgYm9va21hcmsgZHVy
aW5nIGNhcHR1cmluZy4KKworICAgICAgICBUaGlzIHBhdGNoIG1vc3RseSBjb25zaXN0cyBvZiBh
IGxvdCBvZiBuZXcgc2VyaWFsaXphdGlvbiBtZXRob2RzLCBzaW5jZQorICAgICAgICBmcmFtZSBs
b2FkIHJlcXVlc3RzIHVzZSB0aGUgbGFyZ2UgUmVzb3VyY2VSZXF1ZXN0IGFuZCBGb3JtRGF0YSBj
bGFzc2VzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgIE5vdGUg
dG8gcmV2aWV3ZXI6IHRoaXMgcGF0Y2ggZGVwZW5kcyBvbiBjaGFuZ2VzIGluIHdrYnVnLmNvbS8x
MzEwNDMuCisKKyAgICAgICAgTm90ZSB0byByZXZpZXdlcjogdGhlcmUgYXJlIHN0aWxsIHNvbWUg
b3V0c3RhbmRpbmcgYnVncyBpbiB0aGUgc2VyaWFsaXphdGlvbgorICAgICAgICBjb2RlLCBhbmQg
YSBwZXJmb3JtYW5jZSBwcm9ibGVtIGluIHRoZSBpbnNwZWN0b3IgdGltZWxpbmVzIHdoaWNoIHBy
ZXZlbnQKKyAgICAgICAgbWUgZnJvbSBkZWJ1Z2dpbmcgdGhlIGlzc3VlIHF1aWNrbHkuIEknbGwg
ZmluaXNoIHRoaXMgcGF0Y2ggb25jZSBJJ20KKyAgICAgICAgYWJsZSB0byBkZWJ1ZyByZW1haW5p
bmcgaXNzdWVzLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1YnN0aXR1dGVEYXRhKTogTWFrZSBp
dCBjb25zdC4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA6IFVwZGF0ZSBsb2dnaW5nIHRvIG1hdGNoIG5ldworICAgICAgICBleHBsaWNpdCBzdG9yYWdl
IHNpemVzIGZvciByZXNvdXJjZSByZXF1ZXN0IGVudW1zLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5Lmg6IEFkZCBleHBsaWNpdCBzdG9yYWdlIHNp
emUgdG8KKyAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaDogQWRkIGV4cGxpY2l0IHN0b3JhZ2Ugc3Rp
emUgdG8KKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kuCisKKyAgICAgICAgKiBy
ZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwOiBBZGQgbmV3IGRpc3BhdGNoIG1l
dGhvZHMuCisgICAgICAgIChXZWJDb3JlOjpMb2FkVVJMUmVxdWVzdDo6ZGlzcGF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVsb2FkRnJhbWU6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3BMb2FkaW5nRnJhbWU6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlRyeUNsb3Nl
UGFnZTo6ZGlzcGF0Y2gpOgorCisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2Rz
LmNwcDogQWRkZWQgbmV3IGVuY29kZSgpL2RlY29kZSgpIG1ldGhvZHMKKyAgICAgICAgZm9yIGRh
dGEgc3RydWN0dXJlcyB1c2VkIHRyYW5zaXRpdmVseSBieSBGcmFtZUxvYWRSZXF1ZXN0IGFuZCBG
b3JtRGF0YS4KKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVxdWVzdD46
OmVuY29kZVZhbHVlKTogQWRkZWQuCisgICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPEZyYW1l
TG9hZFJlcXVlc3Q+OjpkZWNvZGVWYWx1ZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpFbmNvZGlu
Z1RyYWl0czxIVFRQSGVhZGVyTWFwPjo6ZW5jb2RlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6RW5jb2RpbmdUcmFpdHM8SFRUUEhlYWRlck1hcD46OmRlY29kZVZhbHVlKTogQWRkZWQuCisg
ICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVZhbHVl
KTogQWRkZWQuCisgICAgICAgIChKU0M6OkRlc2VyaWFsaXplZFJlc291cmNlUmVxdWVzdDo6RGVz
ZXJpYWxpemVkUmVzb3VyY2VSZXF1ZXN0KTogQWRkZWQuCisgICAgICAgIChKU0M6OkVuY29kaW5n
VHJhaXRzPFJlc291cmNlUmVxdWVzdD46OmRlY29kZVZhbHVlKTogQWRkZWQuCisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPFNoYXJlZEJ1ZmZlcj46OmVuY29kZVZhbHVlKTogQWRkZWQuCisg
ICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPFNoYXJlZEJ1ZmZlcj46OmRlY29kZVZhbHVlKTog
QWRkZWQuCisgICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPFN1YnN0aXR1dGVEYXRhPjo6ZW5j
b2RlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8U3Vic3RpdHV0
ZURhdGE+OjpkZWNvZGVWYWx1ZSk6IEFkZGVkLgorICAgICAgICAqIHJlcGxheS9TZXJpYWxpemF0
aW9uTWV0aG9kcy5oOgorCisgICAgICAgICogcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHA6IEZp
bGwgaW4gdGhlIGJyaWRnZSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgZm9yIHRoZSBuZXcgbmF2
aWdhdGlvbiBpbnB1dHMgaGFuZGxlZCBieSB0aGlzIHBhdGNoLgorICAgICAgICAoV2ViQ29yZTo6
VXNlcklucHV0QnJpZGdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5w
dXRCcmlkZ2U6OnJlbG9hZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRn
ZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6
OnRyeUNsb3NlUGFnZSk6CisKKyAgICAgICAgKiByZXBsYXkvV2ViSW5wdXRzLmpzb246IEFkZGVk
IG5ldyBkZWZpbml0aW9ucyBmb3IgdHlwZXMgRnJhbWVMb2FkUmVxdWVzdCwKKyAgICAgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHksIFJlc291cmNlUmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQ
b2xpY3kuIEFkZAorICAgICAgICBuZXcgaW5wdXRzIExvYWRVUkxSZXF1ZXN0LCBSZWxvYWRGcmFt
ZSwgU3RvcExvYWRpbmdGcmFtZS4KKwogMjAxNC0wNC0yMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdA
Y3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIFJlcGxheTogc2F2ZSBhbmQgcmVzdG9y
ZSBwYWdlIGhpc3Rvcnkgc3RhdGUgYXQgbWFpbiBmcmFtZSBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDgxMzg3MjkzY2VlMzFhMzE1YzlkYzE4MmZkMTY1MDE1NzY5OWRiODcuLmE2MjQ1ZmUwZWUx
MmFhYzFjMzgzMzM5OTNkNmJkYjhkZTQ0MGVkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNC0wNC0yOCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisK
KyAgICAgICAgV2ViIFJlcGxheTogY2FwdHVyZSBhbmQgcmVwbGF5IFJlbG9hZCwgTmF2aWdhdGUs
IGFuZCBTdG9wIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjk0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgcmVzb3VyY2UgbG9nZ2luZyBmb3JtYXR0ZXJzIGZvciBSZXNvdXJj
ZUxvYWRQcmlvcml0eS4gSXQgaXMgbm93CisgICAgICAgIGFuIGVudW0gd2l0aCB1aW50NjRfdC1z
aXplZCBzdG9yYWdlIHJhdGhlciB0aGFuIGludC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKToKKwog
MjAxNC0wNC0yMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAg
ICAgICAgV2ViIFJlcGxheTogc2F2ZSBhbmQgcmVzdG9yZSBwYWdlIGhpc3Rvcnkgc3RhdGUgYXQg
bWFpbiBmcmFtZSBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1
ZXN0LmgKaW5kZXggMWEyYmJmODQ5M2JmODlkOGE3MDhkOGUxNTIyMjJjMWY4ZTRiYjhhNC4uMWUy
ZjlhODdmZTk2MDk0MGRkOTZmNjJhNWNhNDMxZTIzNmFkYTdhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3Vic3RpdHV0ZURhdGE7IH0KICAgICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0
aXR1dGVEYXRhJiBkYXRhKSB7IG1fc3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9Ci0gICAgYm9vbCBo
YXNTdWJzdGl0dXRlRGF0YSgpIHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpOyB9
CisgICAgYm9vbCBoYXNTdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpOyB9CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBtX3JlcXVlc3RlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ5MGU0MDgwYjNkMTA4MzgzY2Q1ZTI4YzhhNDk5
Yjc5N2E5YWY0NTguLmFkYzM4MDEyOTk2YjI2ZmQ4MDFhMjlhZmJkNGRmM2UwMjYxYTk2OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiB7CiAg
ICAgVVJMIHVybCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgCi0gICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3Vy
Y2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5z
dHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3Qu
Y2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpLCByZXF1ZXN0LmZv
clByZWxvYWQoKSk7CisgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lbGxkLCBm
b3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLmxhdGlu
MSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LnBy
aW9yaXR5KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKTsKICAgICAKICAgICAvLyBJZiBvbmx5IHRo
ZSBmcmFnbWVudCBpZGVudGlmaWVycyBkaWZmZXIsIGl0IGlzIHRoZSBzYW1lIHJlc291cmNlLgog
ICAgIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZCh1
cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUxvYWRQcmlvcml0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUxvYWRQcmlvcml0eS5oCmluZGV4IDVhNzEwNGY5N2IxMjkyOGYwMWMzMWRlMDdjNmMzZTEyMzVh
ZjcxYWUuLjk0ZTcyMmVlMjc4MTliNmU3ZDY2ZDA2OTNmZDJjZDliOGYwNjkyZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9y
aXR5LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFJl
c291cmNlTG9hZFByaW9yaXR5IHsKK2VudW0gUmVzb3VyY2VMb2FkUHJpb3JpdHkgOiBpbnQ2NF90
IHsKICAgICAvLyBUaGUgdW5yZXNvbHZlZCBwcmlvcml0eSBpcyBoZXJlIGZvciB0aGUgY29udmVu
aWVuY2Ugb2YgdGhlIGNsaWVudHMuIEl0IHNob3VsZCBub3QgYmUgcGFzc2VkIHRvIHRoZSBSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkID0g
LTEsCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93ID0gMCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXgg
YWI3MmFkYThlNzM4ZjczYzc1ODUwZjY4MmNiYjE3YzUzNDU4YWQ2MS4uNTFlNDYyMjExMTk2N2Yy
YTI4MDA4MTI5NDNiNzNjZWUyNmI0ZDhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKQEAgLTM3LDcgKzM3LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgZW51bSBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeSB7CisgICAgZW51bSBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSA6IHVpbnQ2NF90IHsK
ICAgICAgICAgVXNlUHJvdG9jb2xDYWNoZVBvbGljeSwgLy8gbm9ybWFsIGxvYWQKICAgICAgICAg
UmVsb2FkSWdub3JpbmdDYWNoZURhdGEsIC8vIHJlbG9hZAogICAgICAgICBSZXR1cm5DYWNoZURh
dGFFbHNlTG9hZCwgLy8gYmFjay9mb3J3YXJkIG9yIGVuY29kaW5nIGNoYW5nZSAtIGFsbG93IHN0
YWxlIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERp
c3BhdGNoTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNw
YXRjaE1ldGhvZHMuY3BwCmluZGV4IDU5OTUzOGM4MzhkZmIzMzMyZjg2YTgyY2ZkOWI1OWM0YzVi
NWJmNWUuLjdjMDA2NmU2NjUxODQxYTY4NGRkNjg1YWNmOGZkMWEwOTJlODlmM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXBsYXlD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXphdGlvbk1ldGhvZHMuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJVc2VySW5w
dXRCcmlkZ2UuaCIKIApAQCAtNzAsNiArNzEsMzIgQEAgdm9pZCBJbml0aWFsaXplSGlzdG9yeTo6
ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICBjb250cm9sbGVyLnBh
Z2UoKS5tYWluRnJhbWUoKS5sb2FkZXIoKS5oaXN0b3J5KCkuc2V0Q3VycmVudEl0ZW0oY29udHJv
bGxlci5wYWdlKCkuYmFja0ZvcndhcmQoKS5jdXJyZW50SXRlbSgpKTsKIH0KIAordm9pZCBMb2Fk
VVJMUmVxdWVzdDo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKK3sKKyAg
ICBjb250cm9sbGVyLnBhZ2UoKS51c2VySW5wdXRCcmlkZ2UoKS5sb2FkUmVxdWVzdCgqbV9sb2Fk
UmVxdWVzdCk7Cit9CisKK3ZvaWQgUmVsb2FkRnJhbWU6OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xs
ZXImIGNvbnRyb2xsZXIpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVGcm9tRnJhbWVJbmRl
eCgmY29udHJvbGxlci5wYWdlKCksIG1fZnJhbWVJbmRleCk7CisgICAgQVNTRVJUKGZyYW1lKTsK
KworICAgIGNvbnRyb2xsZXIucGFnZSgpLnVzZXJJbnB1dEJyaWRnZSgpLnJlbG9hZEZyYW1lKGZy
YW1lLCBtX2VuZFRvRW5kUmVsb2FkLCBJbnB1dFNvdXJjZTo6U3ludGhldGljKTsKK30KKwordm9p
ZCBTdG9wTG9hZGluZ0ZyYW1lOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250cm9sbGVy
KQoreworICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lSW5kZXgoJmNvbnRyb2xsZXIu
cGFnZSgpLCBtX2ZyYW1lSW5kZXgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICBjb250cm9s
bGVyLnBhZ2UoKS51c2VySW5wdXRCcmlkZ2UoKS5zdG9wTG9hZGluZ0ZyYW1lKGZyYW1lLCBJbnB1
dFNvdXJjZTo6U3ludGhldGljKTsKK30KKwordm9pZCBUcnlDbG9zZVBhZ2U6OmRpc3BhdGNoKFJl
cGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCit7CisgICAgY29udHJvbGxlci5wYWdlKCkudXNl
cklucHV0QnJpZGdlKCkudHJ5Q2xvc2VQYWdlKElucHV0U291cmNlOjpTeW50aGV0aWMpOworfQor
CiB2b2lkIEhhbmRsZUtleVByZXNzOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250cm9s
bGVyKQogewogICAgIGNvbnRyb2xsZXIucGFnZSgpLnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUtl
eUV2ZW50KHBsYXRmb3JtRXZlbnQoKSwgSW5wdXRTb3VyY2U6OlN5bnRoZXRpYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAppbmRleCBhYjE4YjE1
ZTMxMjU0ZGY4Yjc0ZjZjN2RlMjNiMjk0ZWVhNGI3ODI2Li45ODA2MmRhOWRiZmM0YzQ2YjA4YmY1
ZDM3ZGI5YzBmODZmN2YxYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2Vy
aWFsaXphdGlvbk1ldGhvZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxp
emF0aW9uTWV0aG9kcy5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCisjaW5jbHVkZSAiSFRU
UEhlYWRlck1hcC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiTWFpbkZy
YW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDMsMTMgKzQ1LDE4IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1ZGUg
IlJlcGxheUlucHV0VHlwZXMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgi
CiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIHVzaW5n
IFdlYkNvcmU6OkZvcm1EYXRhOwogdXNpbmcgV2ViQ29yZTo6Rm9ybURhdGFFbGVtZW50OwordXNp
bmcgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDsKK3VzaW5nIFdlYkNvcmU6OkhUVFBIZWFkZXJN
YXA7CiB1c2luZyBXZWJDb3JlOjpIaXN0b3J5SXRlbTsKIHVzaW5nIFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZDsKIHVzaW5nIFdlYkNvcmU6OkludFBvaW50OwpAQCAtNjIsOCArNjksMTQgQEAgdXNp
bmcgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OwogdXNpbmcgV2ViQ29yZTo6UGxhdGZvcm1X
aGVlbEV2ZW50R3JhbnVsYXJpdHk7CiB1c2luZyBXZWJDb3JlOjpQbHVnaW5EYXRhOwogdXNpbmcg
V2ViQ29yZTo6UGx1Z2luSW5mbzsKK3VzaW5nIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5
OwordXNpbmcgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OwordXNpbmcgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0QmFzZTsKK3VzaW5nIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5
OwogdXNpbmcgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW47CiB1c2luZyBXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU7Cit1c2luZyBXZWJDb3JlOjpTaGFyZWRCdWZmZXI7Cit1c2luZyBXZWJD
b3JlOjpTdWJzdGl0dXRlRGF0YTsKIHVzaW5nIFdlYkNvcmU6OlVSTDsKIHVzaW5nIFdlYkNvcmU6
OmlucHV0VHlwZXM7CiAKQEAgLTE0Niw2ICsxNTksMzggQEAgRnJhbWUqIGZyYW1lRnJvbUZyYW1l
SW5kZXgoUGFnZSogcGFnZSwgdW5zaWduZWQgbG9uZyBmcmFtZUluZGV4KQogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEZyYW1lTG9hZFJlcXVlc3Q+Ojpl
bmNvZGVWYWx1ZShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIEVuY29k
ZWRWYWx1ZSBlbmNvZGVkRGF0YSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CisKKyAg
ICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCBzZWN1cml0eU9yaWdp
biwgcmVxdWVzdC5yZXF1ZXN0ZXIoKSA/IHJlcXVlc3QucmVxdWVzdGVyKCktPnRvU3RyaW5nKCkg
OiAiIik7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFJlc291cmNlUmVx
dWVzdCwgcmVzb3VyY2VSZXF1ZXN0LCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICBF
TkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCBmcmFtZU5hbWUsIHJlcXVl
c3QuZnJhbWVOYW1lKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBi
b29sLCBzaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSwgcmVxdWVzdC5zaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSgpKTsKKyAgICBFTkNPREVfT1BUSU9OQUxfVFlQRV9XSVRIX0tFWShlbmNvZGVk
RGF0YSwgU3Vic3RpdHV0ZURhdGEsIHN1YnN0aXR1dGVEYXRhLCByZXF1ZXN0LnN1YnN0aXR1dGVE
YXRhKCksIHJlcXVlc3QuaGFzU3Vic3RpdHV0ZURhdGEoKSk7CisKKyAgICByZXR1cm4gZW5jb2Rl
ZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8RnJhbWVMb2FkUmVxdWVzdD46OmRlY29k
ZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZERhdGEsIHN0ZDo6dW5pcXVlX3B0cjxGcmFtZUxv
YWRSZXF1ZXN0PiYgZGVjb2RlZFJlcXVlc3QpCit7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZERhdGEsIFNlY3VyaXR5T3JpZ2luLCBzZWN1cml0eU9yaWdpbik7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFJlc291cmNlUmVxdWVzdD4gcmVzb3VyY2VSZXF1ZXN0OworICAgIERFQ09ERV9U
WVBFX1dJVEhfS0VZX1RPX0xWQUxVRShlbmNvZGVkRGF0YSwgUmVzb3VyY2VSZXF1ZXN0LCByZXNv
dXJjZVJlcXVlc3QsIHJlc291cmNlUmVxdWVzdCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZERhdGEsIFN0cmluZywgZnJhbWVOYW1lKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tF
WShlbmNvZGVkRGF0YSwgYm9vbCwgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOworICAgIERF
Q09ERV9PUFRJT05BTF9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdWJzdGl0dXRlRGF0YSwg
c3Vic3RpdHV0ZURhdGEpOworCisgICAgZGVjb2RlZFJlcXVlc3QgPSBzdGQ6Om1ha2VfdW5pcXVl
PEZyYW1lTG9hZFJlcXVlc3Q+KHNlY3VyaXR5T3JpZ2luLmdldCgpLCAqcmVzb3VyY2VSZXF1ZXN0
KTsKKyAgICBkZWNvZGVkUmVxdWVzdC0+c2V0RnJhbWVOYW1lKGZyYW1lTmFtZSk7CisgICAgZGVj
b2RlZFJlcXVlc3QtPnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHNob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KTsKKworICAgIGlmIChzdWJzdGl0dXRlRGF0YVdhc0RlY29kZWQpCisgICAg
ICAgIGRlY29kZWRSZXF1ZXN0LT5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdGVtcGxhdGU8PgogRW5jb2RlZFZhbHVlIEVuY29kaW5n
VHJhaXRzPE1pbWVDbGFzc0luZm8+OjplbmNvZGVWYWx1ZShjb25zdCBNaW1lQ2xhc3NJbmZvJiBp
bnB1dCkKIHsKQEAgLTE3MSw2ICsyMTYsNDIgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxNaW1lQ2xh
c3NJbmZvPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkRGF0YSwgTWltZUMKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGU8PgorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPEhUVFBIZWFkZXJNYXA+OjplbmNvZGVWYWx1ZShjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFk
ZXJzKQoreworICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkRGF0YSA9IEVuY29kZWRWYWx1ZTo6Y3Jl
YXRlT2JqZWN0KCk7CisgICAgVmVjdG9yPFN0cmluZz4gaGVhZGVyTmFtZXMgPSBWZWN0b3I8U3Ry
aW5nPihoZWFkZXJzLnNpemUoKSk7CisgICAgVmVjdG9yPFN0cmluZz4gaGVhZGVyVmFsdWVzID0g
VmVjdG9yPFN0cmluZz4oaGVhZGVycy5zaXplKCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6
IGhlYWRlcnMpIHsKKyAgICAgICAgaGVhZGVyTmFtZXMuYXBwZW5kKGVudHJ5LmtleS5zdHJpbmco
KSk7CisgICAgICAgIGhlYWRlclZhbHVlcy5hcHBlbmQoZW50cnkudmFsdWUpOworICAgIH0KKwor
ICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwga2V5
cywgaGVhZGVyTmFtZXMpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBW
ZWN0b3I8U3RyaW5nPiwgdmFsdWVzLCBoZWFkZXJWYWx1ZXMpOworCisgICAgcmV0dXJuIGVuY29k
ZWREYXRhOworfQorCit0ZW1wbGF0ZTw+Citib29sIEVuY29kaW5nVHJhaXRzPEhUVFBIZWFkZXJN
YXA+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBIVFRQSGVhZGVyTWFw
JiBkZWNvZGVkVmFsdWUpCit7CisgICAgSFRUUEhlYWRlck1hcCBkZWNvZGVkSGVhZGVyTWFwOwor
CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFZlY3RvcjxTdHJpbmc+LCBr
ZXlzKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgVmVjdG9yPFN0cmlu
Zz4sIHZhbHVlcyk7CisKKyAgICBpZiAoa2V5cy5zaXplKCkgIT0gdmFsdWVzLnNpemUoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNp
emUoKTsgKytpKQorICAgICAgICBkZWNvZGVkSGVhZGVyTWFwLmFkZChrZXlzW2ldLCB2YWx1ZXNb
aV0pOworCisgICAgZGVjb2RlZFZhbHVlID0gZGVjb2RlZEhlYWRlck1hcDsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJ
bnB1dEJhc2U+OjplbmNvZGVWYWx1ZShjb25zdCBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlJiBp
bnB1dCkKIHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpj
cmVhdGVPYmplY3QoKTsKQEAgLTY4Miw2ICs3NjMsNzYgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxQ
bHVnaW5JbmZvPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkRGF0YSwgUGx1Z2lu
SW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFJl
c291cmNlUmVxdWVzdD46OmVuY29kZVZhbHVlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZERhdGEgPSBFbmNvZGVkVmFsdWU6OmNyZWF0
ZU9iamVjdCgpOworCisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwg
dXJsLCByZXF1ZXN0LnVybCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0
YSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3ksIGNhY2hlUG9saWN5LCByZXF1ZXN0LmNhY2hl
UG9saWN5KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBkb3VibGUs
IHRpbWVvdXRJbnRlcnZhbCwgcmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwoKSk7CisgICAgRU5DT0RF
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIHJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZERhdGEsIFN0cmluZywgaHR0cE1ldGhvZCwgcmVxdWVzdC5odHRwTWV0aG9kKCkpOwor
ICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBIVFRQSGVhZGVyTWFwLCBodHRw
SGVhZGVycywgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpOworICAgIEVOQ09ERV9UWVBFX1dJ
VEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwgcmVzcG9uc2VDb250ZW50RGlzcG9z
aXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXksIHJlcXVlc3QucmVzcG9uc2VDb250ZW50RGlzcG9z
aXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoKSk7CisgICAgRU5DT0RFX09QVElPTkFMX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZERhdGEsIEZvcm1EYXRhLCBodHRwQm9keSwgcmVxdWVzdC5odHRwQm9k
eSgpLCByZXF1ZXN0Lmh0dHBCb2R5KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29k
ZWREYXRhLCBib29sLCBhbGxvd0Nvb2tpZXMsIHJlcXVlc3QuYWxsb3dDb29raWVzKCkpOworICAg
IEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBSZXNvdXJjZUxvYWRQcmlvcml0eSwg
bG9hZFByaW9yaXR5LCByZXF1ZXN0LnByaW9yaXR5KCkpOworCisgICAgcmV0dXJuIGVuY29kZWRE
YXRhOworfQorCitjbGFzcyBEZXNlcmlhbGl6ZWRSZXNvdXJjZVJlcXVlc3QgOiBwdWJsaWMgUmVz
b3VyY2VSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBEZXNlcmlhbGl6ZWRSZXNvdXJjZVJlcXVlc3Qo
Y29uc3QgSFRUUEhlYWRlck1hcCYgaGVhZGVycykKKyAgICB7CisgICAgICAgIG1faHR0cEhlYWRl
ckZpZWxkcyA9IGhlYWRlcnM7CisgICAgfQorfTsKKworYm9vbCBFbmNvZGluZ1RyYWl0czxSZXNv
dXJjZVJlcXVlc3Q+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBzdGQ6
OnVuaXF1ZV9wdHI8UmVzb3VyY2VSZXF1ZXN0PiYgZGVjb2RlZFJlcXVlc3QpCit7CisgICAgREVD
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwgdXJsKTsKKyAgICBERUNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3ksIGNhY2hl
UG9saWN5KTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgZG91YmxlLCB0
aW1lb3V0SW50ZXJ2YWwpOworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBV
UkwsIGZpcnN0UGFydHlGb3JDb29raWVzKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNv
ZGVkRGF0YSwgU3RyaW5nLCBodHRwTWV0aG9kKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShl
bmNvZGVkRGF0YSwgSFRUUEhlYWRlck1hcCwgaHR0cEhlYWRlcnMpOworICAgIERFQ09ERV9UWVBF
X1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwgcmVzcG9uc2VDb250ZW50RGlz
cG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOworICAgIERFQ09ERV9PUFRJT05BTF9UWVBF
X1dJVEhfS0VZKGVuY29kZWREYXRhLCBGb3JtRGF0YSwgaHR0cEJvZHkpOworICAgIERFQ09ERV9U
WVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBib29sLCBhbGxvd0Nvb2tpZXMpOworICAgIERFQ09E
RV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBSZXNvdXJjZUxvYWRQcmlvcml0eSwgbG9hZFBy
aW9yaXR5KTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXNlcmlhbGl6ZWRSZXNvdXJjZVJlcXVl
c3Q+IHJlcXVlc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERlc2VyaWFsaXplZFJlc291cmNlUmVxdWVz
dD4oaHR0cEhlYWRlcnMpOworICAgIHJlcXVlc3QtPnNldENhY2hlUG9saWN5KGNhY2hlUG9saWN5
KTsKKyAgICByZXF1ZXN0LT5zZXRUaW1lb3V0SW50ZXJ2YWwodGltZW91dEludGVydmFsKTsKKyAg
ICByZXF1ZXN0LT5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhmaXJzdFBhcnR5Rm9yQ29va2llcyk7
CisgICAgcmVxdWVzdC0+c2V0SFRUUE1ldGhvZChodHRwTWV0aG9kKTsKKyAgICByZXF1ZXN0LT5z
ZXRQcmlvcml0eShsb2FkUHJpb3JpdHkpOworICAgIHJlcXVlc3QtPnNldEFsbG93Q29va2llcyhh
bGxvd0Nvb2tpZXMpOworCisgICAgaW50IGZhbGxiYWNrRW5jb2RpbmdDb3VudCA9IHJlc3BvbnNl
Q29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5LnNpemUoKTsKKyAgICBpZiAo
ZmFsbGJhY2tFbmNvZGluZ0NvdW50IDwgMCB8fCBmYWxsYmFja0VuY29kaW5nQ291bnQgPiAzKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJpbmcgZW5jb2RpbmcxOworICAgIFN0cmlu
ZyBlbmNvZGluZzI7CisgICAgU3RyaW5nIGVuY29kaW5nMzsKKyAgICBpZiAoZmFsbGJhY2tFbmNv
ZGluZ0NvdW50ID49IDEpCisgICAgICAgIGVuY29kaW5nMSA9IHJlc3BvbnNlQ29udGVudERpc3Bv
c2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5WzBdOworICAgIGlmIChmYWxsYmFja0VuY29kaW5n
Q291bnQgPj0gMikKKyAgICAgICAgZW5jb2RpbmcyID0gcmVzcG9uc2VDb250ZW50RGlzcG9zaXRp
b25FbmNvZGluZ0ZhbGxiYWNrQXJyYXlbMV07CisgICAgaWYgKGZhbGxiYWNrRW5jb2RpbmdDb3Vu
dCA+PSAzKQorICAgICAgICBlbmNvZGluZzMgPSByZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVu
Y29kaW5nRmFsbGJhY2tBcnJheVsyXTsKKyAgICBpZiAoZmFsbGJhY2tFbmNvZGluZ0NvdW50ID4g
MCkKKyAgICAgICAgcmVxdWVzdC0+c2V0UmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGlu
Z0ZhbGxiYWNrQXJyYXkoZW5jb2RpbmcxLCBlbmNvZGluZzIsIGVuY29kaW5nMyk7CisKKyAgICBp
ZiAoaHR0cEJvZHlXYXNEZWNvZGVkKQorICAgICAgICByZXF1ZXN0LT5zZXRIVFRQQm9keShodHRw
Qm9keSk7CisKKyAgICBkZWNvZGVkUmVxdWVzdCA9IHN0ZDo6bW92ZShyZXF1ZXN0KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFNlY3VyaXR5T3Jp
Z2luPjo6ZW5jb2RlVmFsdWUoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBpbnB1dCkKIHsKICAgICBy
ZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoaW5wdXQtPnRvU3RyaW5nKCkpOwpAQCAt
NzA0LDYgKzg1NSw1MCBAQCBib29sIEVuY29kaW5nVHJhaXRzPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbAogICAgIHJldHVybiB0cnVl
OwogfQogCitFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8U2hhcmVkQnVmZmVyPjo6ZW5jb2Rl
VmFsdWUoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQoreworICAgIHJldHVybiBFbmNvZGVk
VmFsdWU6OmNyZWF0ZVN0cmluZyhiYXNlNjRFbmNvZGUoYnVmZmVyLT5kYXRhKCkpKTsKK30KKwor
Ym9vbCBFbmNvZGluZ1RyYWl0czxTaGFyZWRCdWZmZXI+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFs
dWUmIGVuY29kZWRCdWZmZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiBkZWNvZGVkQnVmZmVyKQor
eworICAgIFZlY3RvcjxjaGFyPiBkZWNvZGVkQ2hhcnM7CisgICAgYmFzZTY0RGVjb2RlKGVuY29k
ZWRCdWZmZXIuY29udmVydFRvPFN0cmluZz4oKSwgZGVjb2RlZENoYXJzKTsKKyAgICBkZWNvZGVk
QnVmZmVyID0gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihkZWNvZGVkQ2hhcnMpOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPD4KK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0
czxTdWJzdGl0dXRlRGF0YT46OmVuY29kZVZhbHVlKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRh
KQoreworICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkRGF0YSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRl
T2JqZWN0KCk7CisKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU2hhcmVk
QnVmZmVyLCBjb250ZW50LCBkYXRhLmNvbnRlbnQoKS0+Y29weSgpKTsKKyAgICBFTkNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCBtaW1lVHlwZSwgZGF0YS5taW1lVHlwZSgp
KTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCB0ZXh0RW5j
b2RpbmcsIGRhdGEudGV4dEVuY29kaW5nKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVu
Y29kZWREYXRhLCBVUkwsIGZhaWxpbmdVUkwsIGRhdGEuZmFpbGluZ1VSTCgpKTsKKyAgICBFTkNP
REVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgVVJMLCByZXNwb25zZVVSTCwgZGF0YS5yZXNw
b25zZVVSTCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgYm9vbCwg
c2hvdWxkUmV2ZWFsVG9TZXNzaW9uSGlzdG9yeSwgZGF0YS5zaG91bGRSZXZlYWxUb1Nlc3Npb25I
aXN0b3J5KCkpOworCisgICAgcmV0dXJuIGVuY29kZWREYXRhOworfQorCit0ZW1wbGF0ZTw+Citi
b29sIEVuY29kaW5nVHJhaXRzPFN1YnN0aXR1dGVEYXRhPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZh
bHVlJiBlbmNvZGVkRGF0YSwgU3Vic3RpdHV0ZURhdGEmIGRlY29kZWREYXRhKQoreworCisgICAg
REVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFNoYXJlZEJ1ZmZlciwgY29udGVudCk7
CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgbWltZVR5cGUp
OworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcsIHRleHRFbmNv
ZGluZyk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwgZmFpbGlu
Z1VSTCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwgcmVzcG9u
c2VVUkwpOworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBib29sLCBzaG91
bGRSZXZlYWxUb1Nlc3Npb25IaXN0b3J5KTsKKworICAgIGRlY29kZWREYXRhID0gU3Vic3RpdHV0
ZURhdGEoY29udGVudCwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgZmFpbGluZ1VSTCwgcmVzcG9u
c2VVUkwsIHNob3VsZFJldmVhbFRvU2Vzc2lvbkhpc3RvcnkpOworICAgIHJldHVybiB0cnVlOwor
fQorCiBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8VVJMPjo6ZW5jb2RlVmFsdWUoY29uc3Qg
VVJMJiBpbnB1dCkKIHsKICAgICByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoaW5w
dXQuc3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6
YXRpb25NZXRob2RzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhv
ZHMuaAppbmRleCA2MGY2YTY1MGIwZDA3ZjY3MWJlYzZkYTExYjE5NzBlM2QxOWM4OTM2Li5mNzhi
ZTEwZTEwMGY5NDEwMmVhNzBiZjAzYTQxMmM1ODE2Mzc2ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaApAQCAtMzksMTYgKzM5LDIyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRm9ybURhdGE7CiBjbGFzcyBG
cmFtZTsKK2NsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZl
bnQ7CiBjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CiBjbGFzcyBQbHVnaW5EYXRhOworY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CitjbGFzcyBTaGFyZWRCdWZmZXI7CitjbGFzcyBTdWJzdGl0dXRlRGF0YTsK
IGNsYXNzIFVSTDsKIAorc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CisgICAgCiAjaWYgVVNFKEFQ
UEtJVCkKIHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CiAjZW5kaWYKQEAgLTYzLDYgKzY5LDEzIEBA
IEZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2UqLCB1bnNpZ25lZCBsb25nIGZyYW1lSW5k
ZXgpOwogLy8gVGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUg
c2FtZSBuYW1lc3BhY2UgYXMgdGhlIHRlbXBsYXRlIGRlY2xhcmF0aW9uLgogbmFtZXNwYWNlIEpT
QyB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3Q+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgRGVjb2Rl
ZFR5cGU7CisKKyAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNv
cmU6OkZyYW1lTG9hZFJlcXVlc3QmIHZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1
ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dD4mIHZhbHVlKTsKK307CisKICNpZiBVU0UoQVBQS0lUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgRW5j
b2RpbmdUcmFpdHM8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7CiAgICAgdHlwZWRlZiBXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQgRGVjb2RlZFR5cGU7CkBAIC0xMjgsNiArMTQxLDEzIEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OlVSTD4gewogICAgIHN0YXRp
YyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFdlYkNvcmU6OlVSTCYgdmFsdWUpOwog
fTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0PiB7CisgICAgdHlwZWRlZiBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgRGVjb2RlZFR5
cGU7CisKKyAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgdmFsdWUpOworICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVu
Y29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+JiB2
YWx1ZSk7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4gewogICAgIHR5cGVkZWYgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiBEZWNvZGVkVHlwZTsKIApAQCAtMTQyLDYgKzE2MiwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBSZWZQdHI8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdU
cmFpdHM8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiB7CisgICAgdHlwZWRlZiBSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiBEZWNvZGVkVHlwZTsKKyAgICBzdGF0aWMgSlNfRVhQT1JUX1BSSVZB
VEUgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
KTsKKyAgICBzdGF0aWMgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVk
VmFsdWUmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYpOworfTsKKwogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKaW5kZXggMzY0YTNmMDczZDMzMTBjZDY4YWY3NTZm
ZTZkOTU0NTZiOGUyMDFlMC4uOTY1ZDcwNjMzOTIzYmUyNzI4MDhmNWZmN2EyODk4NDY1ZmNhMmIx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKQEAgLTUxLDYg
KzUxLDEzIEBACiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgXAogICAgIH0gd2hpbGUgKGZhbHNl
KQogCisjZGVmaW5lIEVBUkxZX1ZPSURfUkVUVVJOX0lGX1NIT1VMRF9JR05PUkVfSU5QVVQgXAor
ZG8geyBcCitpZiAoaW5wdXRTb3VyY2UgPT0gSW5wdXRTb3VyY2U6OlVzZXIgJiYgbV9zdGF0ZSA9
PSBVc2VySW5wdXRCcmlkZ2U6OlN0YXRlOjpSZXBsYXlpbmcpIFwKK3JldHVybjsgXAorfSB3aGls
ZSAoZmFsc2UpCisKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBVc2VySW5wdXRCcmlkZ2U6OlVz
ZXJJbnB1dEJyaWRnZShQYWdlJiBwYWdlKQpAQCAtMjMyLDIzICsyMzksNzUgQEAgYm9vbCBVc2Vy
SW5wdXRCcmlkZ2U6OmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0
aW9uIGRpcmVjdGlvbiwKICAgICByZXR1cm4gbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShk
aXJlY3Rpb24sIGdyYW51bGFyaXR5LCBudWxscHRyKTsKIH0KIAotdm9pZCBVc2VySW5wdXRCcmlk
Z2U6OmxvYWRSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIElucHV0U291
cmNlKQordm9pZCBVc2VySW5wdXRCcmlkZ2U6OmxvYWRSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIElucHV0U291cmNlIGlucHV0U291cmNlKQogeworI2lmIEVOQUJMRShX
RUJfUkVQTEFZKQorICAgIEVBUkxZX1ZPSURfUkVUVVJOX0lGX1NIT1VMRF9JR05PUkVfSU5QVVQ7
CisKKyAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vyc29yKCk7CisgICAgaWYgKGN1
cnNvci5pc0NhcHR1cmluZygpKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxGcmFtZUxvYWRS
ZXF1ZXN0PiBvd25lZFJlcXVlc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lTG9hZFJlcXVlc3Q+
KHJlcXVlc3QpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8TG9hZFVSTFJlcXVlc3Q+KHN0
ZDo6bW92ZShvd25lZFJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBFdmVudExvb3BJbnB1dEV4dGVu
dCBleHRlbnQoY3Vyc29yKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlucHV0U291cmNlKTsK
KyNlbmRpZgorCiAgICAgbV9wYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmxvYWQocmVxdWVzdCk7
CiB9CiAKLXZvaWQgVXNlcklucHV0QnJpZGdlOjpyZWxvYWRGcmFtZShGcmFtZSogZnJhbWUsIGJv
b2wgZW5kVG9FbmRSZWxvYWQsIElucHV0U291cmNlKQordm9pZCBVc2VySW5wdXRCcmlkZ2U6OnJl
bG9hZEZyYW1lKEZyYW1lKiBmcmFtZSwgYm9vbCBlbmRUb0VuZFJlbG9hZCwgSW5wdXRTb3VyY2Ug
aW5wdXRTb3VyY2UpCiB7CisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgRUFSTFlfVk9JRF9S
RVRVUk5fSUZfU0hPVUxEX0lHTk9SRV9JTlBVVDsKKworICAgIElucHV0Q3Vyc29yJiBjdXJzb3Ig
PSBhY3RpdmVDdXJzb3IoKTsKKyAgICBpZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkpIHsKKyAgICAg
ICAgdW5zaWduZWQgbG9uZyBmcmFtZUluZGV4ID0gZnJhbWVJbmRleEZyb21GcmFtZShmcmFtZSk7
CisgICAgICAgIGN1cnNvci5hcHBlbmRJbnB1dDxSZWxvYWRGcmFtZT4oZnJhbWVJbmRleCwgZW5k
VG9FbmRSZWxvYWQpOworICAgIH0KKyAgICBFdmVudExvb3BJbnB1dEV4dGVudCBleHRlbnQoY3Vy
c29yKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlucHV0U291cmNlKTsKKyNlbmRpZgorCiAg
ICAgZnJhbWUtPmxvYWRlcigpLnJlbG9hZChlbmRUb0VuZFJlbG9hZCk7CiB9CiAKLXZvaWQgVXNl
cklucHV0QnJpZGdlOjpzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lKiBmcmFtZSwgSW5wdXRTb3VyY2Up
Cit2b2lkIFVzZXJJbnB1dEJyaWRnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZSogZnJhbWUsIElu
cHV0U291cmNlIGlucHV0U291cmNlKQogeworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIEVB
UkxZX1ZPSURfUkVUVVJOX0lGX1NIT1VMRF9JR05PUkVfSU5QVVQ7CisKKyAgICBJbnB1dEN1cnNv
ciYgY3Vyc29yID0gYWN0aXZlQ3Vyc29yKCk7CisgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygp
KSB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgZnJhbWVJbmRleCA9IGZyYW1lSW5kZXhGcm9tRnJh
bWUoZnJhbWUpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8U3RvcExvYWRpbmdGcmFtZT4o
ZnJhbWVJbmRleCk7CisgICAgfQorICAgIEV2ZW50TG9vcElucHV0RXh0ZW50IGV4dGVudChjdXJz
b3IpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaW5wdXRTb3VyY2UpOworI2VuZGlmCisKICAg
ICBmcmFtZS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwoKTsKIH0KIAotYm9vbCBVc2VySW5w
dXRCcmlkZ2U6OnRyeUNsb3NlUGFnZShJbnB1dFNvdXJjZSkKK2Jvb2wgVXNlcklucHV0QnJpZGdl
Ojp0cnlDbG9zZVBhZ2UoSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2UpCiB7CisjaWYgRU5BQkxFKFdF
Ql9SRVBMQVkpCisgICAgRUFSTFlfUkVUVVJOX0lGX1NIT1VMRF9JR05PUkVfSU5QVVQ7CisKKyAg
ICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vyc29yKCk7CisgICAgaWYgKGN1cnNvci5p
c0NhcHR1cmluZygpKQorICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8VHJ5Q2xvc2VQYWdlPigp
OworCisgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KGN1cnNvcik7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShpbnB1dFNvdXJjZSk7CisjZW5kaWYKKwogICAgIHJldHVybiBtX3BhZ2Uu
bWFpbkZyYW1lKCkubG9hZGVyKCkuc2hvdWxkQ2xvc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1dlYklucHV0cy5qc29uCmluZGV4IGUwZmM3ZjJmOTI1NzM1ZmQ3OTlmOThlZWQzNGU5N2I0ZjVi
NmRjYmQuLjYxOGE1YTViOGRjNGU3YWViMDBhYzc4ZDAyMmE3ZjNmYTNmMjU5MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KQEAgLTQyLDYgKzQyLDExIEBACiAgICAgICAgICAg
ICAgICAgImhlYWRlciI6ICJoaXN0b3J5L0hpc3RvcnlJdGVtLmgiCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIkZyYW1lTG9hZFJlcXVlc3Qi
LCAibW9kZSI6ICJPV05FRCIsCisgICAgICAgICAgICAgICAgImZsYWdzIjogWyJTVFJVQ1QiXSwK
KyAgICAgICAgICAgICAgICAiaGVhZGVyIjogImxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgiCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIk1v
ZGlmaWVycyIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ4X3QiLAogICAgICAg
ICAgICAgICAgICJlbmNsb3NpbmdfY2xhc3MiOiAiUGxhdGZvcm1FdmVudCIsCiAgICAgICAgICAg
ICAgICAgImZsYWdzIjogWyJFTlVNIl0sCkBAIC05Niw2ICsxMDEsMzQgQEAKICAgICAgICAgICAg
ICAgICAiaGVhZGVyIjogInBsdWdpbnMvUGx1Z2luRGF0YS5oIgogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZUxvYWRQcmlvcml0
eSIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogImludDY0X3QiLAorICAgICAgICAgICAg
ICAgICJmbGFncyI6IFsiRU5VTSJdLAorICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAg
ICAgICAgICAgICAgICAgICJSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQiLAorICAgICAg
ICAgICAgICAgICAgICAiUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93IiwKKyAgICAgICAgICAg
ICAgICAgICAgIlJlc291cmNlTG9hZFByaW9yaXR5TG93IiwKKyAgICAgICAgICAgICAgICAgICAg
IlJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtIiwKKyAgICAgICAgICAgICAgICAgICAgIlJlc291
cmNlTG9hZFByaW9yaXR5SGlnaCIsCisgICAgICAgICAgICAgICAgICAgICJSZXNvdXJjZUxvYWRQ
cmlvcml0eVZlcnlIaWdoIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhl
YWRlciI6ICJwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIlJlc291cmNl
UmVxdWVzdCIsICJtb2RlIjogIk9XTkVEIiwKKyAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0LmgiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIlJlc291cmNlUmVxdWVzdENhY2hlUG9s
aWN5IiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDY0X3QiLAorICAgICAgICAg
ICAgICAgICJmbGFncyI6IFsiRU5VTSJdLAorICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgICAgICJVc2VQcm90b2NvbENhY2hlUG9saWN5IiwKKyAgICAgICAgICAg
ICAgICAgICAgIlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIiwKKyAgICAgICAgICAgICAgICAgICAg
IlJldHVybkNhY2hlRGF0YUVsc2VMb2FkIiwKKyAgICAgICAgICAgICAgICAgICAgIlJldHVybkNh
Y2hlRGF0YURvbnRMb2FkIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhl
YWRlciI6ICJwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdC5oIgorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJTY3JvbGxEaXJlY3Rp
b24iLCAibW9kZSI6ICJTQ0FMQVIiLCAic3RvcmFnZSI6ICJ1aW50NjRfdCIsCiAgICAgICAgICAg
ICAgICAgImZsYWdzIjogWyJFTlVNIl0sCiAgICAgICAgICAgICAgICAgInZhbHVlcyI6IFsiU2Ny
b2xsVXAiLCAiU2Nyb2xsRG93biIsICJTY3JvbGxMZWZ0IiwgIlNjcm9sbFJpZ2h0Il0sCkBAIC0y
NjUsNiArMjk4LDE0IEBACiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogIkxvYWRVUkxSZXF1ZXN0IiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaGUgZW1iZWRkZXIgcmVxdWVzdGVkIHRoYXQgdGhlIHNwZWNpZmllZCBmcmFtZSBz
dGFydCBhIG5ldyBsb2FkLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisg
ICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxvYWRS
ZXF1ZXN0IiwgInR5cGUiOiAiRnJhbWVMb2FkUmVxdWVzdCIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJMb2dpY2FsU2Nyb2xsUGFn
ZSIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGVtYmVkZGVyIHNpZ25hbGxlZCBh
IGxvZ2ljYWwgc2Nyb2xsIGV2ZW50LiIsCiAgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9P
UCIsCkBAIC0yNzQsNiArMzE1LDE1IEBACiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIlJlbG9hZEZyYW1lIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJUaGUgZW1iZWRkZXIgcmVxdWVzdGVkIHRoYXQgdGhlIHNwZWNpZmllZCBm
cmFtZSBzaG91bGQgcmVsb2FkLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIs
CisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZy
YW1lSW5kZXgiLCAidHlwZSI6ICJpbnQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJl
bmRUb0VuZFJlbG9hZCIsICJ0eXBlIjogImJvb2wiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAiU2Nyb2xsUGFnZSIsCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGVtYmVkZGVyIHNpZ25hbGxlZCBhIHNjcm9sbCBldmVu
dC4iLAogICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xPT1AiLApAQCAtMjgxLDYgKzMzMSwy
MCBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlyZWN0aW9uIiwgInR5cGUiOiAiU2Ny
b2xsRGlyZWN0aW9uIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZ3JhbnVsYXJpdHki
LCAidHlwZSI6ICJTY3JvbGxHcmFudWxhcml0eSIgfQogICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJTdG9wTG9hZGluZ0ZyYW1lIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgZW1iZWRkZXIgcmVxdWVzdGVkIHRoYXQgdGhl
IHNwZWNpZmllZCBmcmFtZSBzaG91bGQgc3RvcCBsb2FkaW5nLiIsCisgICAgICAgICAgICAicXVl
dWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImZyYW1lSW5kZXgiLCAidHlwZSI6ICJpbnQiIH0KKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiVHJ5Q2xvc2VQ
YWdlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgZW1iZWRkZXIgcmVxdWVzdGVk
IHRoYXQgdGhlIHBhZ2Ugc2hvdWxkIGJlIGNsb3NlZCAoc3ViamVjdCB0byBiZWZvcmV1bmxvYWQg
Y2FuY2VsbGF0aW9uKS4iLAorICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xPT1AiLAorICAg
ICAgICAgICAgIm1lbWJlcnMiOiBbIF0KICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKaW5kZXggNTZjNGNjMmRlNGRkNjFmZjJkZGIwNjM4ZmM3NmVjODU4OGY4
NGQ2OS4uYTQxZDA2NTQwYWYwMmNmMzgyY2U4MGY5ZTcyNDU3MzNkYTQyOTU1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnJlY2VpdmVkUmVkaXJlY3QoTmV0d29ya1Jlc291cmNlTG9hZGVy
KiBsb2FkZQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNlcnZlUGVuZGlu
Z1JlcXVlc3RzKFJlc291cmNlTG9hZFByaW9yaXR5IG1pbmltdW1Qcmlvcml0eSkKIHsKLSAgICBM
T0coTmV0d29ya1NjaGVkdWxpbmcsICIoTmV0d29ya1Byb2Nlc3MpIE5ldHdvcmtSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnNlcnZlUGVuZGluZ1JlcXVlc3RzIFNlcnZpbmcgcmVxdWVzdHMgZm9yIHVw
IHRvICVpIGhvc3RzIHdpdGggbWluaW11bSBwcmlvcml0eSAlaSIsIG1faG9zdHMuc2l6ZSgpLCBt
aW5pbXVtUHJpb3JpdHkpOworICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihOZXR3b3JrUHJv
Y2VzcykgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMg
U2VydmluZyByZXF1ZXN0cyBmb3IgdXAgdG8gJWkgaG9zdHMgd2l0aCBtaW5pbXVtIHByaW9yaXR5
ICVsbGkiLCBtX2hvc3RzLnNpemUoKSwgbWluaW11bVByaW9yaXR5KTsKIAogICAgIG1fcmVxdWVz
dFRpbWVyLnN0b3AoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggNGVi
N2VlOTJkYzJiYjQ3OGI0M2YzNmI5NWEyZDkwYmJkMjY0ZTQ5Ny4uNmJiMTE0YjVlOTk3MmRiM2Vm
ZWNlZmNlZWNhNzc2N2U5ZjM0OGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAg
LTExMCw3ICsxMTAsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVM
b2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVk
dWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICVpIiwgcmVzb3VyY2VM
b2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHByaW9yaXR5KTsKKyAgICBMT0co
TmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdv
cmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJWxsaSIsIHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBwcmlvcml0eSk7CiAKICAgICBDb250ZW50U25pZmZpbmdQb2xp
Y3kgY29udGVudFNuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXItPnNob3VsZFNuaWZmQ29u
dGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RTbmlmZkNvbnRlbnQ7CiAgICAgU3RvcmVkQ3Jl
ZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHJlc291cmNlTG9hZGVyLT5zaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSgpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxs
b3dTdG9yZWRDcmVkZW50aWFsczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>