<?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>139643</bug_id>
          
          <creation_ts>2014-12-15 03:08:57 -0800</creation_ts>
          <short_desc>[EFL][WK2] Add IndexedDB based on DatabaseProcess</short_desc>
          <delta_ts>2015-07-10 15:58:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>145867</dup_id>
          
          <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="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055593</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-12-15 03:08:57 -0800</bug_when>
    <thetext>To bring back IndexedDB support to the EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107434</commentid>
    <comment_count>1</comment_count>
      <attachid>256295</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-07-07 04:50:19 -0700</bug_when>
    <thetext>Created attachment 256295
=&lt;WIP&gt;Eet serialization will be added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107631</commentid>
    <comment_count>2</comment_count>
      <attachid>256340</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-07-07 18:02:29 -0700</bug_when>
    <thetext>Created attachment 256340
&lt;WIP&gt;Added config.h to DatabaseProcessMain.cpp to build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108547</commentid>
    <comment_count>3</comment_count>
      <attachid>256567</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-07-09 23:15:58 -0700</bug_when>
    <thetext>Created attachment 256567
Added default indexedDB directory path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108559</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-07-10 02:38:35 -0700</bug_when>
    <thetext>Gyuyoung already prepared a similar patch in bug145867 near a month before.

*** This bug has been marked as a duplicate of bug 145867 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108791</commentid>
    <comment_count>5</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-07-10 15:58:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Gyuyoung already prepared a similar patch in bug145867 near a month before.
&gt; 
&gt; *** This bug has been marked as a duplicate of bug 145867 ***

Ok, I got it :) As you said in bug 145867, it seems going to be work only by adding gvariant implementation to there. I&apos;ll check if it&apos;s possible to add KeyedEncoder/KeyedDecoder implementation by Eet serialization.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256295</attachid>
            <date>2015-07-07 04:50:19 -0700</date>
            <delta_ts>2015-07-07 18:02:21 -0700</delta_ts>
            <desc>=&lt;WIP&gt;Eet serialization will be added.</desc>
            <filename>bug-139643-20150707204920.patch</filename>
            <type>text/plain</type>
            <size>26053</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzY5OGUwNjBhYmVjZGYx
OTY3Nzg0NjUxN2FkOTBmNTJhZGQ3YmFhMi4uNmJlNzIzYmNmZjVmZGQyNjliZjNmN2FkYWUxMWUz
N2M3NDkwNzA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA3LTA3ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IEFkZCBJbmRleGVkREIgYmFzZWQgb24gRGF0YWJhc2VQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9lZmwvRGF0
YWJhc2VQcm9jZXNzTWFpbkVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3NNYWluVW5peCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogU2hhcmVkL2VmbC9LZXllZERlY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
S2V5ZWREZWNvZGVyOjpLZXllZERlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29k
ZXI6On5LZXllZERlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29k
ZUJ5dGVzKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVCb29sKToKKyAg
ICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVVSW50MzIpOgorICAgICAgICAoV2Vi
S2l0OjpLZXllZERlY29kZXI6OmRlY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRE
ZWNvZGVyOjpkZWNvZGVJbnQ2NCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVj
b2RlRmxvYXQpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29kZURvdWJsZSk6
CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nKToKKyAgICAgICAg
KFdlYktpdDo6S2V5ZWREZWNvZGVyOjpiZWdpbk9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6Oktl
eWVkRGVjb2Rlcjo6ZW5kT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpi
ZWdpbkFycmF5KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpiZWdpbkFycmF5RWxl
bWVudCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZW5kQXJyYXlFbGVtZW50KToK
KyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjplbmRBcnJheSk6CisgICAgICAgICogU2hh
cmVkL2VmbC9LZXllZERlY29kZXIuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL2VmbC9LZXll
ZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjpLZXll
ZEVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6On5LZXllZEVuY29kZXIp
OgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuY29kZUJ5dGVzKToKKyAgICAgICAg
KFdlYktpdDo6S2V5ZWRFbmNvZGVyOjplbmNvZGVCb29sKToKKyAgICAgICAgKFdlYktpdDo6S2V5
ZWRFbmNvZGVyOjplbmNvZGVVSW50MzIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6
OmVuY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjplbmNvZGVJbnQ2
NCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5jb2RlRmxvYXQpOgorICAgICAg
ICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuY29kZURvdWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNv
ZGVyOjpiZWdpbk9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5kT2Jq
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjpiZWdpbkFycmF5KToKKyAgICAg
ICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjpiZWdpbkFycmF5RWxlbWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5kQXJyYXlFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
S2V5ZWRFbmNvZGVyOjplbmRBcnJheSk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6
ZmluaXNoRW5jb2RpbmcpOgorICAgICAgICAqIFNoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmg6IEFk
ZGVkLgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2Vzcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNzUHJveHlFZmwuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
R2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9j
ZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6Omxh
dW5jaFByb2Nlc3MpOgorCiAyMDE1LTA3LTA2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIEVuc3VyZSBtZWRpYSBwbGF5YmFjayBpcyBzdG9wcGVkIGR1cmlu
ZyBwYWdlIGNsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
ZWZsL0RhdGFiYXNlUHJvY2Vzc01haW5FZmwuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL2VmbC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmM0ZGI1
OWJmNzIxY2UwNWZiOWViYjhhZDdiY2Y0MzI0M2JhY2NjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2VmbC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNw
cApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxl
Y3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFi
YXNlUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzTWFpblVuaXgu
aCIKKyNpbmNsdWRlIDxFY29yZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERhdGFiYXNlUHJvY2Vzc01haW4gZmluYWw6IHB1Ymxp
YyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CitwdWJsaWM6CisgICAgYm9vbCBwbGF0Zm9ybUluaXRp
YWxpemUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFlY29yZV9pbml0KCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKCFlY29yZV9tYWluX2xvb3BfZ2xp
Yl9pbnRlZ3JhdGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHBsYXRmb3JtRmluYWxpemUoKSBvdmVycmlkZQor
ICAgIHsKKyAgICAgICAgZWNvcmVfc2h1dGRvd24oKTsKKyAgICB9Cit9OworCitpbnQgRGF0YWJh
c2VQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBD
aGlsZFByb2Nlc3NNYWluPERhdGFiYXNlUHJvY2VzcywgRGF0YWJhc2VQcm9jZXNzTWFpbj4oYXJn
YywgYXJndik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDljMWNkODE0
NTA3M2VkMTBiNTc2ZWQ0Y2Y2ZjM5YWYzNWQzODNlMjguLmU3ZjAyYWIyNDg4MjlkYjIwNjU4YjY3
YWE2MDUyZmUyMGYzMjE5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xLDQgKzEs
NiBAQAogbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL2Vm
bC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNwcAorCiAgICAgTmV0d29ya1Byb2Nlc3MvZWZsL05l
dHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKIAogICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcApAQCAtMzYsNiArMzgsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKIAogICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKIAorICAg
IFNoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNwcAorICAgIFNoYXJlZC9lZmwvS2V5ZWRFbmNvZGVy
LmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlQ29udGV4dE1lbnVJdGVtRWZsLmNwcAogICAgIFNo
YXJlZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudEVmbC5jcHAKICAgICBTaGFyZWQvZWZsL05h
dGl2ZVdlYlRvdWNoRXZlbnRFZmwuY3BwCkBAIC01Nyw2ICs2MSw4IEBAIGxpc3QoQVBQRU5EIFdl
YktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKIAor
ICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMvZWZsL0RhdGFiYXNlUHJvY2Vzc1Byb3h5RWZsLmNwcAor
CiAgICAgVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5jcHAKICAgICBVSVByb2Nlc3MvRGVmYXVsdFVu
ZG9Db250cm9sbGVyLmNwcAogCkBAIC0yMjgsNiArMjM0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJv
Y2Vzcy9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2VmbCIKQEAgLTMxMyw2ICszMjAsMTAgQEAgbGlzdChB
UFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCiApCiAKK2xpc3QoQVBQRU5EIERhdGFiYXNl
UHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRh
YmFzZVByb2Nlc3NNYWluLmNwcAorKQorCiBsaXN0KEFQUEVORCBXZWJQcm9jZXNzX0xJQlJBUklF
UwogICAgICR7Q0FJUk9fTElCUkFSSUVTfQogICAgICR7RUNPUkVfSU1GX0VWQVNfTElCUkFSSUVT
fQpAQCAtNDgxLDYgKzQ5Miw3IEBAIGFkZF9kZWZpbml0aW9ucygtRFRFU1RfUkVTT1VSQ0VTX0RJ
Uj1cIiR7VEVTVF9SRVNPVVJDRVNfRElSfVwiCiAgICAgLURXRUJQUk9DRVNTTkFNRT1cIldlYlBy
b2Nlc3NcIgogICAgIC1EUExVR0lOUFJPQ0VTU05BTUU9XCJQbHVnaW5Qcm9jZXNzXCIKICAgICAt
RE5FVFdPUktQUk9DRVNTTkFNRT1cIk5ldHdvcmtQcm9jZXNzXCIKKyAgICAtRERBVEFCQVNFUFJP
Q0VTU05BTUU9XCJEYXRhYmFzZVByb2Nlc3NcIgogICAgIC1ERVhURU5TSU9OTUFOQUdFUk5BTUU9
XCJsaWJld2Via2l0X2V4dGVuc2lvbl9tYW5hZ2VyLnNvXCIKICAgICAtREdURVNUX0hBU19SVFRJ
PTAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OTAxNDczZjZmOWY4NzFmYjcyNDUwYzAxYmRmYjM0NzA0MTNlYThhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXllZERlY29kZXIuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktleWVkRGVjb2Rl
ci5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworS2V5ZWREZWNvZGVyOjpLZXllZERlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6
ZV90IHNpemUpCit7Cit9CisKK0tleWVkRGVjb2Rlcjo6fktleWVkRGVjb2RlcigpCit7Cit9CisK
K2Jvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVCeXRlcyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
dWludDhfdComIGJ5dGVzLCBzaXplX3QmIHNpemUpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlQm9vbChjb25zdCBTdHJpbmcmIGtleSwgYm9vbCYg
cmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmRl
Y29kZVVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QmIHJlc3VsdCkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVJbnQzMihjb25zdCBT
dHJpbmcmIGtleSwgaW50MzJfdCYgcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBLZXllZERlY29kZXI6OmRlY29kZUludDY0KGNvbnN0IFN0cmluZyYga2V5LCBpbnQ2NF90
JiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEtleWVkRGVjb2Rlcjo6
ZGVjb2RlRmxvYXQoY29uc3QgU3RyaW5nJiBrZXksIGZsb2F0JiByZXN1bHQpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlRG91YmxlKGNvbnN0IFN0
cmluZyYga2V5LCBkb3VibGUmIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyYg
cmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmJl
Z2luT2JqZWN0KGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dm9pZCBLZXllZERlY29kZXI6OmVuZE9iamVjdCgpCit7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVy
OjpiZWdpbkFycmF5KGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBLZXllZERlY29kZXI6OmJlZ2luQXJyYXlFbGVtZW50KCkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgS2V5ZWREZWNvZGVyOjplbmRBcnJheUVsZW1lbnQoKQoreworfQor
Cit2b2lkIEtleWVkRGVjb2Rlcjo6ZW5kQXJyYXkoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRGVjb2Rlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA4YzlkODNjMTU1OGQzZTNiYmEzYmMyMTVkZjZkZDc4ZjgzZDc2ZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRGVjb2Rlci5oCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcworICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEtleWVkRGVjb2Rlcl9oCisjZGVmaW5lIEtleWVkRGVjb2Rlcl9oCisK
KyNpbmNsdWRlIDxFZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWVkQ29kaW5nLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBLZXllZERlY29kZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6S2V5ZWREZWNvZGVyIHsK
K3B1YmxpYzoKKyAgICBLZXllZERlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90KTsK
KyAgICB2aXJ0dWFsIH5LZXllZERlY29kZXIoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIGJvb2wgZGVjb2RlQnl0ZXMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHVpbnQ4X3Qq
Jiwgc2l6ZV90Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGRlY29kZUJvb2woY29uc3Qg
U3RyaW5nJiBrZXksIGJvb2wmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlVUlu
dDMyKGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBkZWNvZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50MzJfdCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVJbnQ2NChjb25zdCBTdHJpbmcmIGtleSwgaW50NjRfdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVGbG9hdChjb25zdCBTdHJpbmcmIGtl
eSwgZmxvYXQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlRG91YmxlKGNvbnN0
IFN0cmluZyYga2V5LCBkb3VibGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
U3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcmKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgYm9vbCBiZWdpbk9iamVjdChjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGVuZE9iamVjdCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGJlZ2lu
QXJyYXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBiZWdp
bkFycmF5RWxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmRBcnJheUVsZW1l
bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQXJyYXkoKSBvdmVycmlkZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gS2V5ZWREZWNvZGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjhm
ZWE3NzhiNzUyYzgzYWUyYWUwOGZlZmUyNjE2YTQ3N2IwOGU3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXllZEVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTA1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktleWVkRW5jb2Rlci5oIgorCisj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworS2V5ZWRFbmNvZGVyOjpLZXllZEVuY29kZXIoKQoreworfQorCitLZXllZEVuY29kZXI6On5L
ZXllZEVuY29kZXIoKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5jb2RlQnl0ZXMoY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3Qgc2l6ZSkKK3sKK30K
Kwordm9pZCBLZXllZEVuY29kZXI6OmVuY29kZUJvb2woY29uc3QgU3RyaW5nJiBrZXksIGJvb2wg
dmFsdWUpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmNvZGVVSW50MzIoY29uc3QgU3Ry
aW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5j
b2RlSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIGludDMyX3QgdmFsdWUpCit7Cit9CisKK3ZvaWQg
S2V5ZWRFbmNvZGVyOjplbmNvZGVJbnQ2NChjb25zdCBTdHJpbmcmIGtleSwgaW50NjRfdCB2YWx1
ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuY29kZUZsb2F0KGNvbnN0IFN0cmluZyYg
a2V5LCBmbG9hdCB2YWx1ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuY29kZURvdWJs
ZShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQoreworfQorCit2b2lkIEtleWVkRW5j
b2Rlcjo6ZW5jb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVl
KQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6YmVnaW5PYmplY3QoY29uc3QgU3RyaW5nJiBr
ZXkpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmRPYmplY3QoKQoreworfQorCit2b2lk
IEtleWVkRW5jb2Rlcjo6YmVnaW5BcnJheShjb25zdCBTdHJpbmcmIGtleSkKK3sKK30KKwordm9p
ZCBLZXllZEVuY29kZXI6OmJlZ2luQXJyYXlFbGVtZW50KCkKK3sKK30KKwordm9pZCBLZXllZEVu
Y29kZXI6OmVuZEFycmF5RWxlbWVudCgpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmRB
cnJheSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBLZXllZEVuY29kZXI6OmZp
bmlzaEVuY29kaW5nKCkKK3sKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoIiIsIDAp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tl
eWVkRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMzQ3ODE2ZGU2ZWM0YjFjZDYzNTc3YzIzMDZhYWMy
NmNiZjA4MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tl
eWVkRW5jb2Rlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
U2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEtleWVkRW5jb2Rlcl9oCisj
ZGVmaW5lIEtleWVkRW5jb2Rlcl9oCisKKyNpbmNsdWRlIDxFZXQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0tleWVkQ29kaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgS2V5ZWRF
bmNvZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OktleWVkRW5jb2RlciB7CitwdWJsaWM6Cisg
ICAgS2V5ZWRFbmNvZGVyKCk7CisgICAgfktleWVkRW5jb2RlcigpOworCisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZmluaXNoRW5jb2RpbmcoKSBvdmVycmlk
ZTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlQnl0ZXMoY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlbmNvZGVCb29sKGNvbnN0IFN0cmluZyYga2V5LCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlVUludDMyKGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUludDMyKGNvbnN0IFN0cmluZyYga2V5LCBpbnQz
Ml90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlSW50NjQoY29uc3QgU3RyaW5n
JiBrZXksIGludDY0X3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVGbG9hdChj
b25zdCBTdHJpbmcmIGtleSwgZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmNv
ZGVEb3VibGUoY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGVuY29kZVN0cmluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5PYmplY3QoY29uc3QgU3RyaW5nJiBrZXkp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmRPYmplY3QoKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgdm9pZCBiZWdpbkFycmF5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYmVnaW5BcnJheUVsZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZW5kQXJyYXlFbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZEFy
cmF5KCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEtleWVkRW5jb2Rlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKaW5kZXggNWMxODE5ZjY5ZWEzODI3YmU5Njg5YmUy
Y2FjYzRkM2U5OTJlYjRhMC4uNTFiMDEzOTIyYTBlZDM2ZmQ0ZWI2NGQ3MWRkMWFiN2YzZWQ3MzNm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGhFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoRWZsLmNwcApAQCAtOTAsNCArOTAsMTMgQEAgU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZOZXR3b3JrUHJvY2VzcygpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9D
RVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHdlYktpdERhdGFiYXNlUHJvY2Vzc05h
bWUoZmluZFByb2Nlc3NQYXRoKERBVEFCQVNFUFJPQ0VTU05BTUUpKTsKKworICAgIHJldHVybiB3
ZWJLaXREYXRhYmFzZVByb2Nlc3NOYW1lOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwv
RGF0YWJhc2VQcm9jZXNzUHJveHlFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rh
dGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNzUHJveHlFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmY1
NGUzMTFjYjE3MTU4MzNjZDhlMmFmMjYxODRhN2YxM2VkZDAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL2VmbC9EYXRhYmFzZVByb2Nlc3NQcm94
eUVmbC5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEYXRhYmFzZVByb2Nlc3NQcm94eS5oIgorCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9l
ZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAppbmRleCA3ZjY5MzRlZTlmYWNhOWEyYTI1
MWJjZTQ4NzliZWM1ZGUxNWY1MTZjLi4yYmJjOTBiMDIyMzIwMzU3NDE2YjYyNjY1MTQxYzY0YjI0
NTcyYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZs
L1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC04OSw2ICs4OSwxMSBAQCB2b2lk
IFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIGV4ZWN1dGFibGVQYXRo
ID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCk7CiAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisgICAgY2FzZSBEYXRhYmFzZVByb2Nl
c3M6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJv
Y2VzcygpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmlu
ZGV4IGNmNjdkZjI2ZTRlM2RlYjlhMTJkOGMxM2M0OTdiOWM0ZmY2ZTVjMWEuLjAxNDY4NmQ2OTkz
ZWVmMDg0NzE1OGY1MjllOTczYWIyODkwNjZmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC03
OSw2ICs3OSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1Nf
UkVHSU9OUyBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfQ1NTX1NDUk9MTF9TTkFQIFBVQkxJQyBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQgUFVCTElDIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiBQVUJM
SUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREFUQUJBU0Vf
UFJPQ0VTUyBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IgUFVCTElDIE9OKQogV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSBQVUJM
SUMgT04pCkBAIC05MSw3ICs5Miw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9HQU1FUEFEIFBVQkxJQyBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HRU9MT0NBVElPTiBQVUJMSUMgT04pCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JL
RVJTIFBVQkxJQyBPRkYpCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0UgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgUFVCTElDIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xJTktfUFJFRkVUQ0ggUFVCTElD
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX0NBUFRV
UkUgUFVCTElDIE9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGNjZGRiZTE2NTgyNGM4YmYzYWNkOTUzMDZkNzRmYmY0NTNiZDY3M2MuLmYzYWRi
ODRiMjgwZjk2ZGRkODJlODU0MzA4ZmRiYjFmZDUyMjFkM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0w
NyAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bV0syXSBBZGQgSW5kZXhlZERCIGJhc2VkIG9uIERhdGFiYXNlUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTUtMDctMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBSZW1v
dmUgbWVtb3J5IHBhZ2UgcmVwb3J0aW5nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxp
c3QucG0KaW5kZXggMDg3ZTY4YzExYjBiNDcxMjM4YjdmYjg4MmVjNzQ5ZjE5ZmI3NGM3Ny4uNTVm
OGJkOGViMWVkYWFhMmFjZWJlOWU0NmZmNWNjMGMxYTNiN2M0ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMjU5LDcgKzI1OSw3IEBAIG15IEBmZWF0dXJlcyA9
ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlz
SU9TV2ViS2l0KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRh
YmFzZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0Ui
LCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9
LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4g
KGlzRWZsKCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2MgPT4gIlRvZ2dsZSBJbnB1
dCBTcGVlY2ggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9TUEVFQ0gi
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBwb3J0IH0sCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOTVkOTIzMzQyZWQ3NzA4MzRmM2ZmNzRl
ZmE1ZDZkNjQ0NjZmM2E4MS4uOTQ5YzRhNjkwYjU5ODNmNTE1Yzc0NTNiZGJhMmU1YjQzNjFmMmNi
ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE1LTA3LTA3ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtXSzJdIEFkZCBJbmRleGVkREIgYmFzZWQgb24gRGF0YWJhc2VQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorCiAyMDE1LTA3LTAzICBFbWFudWVsZSBBaW5hICA8
ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIEZvcmNlZnVsbHkg
ZGlzYWJsZSBndGstZG9jIGFuZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2hlbiBjcm9zc2J1aWxk
aW5nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256340</attachid>
            <date>2015-07-07 18:02:29 -0700</date>
            <delta_ts>2015-07-09 23:15:52 -0700</delta_ts>
            <desc>&lt;WIP&gt;Added config.h to DatabaseProcessMain.cpp to build fix.</desc>
            <filename>bug-139643-20150708100128.patch</filename>
            <type>text/plain</type>
            <size>27191</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzY5OGUwNjBhYmVjZGYx
OTY3Nzg0NjUxN2FkOTBmNTJhZGQ3YmFhMi4uNmNjOGUyMDg0NjEyMzY5YTU1NjliNmFhYjI2N2Vl
ZjhjNWFiNGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA3LTA3ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IEFkZCBJbmRleGVkREIgYmFzZWQgb24gRGF0YWJhc2VQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBv
aW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHA6IEFkZCBtaXNzaW5nIGNvbmZpZy5oLCBv
dGhlcndpc2UgY2F1c2UgYSBwcm9ibGVtCisgICAgICAgIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KSBtYWNybyBkb2VzIG5vdCB3b3JrIGluIERhdGFiYXNlUHJvY2Vzc01haW5Vbml4LmgKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvZWZsL0RhdGFiYXNlUHJvY2Vzc01haW5FZmwuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0Rh
dGFiYXNlUHJvY2Vzc01haW4uY3BwLgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NN
YWluVW5peCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVk
L2VmbC9LZXllZERlY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNv
ZGVyOjpLZXllZERlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6On5LZXll
ZERlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29kZUJ5dGVzKToK
KyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVCb29sKToKKyAgICAgICAgKFdl
YktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVVSW50MzIpOgorICAgICAgICAoV2ViS2l0OjpLZXll
ZERlY29kZXI6OmRlY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpk
ZWNvZGVJbnQ2NCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlRmxvYXQp
OgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29kZURvdWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6
S2V5ZWREZWNvZGVyOjpiZWdpbk9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rl
cjo6ZW5kT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpiZWdpbkFycmF5
KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpiZWdpbkFycmF5RWxlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZW5kQXJyYXlFbGVtZW50KToKKyAgICAgICAg
KFdlYktpdDo6S2V5ZWREZWNvZGVyOjplbmRBcnJheSk6CisgICAgICAgICogU2hhcmVkL2VmbC9L
ZXllZERlY29kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcC4KKyAgICAgICAgKiBTaGFy
ZWQvZWZsL0tleWVkRW5jb2Rlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAuCisgICAg
ICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6S2V5ZWRFbmNvZGVyKToKKyAgICAgICAgKFdlYktp
dDo6S2V5ZWRFbmNvZGVyOjp+S2V5ZWRFbmNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRF
bmNvZGVyOjplbmNvZGVCeXRlcyk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5j
b2RlQm9vbCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5jb2RlVUludDMyKToK
KyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjplbmNvZGVJbnQzMik6CisgICAgICAgIChX
ZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5jb2RlSW50NjQpOgorICAgICAgICAoV2ViS2l0OjpLZXll
ZEVuY29kZXI6OmVuY29kZUZsb2F0KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjpl
bmNvZGVEb3VibGUpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6YmVnaW5PYmplY3QpOgorICAgICAg
ICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuZE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6Oktl
eWVkRW5jb2Rlcjo6YmVnaW5BcnJheSk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6
YmVnaW5BcnJheUVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuZEFy
cmF5RWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5kQXJyYXkpOgor
ICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmZpbmlzaEVuY29kaW5nKToKKyAgICAgICAg
KiBTaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3BwLgor
ICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNzUHJveHlFZmwuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0Rh
dGFiYXNlUHJvY2Vzc01haW4uY3BwLgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NQ
cm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTUtMDctMDYgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5zdXJlIG1lZGlhIHBsYXliYWNrIGlz
IHN0b3BwZWQgZHVyaW5nIHBhZ2UgY2xvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJv
Y2Vzc01haW4uY3BwCmluZGV4IDFkNTUyMmI0Y2QyNGQwMmYwMTc0YTZjOTczZTI0NmU4MjE0ZmQx
OTIuLjlkOGI4MTgzODhhN2QxMmQ4NDk4MDJhZDhlNWRiMDkwNTBjZDgzYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQ
cm9jZXNzTWFpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5
UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcApAQCAtMjMsNiArMjMsNyBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NNYWluVW5peC5oIgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2Vm
bC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9lZmwvRGF0YWJhc2VQcm9jZXNzTWFpbkVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJjNGRiNTli
ZjcyMWNlMDVmYjllYmI4YWQ3YmNmNDMyNDNiYWNjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9lZmwvRGF0YWJhc2VQcm9jZXNzTWFpbkVmbC5jcHAK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhYmFz
ZVByb2Nlc3MuaCIKKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
Q2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc01haW5Vbml4Lmgi
CisjaW5jbHVkZSA8RWNvcmUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBEYXRhYmFzZVByb2Nlc3NNYWluIGZpbmFsOiBwdWJsaWMg
Q2hpbGRQcm9jZXNzTWFpbkJhc2UgeworcHVibGljOgorICAgIGJvb2wgcGxhdGZvcm1Jbml0aWFs
aXplKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmICghZWNvcmVfaW5pdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghZWNvcmVfbWFpbl9sb29wX2dsaWJf
aW50ZWdyYXRlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgdm9pZCBwbGF0Zm9ybUZpbmFsaXplKCkgb3ZlcnJpZGUKKyAg
ICB7CisgICAgICAgIGVjb3JlX3NodXRkb3duKCk7CisgICAgfQorfTsKKworaW50IERhdGFiYXNl
UHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gQ2hp
bGRQcm9jZXNzTWFpbjxEYXRhYmFzZVByb2Nlc3MsIERhdGFiYXNlUHJvY2Vzc01haW4+KGFyZ2Ms
IGFyZ3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShE
QVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5YzFjZDgxNDUw
NzNlZDEwYjU3NmVkNGNmNmYzOWFmMzVkMzgzZTI4Li5lN2YwMmFiMjQ4ODI5ZGIyMDY1OGI2N2Fh
NjA1MmZlMjBmMzIxOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMSw0ICsxLDYg
QEAKIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgIERhdGFiYXNlUHJvY2Vzcy9lZmwv
RGF0YWJhc2VQcm9jZXNzTWFpbkVmbC5jcHAKKwogICAgIE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3
b3JrUHJvY2Vzc01haW5FZmwuY3BwCiAKICAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQ
cm9jZXNzU291cC5jcHAKQEAgLTM2LDYgKzM4LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VS
Q0VTCiAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCiAKKyAgICBT
aGFyZWQvZWZsL0tleWVkRGVjb2Rlci5jcHAKKyAgICBTaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5j
cHAKICAgICBTaGFyZWQvZWZsL05hdGl2ZUNvbnRleHRNZW51SXRlbUVmbC5jcHAKICAgICBTaGFy
ZWQvZWZsL05hdGl2ZVdlYktleWJvYXJkRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRp
dmVXZWJUb3VjaEV2ZW50RWZsLmNwcApAQCAtNTcsNiArNjEsOCBAQCBsaXN0KEFQUEVORCBXZWJL
aXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCiAKKyAg
ICBVSVByb2Nlc3MvRGF0YWJhc2VzL2VmbC9EYXRhYmFzZVByb2Nlc3NQcm94eUVmbC5jcHAKKwog
ICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCiAgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRv
Q29udHJvbGxlci5jcHAKIApAQCAtMjI4LDYgKzIzNCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy94MTEiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9lbmNoYW50IgorICAgICIke1dFQktJVDJfRElS
fS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nl
c3MvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgogICAgICIk
e1dFQktJVDJfRElSfS9QbGF0Zm9ybS9lZmwiCkBAIC0zMTMsNiArMzIwLDEwIEBAIGxpc3QoQVBQ
RU5EIE5ldHdvcmtQcm9jZXNzX1NPVVJDRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluLmNwcAogKQogCitsaXN0KEFQUEVORCBEYXRhYmFzZVBy
b2Nlc3NfU09VUkNFUworICAgIERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJh
c2VQcm9jZXNzTWFpbi5jcHAKKykKKwogbGlzdChBUFBFTkQgV2ViUHJvY2Vzc19MSUJSQVJJRVMK
ICAgICAke0NBSVJPX0xJQlJBUklFU30KICAgICAke0VDT1JFX0lNRl9FVkFTX0xJQlJBUklFU30K
QEAgLTQ4MSw2ICs0OTIsNyBAQCBhZGRfZGVmaW5pdGlvbnMoLURURVNUX1JFU09VUkNFU19ESVI9
XCIke1RFU1RfUkVTT1VSQ0VTX0RJUn1cIgogICAgIC1EV0VCUFJPQ0VTU05BTUU9XCJXZWJQcm9j
ZXNzXCIKICAgICAtRFBMVUdJTlBST0NFU1NOQU1FPVwiUGx1Z2luUHJvY2Vzc1wiCiAgICAgLURO
RVRXT1JLUFJPQ0VTU05BTUU9XCJOZXR3b3JrUHJvY2Vzc1wiCisgICAgLUREQVRBQkFTRVBST0NF
U1NOQU1FPVwiRGF0YWJhc2VQcm9jZXNzXCIKICAgICAtREVYVEVOU0lPTk1BTkFHRVJOQU1FPVwi
bGliZXdlYmtpdF9leHRlbnNpb25fbWFuYWdlci5zb1wiCiAgICAgLURHVEVTVF9IQVNfUlRUST0w
CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRGVjb2Rlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRGVjb2Rlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDkwMTQ3M2Y2ZjlmODcxZmI3MjQ1MGMwMWJkZmIzNDcwNDEzZWE4YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNwcApAQCAtMCww
ICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJLZXllZERlY29kZXIu
aCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK0tleWVkRGVjb2Rlcjo6S2V5ZWREZWNvZGVyKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBzaXplKQoreworfQorCitLZXllZERlY29kZXI6On5LZXllZERlY29kZXIoKQoreworfQorCiti
b29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlQnl0ZXMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHVp
bnQ4X3QqJiBieXRlcywgc2l6ZV90JiBzaXplKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBLZXllZERlY29kZXI6OmRlY29kZUJvb2woY29uc3QgU3RyaW5nJiBrZXksIGJvb2wmIHJl
c3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpkZWNv
ZGVVSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlSW50MzIoY29uc3QgU3Ry
aW5nJiBrZXksIGludDMyX3QmIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVJbnQ2NChjb25zdCBTdHJpbmcmIGtleSwgaW50NjRfdCYg
cmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmRl
Y29kZUZsb2F0KGNvbnN0IFN0cmluZyYga2V5LCBmbG9hdCYgcmVzdWx0KQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmRlY29kZURvdWJsZShjb25zdCBTdHJp
bmcmIGtleSwgZG91YmxlJiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEtleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcmIHJl
c3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpiZWdp
bk9iamVjdChjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgS2V5ZWREZWNvZGVyOjplbmRPYmplY3QoKQoreworfQorCitib29sIEtleWVkRGVjb2Rlcjo6
YmVnaW5BcnJheShjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgS2V5ZWREZWNvZGVyOjpiZWdpbkFycmF5RWxlbWVudCgpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEtleWVkRGVjb2Rlcjo6ZW5kQXJyYXlFbGVtZW50KCkKK3sKK30KKwor
dm9pZCBLZXllZERlY29kZXI6OmVuZEFycmF5KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRGVjb2Rlci5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXllZERlY29kZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
OGM5ZDgzYzE1NThkM2UzYmJhM2JjMjE1ZGY2ZGQ3OGY4M2Q3NmRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXllZERlY29kZXIuaApAQCAtMCwwICsxLDYz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBLZXllZERlY29kZXJfaAorI2RlZmluZSBLZXllZERlY29kZXJfaAorCisj
aW5jbHVkZSA8RWV0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXllZENvZGluZy5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgS2V5ZWREZWNvZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OktleWVkRGVjb2RlciB7Citw
dWJsaWM6CisgICAgS2V5ZWREZWNvZGVyKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCk7Cisg
ICAgdmlydHVhbCB+S2V5ZWREZWNvZGVyKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBib29sIGRlY29kZUJ5dGVzKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCB1aW50OF90KiYs
IHNpemVfdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVCb29sKGNvbnN0IFN0
cmluZyYga2V5LCBib29sJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGRlY29kZVVJbnQz
Mihjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgZGVjb2RlSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIGludDMyX3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZGVjb2RlSW50NjQoY29uc3QgU3RyaW5nJiBrZXksIGludDY0X3QmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlRmxvYXQoY29uc3QgU3RyaW5nJiBrZXks
IGZsb2F0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGRlY29kZURvdWJsZShjb25zdCBT
dHJpbmcmIGtleSwgZG91YmxlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGRlY29kZVN0
cmluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFs
IGJvb2wgYmVnaW5PYmplY3QoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBlbmRPYmplY3QoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBiZWdpbkFy
cmF5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYmVnaW5B
cnJheUVsZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQXJyYXlFbGVtZW50
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZEFycmF5KCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEtleWVkRGVjb2Rlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4ZmVh
Nzc4Yjc1MmM4M2FlMmFlMDhmZWZlMjYxNmE0NzdiMDhlNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDEwNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJLZXllZEVuY29kZXIuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K0tleWVkRW5jb2Rlcjo6S2V5ZWRFbmNvZGVyKCkKK3sKK30KKworS2V5ZWRFbmNvZGVyOjp+S2V5
ZWRFbmNvZGVyKCkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuY29kZUJ5dGVzKGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IHNpemUpCit7Cit9CisK
K3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmNvZGVCb29sKGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZh
bHVlKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5jb2RlVUludDMyKGNvbnN0IFN0cmlu
ZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuY29k
ZUludDMyKGNvbnN0IFN0cmluZyYga2V5LCBpbnQzMl90IHZhbHVlKQoreworfQorCit2b2lkIEtl
eWVkRW5jb2Rlcjo6ZW5jb2RlSW50NjQoY29uc3QgU3RyaW5nJiBrZXksIGludDY0X3QgdmFsdWUp
Cit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmNvZGVGbG9hdChjb25zdCBTdHJpbmcmIGtl
eSwgZmxvYXQgdmFsdWUpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmNvZGVEb3VibGUo
Y29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSB2YWx1ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29k
ZXI6OmVuY29kZVN0cmluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmJlZ2luT2JqZWN0KGNvbnN0IFN0cmluZyYga2V5
KQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5kT2JqZWN0KCkKK3sKK30KKwordm9pZCBL
ZXllZEVuY29kZXI6OmJlZ2luQXJyYXkoY29uc3QgU3RyaW5nJiBrZXkpCit7Cit9CisKK3ZvaWQg
S2V5ZWRFbmNvZGVyOjpiZWdpbkFycmF5RWxlbWVudCgpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNv
ZGVyOjplbmRBcnJheUVsZW1lbnQoKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5kQXJy
YXkoKQoreworfQorCitQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gS2V5ZWRFbmNvZGVyOjpmaW5p
c2hFbmNvZGluZygpCit7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCIiLCAwKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZWZsL0tleWVkRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXll
ZEVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzM0NzgxNmRlNmVjNGIxY2Q2MzU3N2MyMzA2YWFjMjZj
YmYwODM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9LZXll
ZEVuY29kZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBLZXllZEVuY29kZXJfaAorI2Rl
ZmluZSBLZXllZEVuY29kZXJfaAorCisjaW5jbHVkZSA8RWV0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9LZXllZENvZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEtleWVkRW5j
b2RlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpLZXllZEVuY29kZXIgeworcHVibGljOgorICAg
IEtleWVkRW5jb2RlcigpOworICAgIH5LZXllZEVuY29kZXIoKTsKKworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGZpbmlzaEVuY29kaW5nKCkgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUJ5dGVzKGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5jb2RlQm9vbChjb25zdCBTdHJpbmcmIGtleSwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGVuY29kZVVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50MzJf
dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUludDY0KGNvbnN0IFN0cmluZyYg
a2V5LCBpbnQ2NF90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlRmxvYXQoY29u
c3QgU3RyaW5nJiBrZXksIGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2Rl
RG91YmxlKGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBlbmNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCB2b2lkIGJlZ2luT2JqZWN0KGNvbnN0IFN0cmluZyYga2V5KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kT2JqZWN0KCkgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5BcnJheShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGJlZ2luQXJyYXlFbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGVuZEFycmF5RWxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmRBcnJh
eSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBL
ZXllZEVuY29kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9j
ZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9j
ZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwCmluZGV4IDVjMTgxOWY2OWVhMzgyN2JlOTY4OWJlMmNh
Y2M0ZDNlOTkyZWI0YTAuLjUxYjAxMzkyMmEwZWQzNmZkNGViNjRkNzFkZDFhYjdmM2VkNzMzZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aEVmbC5jcHAKQEAgLTkwLDQgKzkwLDEzIEBAIFN0cmluZyBleGVjdXRhYmxlUGF0aE9m
TmV0d29ya1Byb2Nlc3MoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VT
UykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB3ZWJLaXREYXRhYmFzZVByb2Nlc3NOYW1l
KGZpbmRQcm9jZXNzUGF0aChEQVRBQkFTRVBST0NFU1NOQU1FKSk7CisKKyAgICByZXR1cm4gd2Vi
S2l0RGF0YWJhc2VQcm9jZXNzTmFtZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvZWZsL0Rh
dGFiYXNlUHJvY2Vzc1Byb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRh
YmFzZXMvZWZsL0RhdGFiYXNlUHJvY2Vzc1Byb3h5RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWZmNTRl
MzExY2IxNzE1ODMzY2Q4ZTJhZjI2MTg0YTdmMTNlZGQwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNzUHJveHlF
ZmwuY3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGF0YWJhc2VQcm9jZXNzUHJveHkuaCIKKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6cGxhdGZv
cm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZs
L1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKaW5kZXggN2Y2OTM0ZWU5ZmFjYTlhMmEyNTFi
Y2U0ODc5YmVjNWRlMTVmNTE2Yy4uMmJiYzkwYjAyMjMyMDM1NzQxNmI2MjY2NTE0MWM2NGIyNDU3
MmE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Q
cm9jZXNzTGF1bmNoZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApAQCAtODksNiArODksMTEgQEAgdm9pZCBQ
cm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICBleGVjdXRhYmxlUGF0aCA9
IGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwogICAgICAgICBicmVhazsKICNlbmRp
ZgorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAgIGNhc2UgRGF0YWJhc2VQcm9jZXNz
OgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nl
c3MoKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRl
eCBjZjY3ZGYyNmU0ZTNkZWI5YTEyZDhjMTNjNDk3YjljNGZmNmU1YzFhLi4wMTQ2ODZkNjk5M2Vl
ZjA4NDcxNThmNTI5ZTk3M2FiMjg5MDY2ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtNzks
NiArNzksNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JF
R0lPTlMgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0NTU19TQ1JPTExfU05BUCBQVUJMSUMgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgUFVCTElD
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RBVEFCQVNFX1BS
T0NFU1MgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIFBVQkxJQyBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgUFVCTElD
IE9OKQpAQCAtOTEsNyArOTIsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0VPTE9DQVRJT04gUFVCTElDIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UyBQVUJMSUMgT0ZGKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIFBVQkxJQyBPTikKIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MSU5LX1BSRUZFVENIIFBVQkxJQyBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DQVBUVVJF
IFBVQkxJQyBPTikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBjY2RkYmUxNjU4MjRjOGJmM2FjZDk1MzA2ZDc0ZmJmNDUzYmQ2NzNjLi5mM2FkYjg0
YjI4MGY5NmRkZDgyZTg1NDMwOGZkYmIxZmQ1MjIxZDNmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDcg
IEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
W1dLMl0gQWRkIEluZGV4ZWREQiBiYXNlZCBvbiBEYXRhYmFzZVByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtOgorCiAyMDE1LTA3LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NvbnRlbnQgRXh0ZW5zaW9uc10gUmVtb3Zl
IG1lbW9yeSBwYWdlIHJlcG9ydGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtCmluZGV4IDA4N2U2OGMxMWIwYjQ3MTIzOGI3ZmI4ODJlYzc0OWYxOWZiNzRjNzcuLjU1Zjhi
ZDhlYjFlZGFhYTJhY2ViZTllNDZmZjVjYzBjMWEzYjdjNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTI1OSw3ICsyNTksNyBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JQ09OREFUQUJBU0UiLCBkZWZhdWx0ID0+ICFpc0lP
U1dlYktpdCgpLCB2YWx1ZSA9PiBcJGljb25kYXRhYmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0
aW9uID0+ICJpbmRleGVkLWRhdGFiYXNlIiwgZGVzYyA9PiAiVG9nZ2xlIEluZGV4ZWQgRGF0YWJh
c2Ugc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIiwg
ZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChp
c0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwK
IAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2giLCBkZXNjID0+ICJUb2dnbGUgSW5wdXQg
U3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfU1BFRUNIIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3BlZWNoU3VwcG9ydCB9LApkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk1ZDkyMzM0MmVkNzcwODM0ZjNmZjc0ZWZh
NWQ2ZDY0NDY2ZjNhODEuLjk0OWM0YTY5MGI1OTgzZjUxNWM3NDUzYmRiYTJlNWI0MzYxZjJjYmYg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxNS0wNy0wNyAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF1bV0syXSBBZGQgSW5kZXhlZERCIGJhc2VkIG9uIERhdGFiYXNlUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxNS0wNy0wMyAgRW1hbnVlbGUgQWluYSAgPGVt
YW51ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXSBGb3JjZWZ1bGx5IGRp
c2FibGUgZ3RrLWRvYyBhbmQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdoZW4gY3Jvc3NidWlsZGlu
Zwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256567</attachid>
            <date>2015-07-09 23:15:58 -0700</date>
            <delta_ts>2015-07-09 23:15:58 -0700</delta_ts>
            <desc>Added default indexedDB directory path</desc>
            <filename>bug-139643-20150710151455.patch</filename>
            <type>text/plain</type>
            <size>28096</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTE2ZGQ2NTZkYmI5MjE1
OGM0N2E2MTMwYmFjZmRkZmVhZTZkZjM2Ni4uYjFkMDVlZmViMzBkMzE3ZGE5NGQyMDlkM2M4YjM1
Y2E1MWIzMjk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE1LTA3LTA5ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IEFkZCBJbmRleGVkREIgYmFzZWQgb24gRGF0YWJhc2VQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBv
aW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHA6IEFkZCBtaXNzaW5nIGNvbmZpZy5oLCBv
dGhlcndpc2UgY2F1c2UgYSBwcm9ibGVtCisgICAgICAgIHdoaWNoIEVOQUJMRShEQVRBQkFTRV9Q
Uk9DRVNTKSBtYWNybyBkb2VzIG5vdCB3b3JrIGluIERhdGFiYXNlUHJvY2Vzc01haW5Vbml4Lmgu
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL2VmbC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
dW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQ
cm9jZXNzTWFpblVuaXgpOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IFNoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oktl
eWVkRGVjb2Rlcjo6S2V5ZWREZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVy
Ojp+S2V5ZWREZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVC
eXRlcyk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlQm9vbCk6CisgICAg
ICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlVUludDMyKToKKyAgICAgICAgKFdlYktp
dDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVJbnQzMik6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVj
b2Rlcjo6ZGVjb2RlSW50NjQpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29k
ZUZsb2F0KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVEb3VibGUpOgor
ICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OktleWVkRGVjb2Rlcjo6YmVnaW5PYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpLZXll
ZERlY29kZXI6OmVuZE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6YmVn
aW5BcnJheSk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6YmVnaW5BcnJheUVsZW1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmVuZEFycmF5RWxlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZW5kQXJyYXkpOgorICAgICAgICAqIFNoYXJl
ZC9lZmwvS2V5ZWREZWNvZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAuCisgICAgICAg
ICogU2hhcmVkL2VmbC9LZXllZEVuY29kZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3Bw
LgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OktleWVkRW5jb2Rlcik6CisgICAgICAg
IChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6fktleWVkRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6
OktleWVkRW5jb2Rlcjo6ZW5jb2RlQnl0ZXMpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29k
ZXI6OmVuY29kZUJvb2wpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuY29kZVVJ
bnQzMik6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5jb2Rlcjo6ZW5jb2RlSW50MzIpOgorICAg
ICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuY29kZUludDY0KToKKyAgICAgICAgKFdlYktp
dDo6S2V5ZWRFbmNvZGVyOjplbmNvZGVGbG9hdCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRW5j
b2Rlcjo6ZW5jb2RlRG91YmxlKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjplbmNv
ZGVTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmJlZ2luT2JqZWN0KToK
KyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjplbmRPYmplY3QpOgorICAgICAgICAoV2Vi
S2l0OjpLZXllZEVuY29kZXI6OmJlZ2luQXJyYXkpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVu
Y29kZXI6OmJlZ2luQXJyYXlFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVy
OjplbmRBcnJheUVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpLZXllZEVuY29kZXI6OmVuZEFy
cmF5KToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWRFbmNvZGVyOjpmaW5pc2hFbmNvZGluZyk6Cisg
ICAgICAgICogU2hhcmVkL2VmbC9LZXllZEVuY29kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWlu
LmNwcC4KKyAgICAgICAgKiBTaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9EYXRhYmFzZXMvZWZsL0RhdGFiYXNlUHJvY2Vzc1Byb3h5RWZsLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
dW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQ
cm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvV2ViUHJvY2Vzc1Bvb2xFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpOiBTZXQg
ZGVmYXVsdCBpbmRleGVkREIgZGlyZWN0b3J5IHBhdGguCisKIDIwMTUtMDctMDkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENvcmVBbmltYXRp
b24gZmVuY2VzIGluc3RlYWQgb2Ygc3luY2hyb25vdXMgSVBDIHRvIHN5bmNocm9uaXplIHJlc2l6
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
dW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAKaW5kZXggMWQ1NTIy
YjRjZDI0ZDAyZjAxNzRhNmM5NzNlMjQ2ZTgyMTRmZDE5Mi4uOWQ4YjgxODM4OGE3ZDEyZDg0OTgw
MmFkOGU1ZGIwOTA1MGNkODNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vz
c01haW4uY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJv
Y2Vzc01haW5Vbml4LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvZWZsL0RhdGFiYXNlUHJvY2Vzc01haW5FZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2VmbC9EYXRhYmFzZVByb2Nlc3NN
YWluRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmM0ZGI1OWJmNzIxY2UwNWZiOWViYjhhZDdiY2Y0MzI0
M2JhY2NjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L2VmbC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxF
KERBVEFCQVNFX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5j
bHVkZSAiRGF0YWJhc2VQcm9jZXNzTWFpblVuaXguaCIKKyNpbmNsdWRlIDxFY29yZS5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERh
dGFiYXNlUHJvY2Vzc01haW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7Citw
dWJsaWM6CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgaWYgKCFlY29yZV9pbml0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgaWYgKCFlY29yZV9tYWluX2xvb3BfZ2xpYl9pbnRlZ3JhdGUoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lk
IHBsYXRmb3JtRmluYWxpemUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZWNvcmVfc2h1dGRv
d24oKTsKKyAgICB9Cit9OworCitpbnQgRGF0YWJhc2VQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPERhdGFiYXNlUHJv
Y2VzcywgRGF0YWJhc2VQcm9jZXNzTWFpbj4oYXJnYywgYXJndik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCmluZGV4IDljMWNkODE0NTA3M2VkMTBiNTc2ZWQ0Y2Y2ZjM5YWYzNWQz
ODNlMjguLmU3ZjAyYWIyNDg4MjlkYjIwNjU4YjY3YWE2MDUyZmUyMGYzMjE5ZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xLDQgKzEsNiBAQAogbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL2VmbC9EYXRhYmFzZVByb2Nlc3NNYWluRWZsLmNw
cAorCiAgICAgTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKIAog
ICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtMzYsNiAr
MzgsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC9jYWlyby9T
aGFyZWFibGVCaXRtYXBDYWlyby5jcHAKIAorICAgIFNoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNw
cAorICAgIFNoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZl
Q29udGV4dE1lbnVJdGVtRWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudEVmbC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2ZVdlYlRvdWNoRXZlbnRFZmwuY3BwCkBA
IC01Nyw2ICs2MSw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVk
L3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKIAorICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMvZWZs
L0RhdGFiYXNlUHJvY2Vzc1Byb3h5RWZsLmNwcAorCiAgICAgVUlQcm9jZXNzL0JhY2tpbmdTdG9y
ZS5jcHAKICAgICBVSVByb2Nlc3MvRGVmYXVsdFVuZG9Db250cm9sbGVyLmNwcAogCkBAIC0yMjgs
NiArMjM0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90
ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4Igog
ICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9lZmwiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2Vm
bCIKQEAgLTMxMyw2ICszMjAsMTAgQEAgbGlzdChBUFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNF
UwogICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4u
Y3BwCiApCiAKK2xpc3QoQVBQRU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJh
c2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKQorCiBs
aXN0KEFQUEVORCBXZWJQcm9jZXNzX0xJQlJBUklFUwogICAgICR7Q0FJUk9fTElCUkFSSUVTfQog
ICAgICR7RUNPUkVfSU1GX0VWQVNfTElCUkFSSUVTfQpAQCAtNDgxLDYgKzQ5Miw3IEBAIGFkZF9k
ZWZpbml0aW9ucygtRFRFU1RfUkVTT1VSQ0VTX0RJUj1cIiR7VEVTVF9SRVNPVVJDRVNfRElSfVwi
CiAgICAgLURXRUJQUk9DRVNTTkFNRT1cIldlYlByb2Nlc3NcIgogICAgIC1EUExVR0lOUFJPQ0VT
U05BTUU9XCJQbHVnaW5Qcm9jZXNzXCIKICAgICAtRE5FVFdPUktQUk9DRVNTTkFNRT1cIk5ldHdv
cmtQcm9jZXNzXCIKKyAgICAtRERBVEFCQVNFUFJPQ0VTU05BTUU9XCJEYXRhYmFzZVByb2Nlc3Nc
IgogICAgIC1ERVhURU5TSU9OTUFOQUdFUk5BTUU9XCJsaWJld2Via2l0X2V4dGVuc2lvbl9tYW5h
Z2VyLnNvXCIKICAgICAtREdURVNUX0hBU19SVFRJPTAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9lZmwvS2V5ZWREZWNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTAxNDczZjZmOWY4NzFmYjcyNDUw
YzAxYmRmYjM0NzA0MTNlYThhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL2VmbC9LZXllZERlY29kZXIuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIktleWVkRGVjb2Rlci5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworS2V5ZWREZWNvZGVyOjpLZXllZERl
Y29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7Cit9CisKK0tleWVkRGVj
b2Rlcjo6fktleWVkRGVjb2RlcigpCit7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVC
eXRlcyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgdWludDhfdComIGJ5dGVzLCBzaXplX3QmIHNp
emUpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2Rl
Qm9vbChjb25zdCBTdHJpbmcmIGtleSwgYm9vbCYgcmVzdWx0KQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmRlY29kZVVJbnQzMihjb25zdCBTdHJpbmcmIGtl
eSwgdWludDMyX3QmIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5
ZWREZWNvZGVyOjpkZWNvZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50MzJfdCYgcmVzdWx0
KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmRlY29kZUlu
dDY0KGNvbnN0IFN0cmluZyYga2V5LCBpbnQ2NF90JiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlRmxvYXQoY29uc3QgU3RyaW5nJiBr
ZXksIGZsb2F0JiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEtleWVk
RGVjb2Rlcjo6ZGVjb2RlRG91YmxlKGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUmIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJp
bmcoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyYgcmVzdWx0KQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmJlZ2luT2JqZWN0KGNvbnN0IFN0cmluZyYga2V5
KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBLZXllZERlY29kZXI6OmVuZE9iamVj
dCgpCit7Cit9CisKK2Jvb2wgS2V5ZWREZWNvZGVyOjpiZWdpbkFycmF5KGNvbnN0IFN0cmluZyYg
a2V5KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLZXllZERlY29kZXI6OmJlZ2lu
QXJyYXlFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgS2V5ZWREZWNv
ZGVyOjplbmRBcnJheUVsZW1lbnQoKQoreworfQorCit2b2lkIEtleWVkRGVjb2Rlcjo6ZW5kQXJy
YXkoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWREZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
ZWZsL0tleWVkRGVjb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzlkODNjMTU1OGQzZTNiYmEzYmMyMTVk
ZjZkZDc4ZjgzZDc2ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
ZWZsL0tleWVkRGVjb2Rlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEtleWVkRGVjb2Rl
cl9oCisjZGVmaW5lIEtleWVkRGVjb2Rlcl9oCisKKyNpbmNsdWRlIDxFZXQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0tleWVkQ29kaW5nLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBLZXllZERlY29kZXIgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6S2V5ZWREZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBLZXllZERlY29kZXIo
Y29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90KTsKKyAgICB2aXJ0dWFsIH5LZXllZERlY29kZXIo
KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQnl0ZXMoY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IHVpbnQ4X3QqJiwgc2l6ZV90Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGRlY29kZUJvb2woY29uc3QgU3RyaW5nJiBrZXksIGJvb2wmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlVUludDMyKGNvbnN0IFN0cmluZyYga2V5LCB1aW50
MzJfdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVJbnQzMihjb25zdCBTdHJp
bmcmIGtleSwgaW50MzJfdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVJbnQ2
NChjb25zdCBTdHJpbmcmIGtleSwgaW50NjRfdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBkZWNvZGVGbG9hdChjb25zdCBTdHJpbmcmIGtleSwgZmxvYXQmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgZGVjb2RlRG91YmxlKGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBT
dHJpbmcmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBiZWdpbk9iamVjdChjb25zdCBT
dHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZE9iamVjdCgpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBib29sIGJlZ2luQXJyYXkoY29uc3QgU3RyaW5nJiBrZXkpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBiZWdpbkFycmF5RWxlbWVudCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBlbmRBcnJheUVsZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZW5kQXJyYXkoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gS2V5ZWREZWNvZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5
ZWRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjhmZWE3NzhiNzUyYzgzYWUyYWUwOGZlZmUyNjE2
YTQ3N2IwOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9L
ZXllZEVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIktleWVkRW5jb2Rlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworS2V5ZWRFbmNvZGVyOjpLZXllZEVuY29k
ZXIoKQoreworfQorCitLZXllZEVuY29kZXI6On5LZXllZEVuY29kZXIoKQoreworfQorCit2b2lk
IEtleWVkRW5jb2Rlcjo6ZW5jb2RlQnl0ZXMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHVpbnQ4
X3QqIGJ5dGVzLCBzaXplX3Qgc2l6ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuY29k
ZUJvb2woY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpCit7Cit9CisKK3ZvaWQgS2V5ZWRF
bmNvZGVyOjplbmNvZGVVSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKQor
eworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5jb2RlSW50MzIoY29uc3QgU3RyaW5nJiBrZXks
IGludDMyX3QgdmFsdWUpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmNvZGVJbnQ2NChj
b25zdCBTdHJpbmcmIGtleSwgaW50NjRfdCB2YWx1ZSkKK3sKK30KKwordm9pZCBLZXllZEVuY29k
ZXI6OmVuY29kZUZsb2F0KGNvbnN0IFN0cmluZyYga2V5LCBmbG9hdCB2YWx1ZSkKK3sKK30KKwor
dm9pZCBLZXllZEVuY29kZXI6OmVuY29kZURvdWJsZShjb25zdCBTdHJpbmcmIGtleSwgZG91Ymxl
IHZhbHVlKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nKGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rl
cjo6YmVnaW5PYmplY3QoY29uc3QgU3RyaW5nJiBrZXkpCit7Cit9CisKK3ZvaWQgS2V5ZWRFbmNv
ZGVyOjplbmRPYmplY3QoKQoreworfQorCit2b2lkIEtleWVkRW5jb2Rlcjo6YmVnaW5BcnJheShj
b25zdCBTdHJpbmcmIGtleSkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmJlZ2luQXJyYXlF
bGVtZW50KCkKK3sKK30KKwordm9pZCBLZXllZEVuY29kZXI6OmVuZEFycmF5RWxlbWVudCgpCit7
Cit9CisKK3ZvaWQgS2V5ZWRFbmNvZGVyOjplbmRBcnJheSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBLZXllZEVuY29kZXI6OmZpbmlzaEVuY29kaW5nKCkKK3sKKyAgICByZXR1
cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoIiIsIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvS2V5ZWRFbmNvZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
MzQ3ODE2ZGU2ZWM0YjFjZDYzNTc3YzIzMDZhYWMyNmNiZjA4MzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0tleWVkRW5jb2Rlci5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEtleWVkRW5jb2Rlcl9oCisjZGVmaW5lIEtleWVkRW5jb2Rlcl9oCisKKyNp
bmNsdWRlIDxFZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWVkQ29kaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgS2V5ZWRFbmNvZGVyIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OktleWVkRW5jb2RlciB7CitwdWJsaWM6CisgICAgS2V5ZWRFbmNvZGVyKCk7CisgICAgfktl
eWVkRW5jb2RlcigpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4gZmluaXNoRW5jb2RpbmcoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgZW5jb2RlQnl0ZXMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVCb29sKGNvbnN0IFN0cmluZyYg
a2V5LCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlVUludDMyKGNvbnN0
IFN0cmluZyYga2V5LCB1aW50MzJfdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29k
ZUludDMyKGNvbnN0IFN0cmluZyYga2V5LCBpbnQzMl90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZW5jb2RlSW50NjQoY29uc3QgU3RyaW5nJiBrZXksIGludDY0X3QpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVGbG9hdChjb25zdCBTdHJpbmcmIGtleSwgZmxvYXQpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVEb3VibGUoY29uc3QgU3RyaW5nJiBrZXks
IGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZVN0cmluZyhjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQg
YmVnaW5PYmplY3QoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlbmRPYmplY3QoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBiZWdpbkFycmF5KGNv
bnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5BcnJheUVs
ZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQXJyYXlFbGVtZW50KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZEFycmF5KCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEtleWVkRW5jb2Rlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAK
aW5kZXggNWMxODE5ZjY5ZWEzODI3YmU5Njg5YmUyY2FjYzRkM2U5OTJlYjRhMC4uNTFiMDEzOTIy
YTBlZDM2ZmQ0ZWI2NGQ3MWRkMWFiN2YzZWQ3MzNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcApAQCAtOTAsNCAr
OTAsMTMgQEAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZEYXRhYmFzZVByb2Nlc3MoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBT
dHJpbmc+IHdlYktpdERhdGFiYXNlUHJvY2Vzc05hbWUoZmluZFByb2Nlc3NQYXRoKERBVEFCQVNF
UFJPQ0VTU05BTUUpKTsKKworICAgIHJldHVybiB3ZWJLaXREYXRhYmFzZVByb2Nlc3NOYW1lOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNzUHJveHlFZmwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9lZmwvRGF0YWJhc2VQcm9jZXNz
UHJveHlFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmY1NGUzMTFjYjE3MTU4MzNjZDhlMmFmMjYxODRh
N2YxM2VkZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0
YWJhc2VzL2VmbC9EYXRhYmFzZVByb2Nlc3NQcm94eUVmbC5jcHAKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NQcm94eS5oIgor
CisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZs
LmNwcAppbmRleCA3ZjY5MzRlZTlmYWNhOWEyYTI1MWJjZTQ4NzliZWM1ZGUxNWY1MTZjLi4yYmJj
OTBiMDIyMzIwMzU3NDE2YjYyNjY1MTQxYzY0YjI0NTcyYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJF
ZmwuY3BwCkBAIC04OSw2ICs4OSwxMSBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJv
Y2VzcygpCiAgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQ
cm9jZXNzKCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCisgICAgY2FzZSBEYXRhYmFzZVByb2Nlc3M6CisgICAgICAgIGV4ZWN1dGFibGVQYXRo
ID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOworICAgICAgICBicmVhazsKKyNl
bmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBy
b2Nlc3NQb29sRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUHJvY2Vz
c1Bvb2xFZmwuY3BwCmluZGV4IGUzZWUxMTI2ZTk1YzhhZDIzNzkzNjZlMjA0ZTA0ZGE0NmI4NWEz
MjguLjFmODQxNDI3NGFmNjY2MmQ4YjVjYjRiN2VjZjY4ZmM0M2NiZmNiNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc1Bvb2xFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc1Bvb2xFZmwuY3BwCkBAIC0x
MDksOCArMTA5LDcgQEAgU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1
bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCiAKIFN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVn
YWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KGVmcmVldF9kYXRhX2hvbWVfZ2V0KCkpICsgIi9XZWJLaXRFZmwvSW5kZXhlZERC
IjsKIH0KIAogU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybURlZmF1bHRJY29uRGF0YWJh
c2VQYXRoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
IGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggY2Y2N2RmMjZlNGUzZGViOWEx
MmQ4YzEzYzQ5N2I5YzRmZjZlNWMxYS4uMDE0Njg2ZDY5OTNlZWYwODQ3MTU4ZjUyOWU5NzNhYjI4
OTA2NmY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTc5LDYgKzc5LDcgQEAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19SRUdJT05TIFBVQkxJQyBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfU0NST0xMX1NOQVAgUFVC
TElDIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBVQkxJQyBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIFBV
QkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ET000X0VW
RU5UU19DT05TVFJVQ1RPUiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIFBVQkxJQyBPTikKQEAgLTkxLDcgKzkyLDcg
QEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dBTUVQQUQgUFVCTElD
IE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEX0RF
UFJFQ0FURUQgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgUFVCTElDIE9GRikKLVdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIFBVQkxJ
QyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfSU5QVVRfVFlQRV9DT0xPUiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfTElOS19QUkVGRVRDSCBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfQ0FQVFVSRSBQVUJMSUMgT04pCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmU3ZDgyYzJhNWM2
OWRmYzY0MjM4NmFiODljMjlhNTk4N2MwZmFjMy4uNDIzODQ1ZTNhZjcyNGVlNmNhZjA0MDRjMDg3
NTM3MjI3YzM2Yzc4YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTA5ICBKb29uZ2h1biBQYXJrICA8amg3
MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBJbmRleGVkREIg
YmFzZWQgb24gRGF0YWJhc2VQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwog
MjAxNS0wNy0wOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gcGFuZ28gc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBkZWZhdWx0IGpo
YnVpbGQgbW9kdWxlc2V0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVh
dHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5k
ZXggMDg3ZTY4YzExYjBiNDcxMjM4YjdmYjg4MmVjNzQ5ZjE5ZmI3NGM3Ny4uNTVmOGJkOGViMWVk
YWFhMmFjZWJlOWU0NmZmNWNjMGMxYTNiN2M0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbQpAQCAtMjU5LDcgKzI1OSw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0
KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0
ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNHdGsoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2MgPT4gIlRvZ2dsZSBJbnB1dCBTcGVlY2gg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9TUEVFQ0giLCBkZWZhdWx0
ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBwb3J0IH0sCmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOTVkOTIzMzQyZWQ3NzA4MzRmM2ZmNzRlZmE1ZDZkNjQ0
NjZmM2E4MS4uYzgyMjQ3ZTQ1NGQxMmMyMmE5NzdmY2Y3M2IyNjQ4ZDBmNDg5ODI1NyAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3
LTA5ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBb
RUZMXVtXSzJdIEFkZCBJbmRleGVkREIgYmFzZWQgb24gRGF0YWJhc2VQcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOgorCiAyMDE1LTA3LTAzICBFbWFudWVsZSBBaW5hICA8ZW1hbnVlbGUu
YWluYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIEZvcmNlZnVsbHkgZGlzYWJsZSBn
dGstZG9jIGFuZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2hlbiBjcm9zc2J1aWxkaW5nCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>