<?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>127736</bug_id>
          
          <creation_ts>2014-01-27 17:19:54 -0800</creation_ts>
          <short_desc>IDB: Cursor support - Messaging, IPC, Threading plumbing</short_desc>
          <delta_ts>2014-01-27 20:59:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972683</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-27 17:19:54 -0800</bug_when>
    <thetext>IDB: Cursor support - Messaging, IPC, Threading plumbing

In radar as &lt;rdar://problem/15779645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972710</commentid>
    <comment_count>1</comment_count>
      <attachid>222390</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-27 17:52:36 -0800</bug_when>
    <thetext>Created attachment 222390
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972711</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-27 17:54:04 -0800</bug_when>
    <thetext>Attachment 222390 did not pass style-queue:


ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:87:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:563:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:584:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:605:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972772</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-27 20:59:34 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162911</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222390</attachid>
            <date>2014-01-27 17:52:36 -0800</date>
            <delta_ts>2014-01-27 20:54:22 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34491</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzNTBlYzg3Li4wN2U0MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDEtMjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElEQjogQ3Vyc29yIHN1cHBvcnQgLSBNZXNzYWdpbmcsIElQQywgVGhyZWFkaW5nIHBsdW1i
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25PcGVyYXRpb246OmN1cnNvcklEKToKKyAgICAgICAgKFdl
YkNvcmU6OkN1cnNvckFkdmFuY2VPcGVyYXRpb246OmN1cnNvcklEKToKKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb246OnRyYW5zYWN0aW9uSUQpOgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisKIDIwMTQtMDEtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgTWFjIGJ1aWxkIGZvbGxvd2luZyA8aHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTYyODg3PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRp
b25zLmgKaW5kZXggMmRiYWQxYy4uNDY3ZjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5o
CkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGUgZmlu
YWw7CiAKKyAgICBpbnQ2NF90IGN1cnNvcklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPmlk
KCk7IH0KICAgICBJREJLZXkqIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5LmdldCgpOyB9CiAK
IHByaXZhdGU6CkBAIC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3Zl
cnJpZGUgZmluYWw7CiAKKyAgICBpbnQ2NF90IGN1cnNvcklEKCkgY29uc3QgeyByZXR1cm4gbV9j
dXJzb3ItPmlkKCk7IH0KICAgICB1bnNpZ25lZCBsb25nIGNvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9jb3VudDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5o
CmluZGV4IGU0ZDkzODAuLjk2NGNiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRp
b25zLmgKQEAgLTM1NCw2ICszNTQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJyaWRl
IGZpbmFsOwogCisgICAgaW50NjRfdCB0cmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2FjdGlvbi0+aWQoKTsgfQogICAgIGludDY0X3Qgb2JqZWN0U3RvcmVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2JqZWN0U3RvcmVJRDsgfQogICAgIGludDY0X3QgaW5kZXhJRCgpIGNvbnN0IHsg
cmV0dXJuIG1faW5kZXhJRDsgfQogICAgIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDk3ZmFlNjMuLjFjZjU0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDg5LDYgKzMw
ODksNyBAQCBfX1pON1dlYkNvcmUyMUNyb3NzVGhyZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzE1
SURCS2V5UmFuZ2VEYXRhRUU0Y29weUVSS1MxXwogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENv
cGllckJhc2VJTGIwRUxiMEVOU18xNklEQkluZGV4TWV0YWRhdGFFRTRjb3B5RVJLUzFfCiBfX1pO
N1dlYkNvcmUyMUNyb3NzVGhyZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzIySURCT2JqZWN0U3Rv
cmVNZXRhZGF0YUVFNGNvcHlFUktTMV8KIF9fWk43V2ViQ29yZTIxQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlSUxiMEVMYjBFTlNfOUluZGV4ZWREQjEwQ3Vyc29yVHlwZUVFNGNvcHlFUktTMl8KK19fWk43
V2ViQ29yZTIxQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSUxiMEVMYjBFTlNfOUluZGV4ZWREQjE1Q3Vy
c29yRGlyZWN0aW9uRUU0Y29weUVSS1MyXwogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENvcGll
ckJhc2VJTGIwRUxiMEVOU185SW5kZXhlZERCMTVUcmFuc2FjdGlvbk1vZGVFRTRjb3B5RVJLUzJf
CiBfX1pON1dlYkNvcmU2SURCS2V5RDFFdgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2E2MTFiMC4u
ZTg4YjNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE0LTAxLTI3ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBJREI6IEN1cnNvciBzdXBwb3J0
IC0gTWVzc2FnaW5nLCBJUEMsIFRocmVhZGluZyBwbHVtYmluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGlwZSB0aHJlZSBjdXJzb3ItcmVsYXRlZCBj
YWxscyB0byB0aGUgRGF0YWJhc2VQcm9jZXNzLCBhbmQgaGFuZGxlIG1lc3NhZ2VzCisgICAgICAg
IGZyb20gdGhlIGRhdGFiYXNlIHByb2Nlc3Mgd2hlbiBpdCBpcyBkb25lIGhhbmRsaW5nIHRoZW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpk
aWRPcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6
ZGlkQWR2YW5jZUN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rp
b246OmRpZEl0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25u
ZWN0aW9uOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVj
dGlvbjo6Y3Vyc29yQWR2YW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5l
Y3Rpb246OmN1cnNvckl0ZXJhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisK
KyAgICAgICAgUGlwZSB0aGUgY2FsbHMgdGhyb3VnaCB0byB0aGUgYXBwcm9wcmlhdGUgVW5pcXVl
SURCRGF0YWJhc2U6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbjo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNvckFkdmFuY2UpOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjdXJzb3JJdGVyYXRlKToKKyAgICAgICAgKiBE
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNv
bm5lY3Rpb24ubWVzc2FnZXMuaW46CisKKyAgICAgICAgUGFzcyB0aGUgY2FsbHMgdG8gdGhlIGJh
Y2tpbmcgc3RvcmUgdGhyZWFkLCB0aGVuIG1lc3NhZ2UgYmFjayB0byB0aGUgV2ViUHJvY2Vzcwor
ICAgICAgICB3aGVuIHRoZSByZXF1ZXN0cyBhcmUgY29tcGxldGUuCisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6VW5p
cXVlSURCRGF0YWJhc2U6OmN1cnNvckFkdmFuY2UpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJ
REJEYXRhYmFzZTo6Y3Vyc29ySXRlcmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpvcGVuQ3Vyc29ySW5CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmFkdmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9yZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNr
aW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1
cnNvckluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6
OmRpZEl0ZXJhdGVDdXJzb3JJbkJhY2tpbmdTdG9yZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oOgorCisgICAgICAgICogU2hhcmVkL1dl
YkNyb3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3RvcjxjaGFyPj46
OmNvcHkpOgorICAgICAgICAqIFNoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5oOgorCisyMDE0
LTAxLTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBJREI6
IFJlbmFtZSAiSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyIiB0byBiZSBtb3JlIGdlbmVyYWwgcHVy
cG9zZSAodGFrZSAyKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3NzE3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24uY3BwCmluZGV4IDE1MDVkZmIuLmFiMmRiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogCisjaW5jbHVk
ZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIklEQklkZW50
aWZpZXIuaCIKQEAgLTIzMyw2ICsyMzQsNDEgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uOjpnZXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWMKICAg
ICB9KTsKIH0KIAordm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpvcGVuQ3Vyc29y
KHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IG9iamVj
dFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgaW50NjRfdCBjdXJzb3JEaXJlY3Rpb24sIGludDY0
X3QgY3Vyc29yVHlwZSwgaW50NjRfdCB0YXNrVHlwZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFu
Z2VEYXRhJiBrZXlSYW5nZURhdGEpCit7CisgICAgQVNTRVJUKG1fdW5pcXVlSURCRGF0YWJhc2Up
OworCisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBvcGVuQ3Vyc29yIHJlcXVlc3QgSUQg
JWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwor
ICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMp
OworICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPm9wZW5DdXJzb3IoSURCSWRlbnRpZmllcigqdGhp
cywgdHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIHN0YXRpY19jYXN0PElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uPihjdXJzb3JEaXJlY3Rpb24pLCBzdGF0aWNfY2FzdDxJ
bmRleGVkREI6OkN1cnNvclR5cGU+KGN1cnNvclR5cGUpLCBzdGF0aWNfY2FzdDxJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlPih0YXNrVHlwZSksIGtleVJhbmdlRGF0YSwgW2Nvbm5lY3Rpb24s
IHJlcXVlc3RJRF0oaW50NjRfdCBjdXJzb3JJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkgeworICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRPcGVuQ3Vyc29yKHJlcXVlc3RJRCwgY3Vyc29y
SUQsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y3Vyc29yQWR2YW5jZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgY3Vyc29ySUQsIHVpbnQ2NF90IGNvdW50KQoreworICAgIEFTU0VSVChtX3VuaXF1
ZUlEQkRhdGFiYXNlKTsKKworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vyc29yQWR2
YW5jZSByZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBjdXJzb3JJ
RCk7CisgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24o
dGhpcyk7CisgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29yQWR2YW5jZShJREJJZGVudGlm
aWVyKCp0aGlzLCBjdXJzb3JJRCksIGNvdW50LCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShjb25z
dCBJREJLZXlEYXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkgeworICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSA9
IHZhbHVlID8gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KHZhbHVlLT5kYXRhKCkpLCB2YWx1ZS0+c2l6ZSgpKSA6IElQQzo6RGF0YVJlZmVyZW5jZSgp
OworICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0
aW9uOjpEaWRBZHZhbmNlQ3Vyc29yKHJlcXVlc3RJRCwgcmVzdWx0S2V5LCBwcmltYXJ5S2V5LCBk
YXRhLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgIH0pOworfQorCit2b2lkIERhdGFi
YXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNvckl0ZXJhdGUodWludDY0X3QgcmVxdWVzdElE
LCBpbnQ2NF90IGN1cnNvcklELCBjb25zdCBJREJLZXlEYXRhJiBrZXkpCit7CisgICAgQVNTRVJU
KG1fdW5pcXVlSURCRGF0YWJhc2UpOworCisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBj
dXJzb3JJdGVyYXRlIHJlcXVlc3QgSUQgJWxsdSwgY3Vyc29yIGlkICVsbGkiLCByZXF1ZXN0SUQs
IGN1cnNvcklEKTsKKyAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY29u
bmVjdGlvbih0aGlzKTsKKyAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jdXJzb3JJdGVyYXRlKElE
QklkZW50aWZpZXIoKnRoaXMsIGN1cnNvcklEKSwga2V5LCBbY29ubmVjdGlvbiwgcmVxdWVzdElE
XShjb25zdCBJREJLZXlEYXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlL
ZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgeworICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSA9IHZhbHVlID8gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHZhbHVlLT5kYXRhKCkpLCB2YWx1ZS0+c2l6ZSgpKSA6IElQQzo6RGF0YVJlZmVy
ZW5jZSgpOworICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJD
b25uZWN0aW9uOjpEaWRJdGVyYXRlQ3Vyc29yKHJlcXVlc3RJRCwgcmVzdWx0S2V5LCBwcmltYXJ5
S2V5LCBkYXRhLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgIH0pOworfQorCiBJUEM6
OkNvbm5lY3Rpb24qIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkKIHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFi
YXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCmluZGV4IDVhN2FkYWUu
LjdhZmFlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5o
CkBAIC04Miw2ICs4MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHV0UmVjb3JkKHVpbnQ2NF90
IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZh
bHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJRHMsIGNv
bnN0IFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURCS2V5RGF0YT4+JiBpbmRleEtleXMpOwogICAg
IHZvaWQgZ2V0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklE
LCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6
SURCS2V5UmFuZ2VEYXRhJiwgaW50NjRfdCBjdXJzb3JUeXBlKTsKIAorICAgIHZvaWQgb3BlbkN1
cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBv
YmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGludDY0X3QgY3Vyc29yRGlyZWN0aW9uLCBp
bnQ2NF90IGN1cnNvclR5cGUsIGludDY0X3QgdGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktl
eVJhbmdlRGF0YSYpOworICAgIHZvaWQgY3Vyc29yQWR2YW5jZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgY3Vyc29ySUQsIHVpbnQ2NF90IGNvdW50KTsKKyAgICB2b2lkIGN1cnNvckl0ZXJh
dGUodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELCBjb25zdCBXZWJDb3JlOjpJ
REJLZXlEYXRhJiBrZXkpOworCiAgICAgUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogICAgIHVpbnQ2NF90IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCA4MWIxYTY0Li4xODkwM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00MCw3
ICs0MCwxMSBAQCBtZXNzYWdlcyAtPiBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBEZWxldGVJbmRleCh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3Qg
dHJhbnNhY3Rpb25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQpCiAK
ICAgICBQdXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSBrZXksIElQQzo6RGF0
YVJlZmVyZW5jZSB2YWx1ZSwgaW50NjRfdCBwdXRNb2RlLCBWZWN0b3I8aW50NjRfdD4gaW5kZXhJ
RHMsIFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURCS2V5RGF0YT4+IGluZGV4S2V5cykKLSAgICBH
ZXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJREJLZXlSYW5nZURh
dGEga2V5UmFuZ2UsIGludDY0X3QgY3Vyc29yVHlwZSk7CisgICAgR2V0UmVjb3JkKHVpbnQ2NF90
IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGludDY0X3QgaW5kZXhJRCwgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhIGtleVJhbmdlLCBpbnQ2
NF90IGN1cnNvclR5cGUpCisgICAgCisgICAgT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGlu
ZGV4SUQsIGludDY0X3QgY3Vyc29yRGlyZWN0aW9uLCBpbnQ2NF90IGN1cnNvclR5cGUsIGludDY0
X3QgdGFza1R5cGUsIFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSBrZXlSYW5nZSkKKyAgICBDdXJz
b3JBZHZhbmNlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgdWludDY0X3Qg
Y291bnQpCisgICAgQ3Vyc29ySXRlcmF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vy
c29ySUQsIFdlYkNvcmU6OklEQktleURhdGEga2V5KQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAppbmRleCAzNGY5MzMwLi5kNTI3ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcApAQCAtNTQ3LDYgKzU0Nyw3MSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpn
ZXRSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbgog
ICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0
YWJhc2U6OmdldFJlY29yZEZyb21CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBtX21ldGFkYXRhLT5vYmplY3RTdG9yZXMuZ2V0KG9iamVjdFN0b3JlSUQpLCBp
bmRleElELCBrZXlSYW5nZURhdGEsIGN1cnNvclR5cGUpKTsKIH0KIAordm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBjdXJzb3JEaXJlY3Rpb24sIFdlYkNvcmU6OkluZGV4
ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6
OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmIGtleVJh
bmdlRGF0YSwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIHVpbnQzMl90LCBjb25zdCBTdHJp
bmcmKT4gY2FsbGJhY2spCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlm
ICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgeworICAgICAgICBjYWxsYmFjaygwLCBJTlZBTElE
X1NUQVRFX0VSUiwgIlVuYWJsZSB0byBvcGVuIGN1cnNvciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0
IGhhcyBzaHV0IGRvd24iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCht
X21ldGFkYXRhLT5vYmplY3RTdG9yZXMuY29udGFpbnMob2JqZWN0U3RvcmVJRCkpOworCisgICAg
UmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8aW50NjRfdCwg
dWludDMyX3QsIGNvbnN0IFN0cmluZyY+OjpjcmVhdGUoW3RoaXMsIGNhbGxiYWNrXShpbnQ2NF90
IGN1cnNvcklELCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KSB7CisgICAgICAgIGNhbGxiYWNrKGN1cnNvcklELCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSk7
CisgICAgfSwgW3RoaXMsIGNhbGxiYWNrXSgpIHsKKyAgICAgICAgY2FsbGJhY2soMCwgSU5WQUxJ
RF9TVEFURV9FUlIsICJVbmFibGUgdG8gZ2V0IHJlY29yZCBmcm9tIGRhdGFiYXNlIik7CisgICAg
fSk7CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSByZXF1ZXN0LT5yZXF1ZXN0SUQoKTsKKyAg
ICBtX3BlbmRpbmdEYXRhYmFzZVRhc2tzLmFkZChyZXF1ZXN0SUQsIHJlcXVlc3QucmVsZWFzZSgp
KTsKKworICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6Om9wZW5DdXJzb3JJbkJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIGN1cnNvckRpcmVjdGlvbiwg
Y3Vyc29yVHlwZSwgdGFza1R5cGUsIGtleVJhbmdlRGF0YSkpOworfQorCit2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpjdXJzb3JBZHZhbmNlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50
aWZpZXIsIHVpbnQ2NF90IGNvdW50LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6SURCS2V5
RGF0YSwgV2ViQ29yZTo6SURCS2V5RGF0YSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKKyAg
ICAgICAgY2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9F
UlIsICJVbmFibGUgdG8gYWR2YW5jZSBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMg
c2h1dCBkb3duIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8QXN5bmNS
ZXF1ZXN0PiByZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxXZWJDb3JlOjpJREJLZXlEYXRhLCBX
ZWJDb3JlOjpJREJLZXlEYXRhLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIHVp
bnQzMl90LCBjb25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oV2ViQ29yZTo6
SURCS2V5RGF0YSBrZXksIFdlYkNvcmU6OklEQktleURhdGEgcHJpbWFyeUtleSwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgICAgIGNhbGxiYWNrKGtleSwgcHJpbWFyeUtl
eSwgdmFsdWUsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKKyAgICB9LCBbdGhpcywgY2FsbGJh
Y2tdKCkgeworICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZB
TElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRhYmFzZSIpOwor
ICAgIH0pOworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+cmVxdWVzdElEKCk7
CisgICAgbV9wZW5kaW5nRGF0YWJhc2VUYXNrcy5hZGQocmVxdWVzdElELCByZXF1ZXN0LnJlbGVh
c2UoKSk7CisKKyAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjphZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwg
Y3Vyc29ySWRlbnRpZmllciwgY291bnQpKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
Y3Vyc29ySXRlcmF0ZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpJREJLZXlEYXRhJiBrZXksIHN0ZDo6ZnVuY3Rpb248dm9pZChXZWJDb3JlOjpJ
REJLZXlEYXRhLCBXZWJDb3JlOjpJREJLZXlEYXRhLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykg
eworICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElEX1NU
QVRFX0VSUiwgIlVuYWJsZSB0byBpdGVyYXRlIGN1cnNvciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0
IGhhcyBzaHV0IGRvd24iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxB
c3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFdlYkNvcmU6OklEQktleURh
dGEsIFdlYkNvcmU6OklEQktleURhdGEsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyY+OjpjcmVhdGUoW3RoaXMsIGNhbGxiYWNrXShXZWJD
b3JlOjpJREJLZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgY2FsbGJhY2soa2V5LCBwcmlt
YXJ5S2V5LCB2YWx1ZSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIH0sIFt0aGlzLCBj
YWxsYmFja10oKSB7CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElOVkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIGl0ZXJhdGUgY3Vyc29yIGluIGRhdGFiYXNl
Iik7CisgICAgfSk7CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSByZXF1ZXN0LT5yZXF1ZXN0
SUQoKTsKKyAgICBtX3BlbmRpbmdEYXRhYmFzZVRhc2tzLmFkZChyZXF1ZXN0SUQsIHJlcXVlc3Qu
cmVsZWFzZSgpKTsKKworICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlz
LCAmVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3JJbkJhY2tpbmdTdG9yZSwgcmVxdWVz
dElELCBjdXJzb3JJZGVudGlmaWVyLCBrZXkpKTsKK30KKwogdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlEcywg
SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKQEAgLTc2Miw2ICs4MjcsNTEgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlk
R2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IEkKICAg
ICByZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3QocmVzdWx0LCBlcnJvckNvZGUsIGVycm9yTWVzc2Fn
ZSk7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3JJbkJhY2tpbmdTdG9y
ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6
OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5
cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6
OklEQktleVJhbmdlRGF0YSYpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorCisgICAgcG9z
dE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNl
OjpkaWRPcGVuQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgMCwgSURCRGF0YWJhc2VF
eGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJhZHZhbmNpbmcgY3Vyc29ycyBp
biBiYWNraW5nIHN0b3JlIG5vdCBzdXBwb3J0ZWQgeWV0IikpKTsKK30KKwordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgaW50NjRfdCBjdXJzb3JJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKK3sKKyAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5k
aW5nRGF0YWJhc2VUYXNrcy50YWtlKHJlcXVlc3RJRCk7CisgICAgQVNTRVJUKHJlcXVlc3QpOwor
CisgICAgcmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KGN1cnNvcklELCBlcnJvckNvZGUsIGVycm9y
TWVzc2FnZSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFkdmFuY2VDdXJzb3JJbkJh
Y2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNv
cklkZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQK
KworICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6ZGlkQWR2YW5jZUN1cnNvckluQmFja2luZ1N0b3JlLCByZXF1ZXN0SUQsIElE
QktleURhdGEoKSwgSURCS2V5RGF0YSgpLCBWZWN0b3I8Y2hhcj4oKSwgSURCRGF0YWJhc2VFeGNl
cHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJhZHZhbmNpbmcgY3Vyc29ycyBpbiBi
YWNraW5nIHN0b3JlIG5vdCBzdXBwb3J0ZWQgeWV0IikpKTsKK30KKwordm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkQWR2YW5jZUN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYga2V5LCBjb25zdCBXZWJDb3JlOjpJREJLZXlE
YXRhJiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHZhbHVlLCB1aW50MzJfdCBlcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIFJlZlB0cjxBc3luY1Jl
cXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdEYXRhYmFzZVRhc2tzLnRha2UocmVxdWVzdElEKTsK
KyAgICBBU1NFUlQocmVxdWVzdCk7CisKKyAgICByZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3Qoa2V5
LCBwcmltYXJ5S2V5LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh2YWx1ZS5kYXRhKCksIHZhbHVlLnNp
emUoKSksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6aXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorCisgICAgcG9zdE1haW5UaHJlYWRU
YXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRJdGVyYXRl
Q3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgSURCS2V5RGF0YSgpLCBJREJLZXlEYXRh
KCksIFZlY3RvcjxjaGFyPigpLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBB
U0NJSUxpdGVyYWwoIml0ZXJhdGluZyBjdXJzb3JzIGluIGJhY2tpbmcgc3RvcmUgbm90IHN1cHBv
cnRlZCB5ZXQiKSkpOworfQorCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRJdGVyYXRlQ3Vy
c29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiBrZXksIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0
IFZlY3RvcjxjaGFyPiYgdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCit7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IG1fcGVu
ZGluZ0RhdGFiYXNlVGFza3MudGFrZShyZXF1ZXN0SUQpOworICAgIEFTU0VSVChyZXF1ZXN0KTsK
KworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXksIHByaW1hcnlLZXksIFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKHZhbHVlLmRhdGEoKSwgdmFsdWUuc2l6ZSgpKSwgZXJyb3JDb2RlLCBlcnJv
ck1lc3NhZ2UpOworfQorCiBTdHJpbmcgVW5pcXVlSURCRGF0YWJhc2U6OmFic29sdXRlRGF0YWJh
c2VEaXJlY3RvcnkoKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1Vu
aXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggNWRlOTc1ZC4uNThiOTdiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURC
RGF0YWJhc2UuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSURCSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSURCRGF0YWJhc2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIu
aD4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtMzks
NiArNDAsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBTaGFyZWRCdWZmZXI7CisKIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFk
YXRhOwogc3RydWN0IElEQktleURhdGE7CiB9CkBAIC04NCw2ICs4NywxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwdXRSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgaW5kZXhJRHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURC
S2V5RGF0YT4+JiBpbmRleEtleXMsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJ
REJLZXlEYXRhJiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7CiAgICAgdm9p
ZCBnZXRSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBp
bnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6SURC
S2V5UmFuZ2VEYXRhJiwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SURCR2V0UmVzdWx0JiwgdWludDMyX3QsIGNvbnN0IFN0
cmluZyYpPiBjYWxsYmFjayk7CiAKKyAgICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0
X3QgaW5kZXhJRCwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIFdlYkNvcmU6
OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpUYXNr
VHlwZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgc3RkOjpmdW5jdGlvbjx2b2lk
KGludDY0X3QsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOworICAgIHZvaWQg
Y3Vyc29yQWR2YW5jZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50
NjRfdCBjb3VudCwgc3RkOjpmdW5jdGlvbjx2b2lkKFdlYkNvcmU6OklEQktleURhdGEsIFdlYkNv
cmU6OklEQktleURhdGEsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgdWludDMy
X3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7CisgICAgdm9pZCBjdXJzb3JJdGVyYXRlKGNv
bnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktl
eURhdGEmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6SURCS2V5RGF0YSwgV2ViQ29yZTo6
SURCS2V5RGF0YSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwg
Y29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKTsKKwogcHJpdmF0ZToKICAgICBVbmlxdWVJREJEYXRh
YmFzZShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKIApAQCAtMTI5LDYgKzEz
Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxldGVJbmRleEluQmFja2luZ1N0b3JlKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCk7CiAgICAgdm9pZCBwdXRS
ZWNvcmRJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIHZhbHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJ
RHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURCS2V5RGF0YT4+JiBpbmRleEtleXMp
OwogICAgIHZvaWQgZ2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29y
ZTo6SURCS2V5UmFuZ2VEYXRhJiwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlKTsKKyAg
ICB2b2lkIG9wZW5DdXJzb3JJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9y
ZUlELCBpbnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9u
LCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFj
a2VuZDo6VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOworICAgIHZv
aWQgYWR2YW5jZUN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
SURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgdWludDY0X3QgY291bnQpOworICAgIHZv
aWQgaXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
SURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0
YSYpOwogCiAgICAgdm9pZCBzaHV0ZG93bkJhY2tpbmdTdG9yZSgpOwogCkBAIC0xNDQsNiArMTU0
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KHVpbnQ2NF90IHJlcXVlc3RJ
RCwgYm9vbCBzdWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJlY29yZEluQmFja2luZ1N0b3JlKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90IGVy
cm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlkR2V0UmVj
b3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklE
QkdldFJlc3VsdCYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOworICAgIHZvaWQgZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVl
c3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUo
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZlY3RvcjxjaGFyPiYsIHVpbnQzMl90IGVycm9yQ29k
ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNv
ckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8Y2hhcj4mLCB1
aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lk
IGRpZFNodXRkb3duQmFja2luZ1N0b3JlKCk7CiAgICAgdm9pZCBkaWRDb21wbGV0ZUJvb2xSZXF1
ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggZTEzNTQ0Ny4uODc0OTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
CkBAIC00NSw2ICs0NSwxMyBAQCBJREJJZGVudGlmaWVyIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIElEQklkZW50aWZpZXI+Ojpjb3B5KGNvbnN0IElEQgogICAgIHJldHVybiB0
cmFuc2FjdGlvbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCk7CiB9CiAKK1ZlY3RvcjxjaGFyPiBD
cm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8Y2hhcj4+Ojpjb3B5KGNv
bnN0IFZlY3RvcjxjaGFyPiYgdmVjdG9yKQoreworICAgIFZlY3RvcjxjaGFyPiByZXN1bHQ7Cisg
ICAgcmVzdWx0LmFwcGVuZFZlY3Rvcih2ZWN0b3IpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
IFZlY3RvcjxpbnQ2NF90PiBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0
b3I8aW50NjRfdD4+Ojpjb3B5KGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgdmVjdG9yKQogewogICAg
IFZlY3RvcjxpbnQ2NF90PiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDcm9z
c1RocmVhZENvcGllci5oCmluZGV4IGZkNDBlMTQuLjdkYzVlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5oCkBAIC01MCw2ICs1MCwxMCBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBXZWJLaXQ6
OklEQklkZW50aWZpZXI+IHsKICAgICBzdGF0aWMgV2ViS2l0OjpJREJJZGVudGlmaWVyIGNvcHko
Y29uc3QgV2ViS2l0OjpJREJJZGVudGlmaWVyJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBD
cm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8Y2hhcj4+IHsKKyAgICBz
dGF0aWMgVmVjdG9yPGNoYXI+IGNvcHkoY29uc3QgVmVjdG9yPGNoYXI+Jik7Cit9OworCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8
aW50NjRfdD4+IHsKICAgICBzdGF0aWMgVmVjdG9yPGludDY0X3Q+IGNvcHkoY29uc3QgVmVjdG9y
PGludDY0X3Q+Jik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rp
b24uY3BwCmluZGV4IGZlMmQ4Y2MuLmQwMDZjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTQyMCw4ICs0MjAsNDIgQEAgdm9pZCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uOjpkaWRHZXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBX
ZWJDb3JlOjpJREIKICAgICBzZXJ2ZXJSZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3QoZ2V0UmVzdWx0
LCBlcnJvckNvZGUgPyBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBlcnJvck1l
c3NhZ2UpIDogbnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6b3Bl
bkN1cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBPcGVuQ3Vyc29yT3BlcmF0aW9u
Jiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRp
ZE9wZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELCB1aW50MzJf
dCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogeworICAgIExPRyhJREIs
ICJXZWJQcm9jZXNzIGRpZE9wZW5DdXJzb3IgcmVxdWVzdCBJRCAlbGx1IChlcnJvciAtICVzKSIs
IHJlcXVlc3RJRCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworCisgICAgUmVmUHRyPEFz
eW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IG1fc2VydmVyUmVxdWVzdHMudGFrZShyZXF1ZXN0
SUQpOworCisgICAgaWYgKCFzZXJ2ZXJSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBz
ZXJ2ZXJSZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3QoY3Vyc29ySUQsIGVycm9yQ29kZSA/IElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsK
K30KKwordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRBZHZhbmNlQ3Vyc29yKHVpbnQ2
NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSYga2V5LCBXZWJDb3JlOjpJREJLZXlE
YXRhJiBwcmltYXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwgdWlu
dDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBMT0co
SURCLCAiV2ViUHJvY2VzcyBkaWRBZHZhbmNlQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSAoZXJyb3Ig
LSAlcykiLCByZXF1ZXN0SUQsIGVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKworICAgIFJl
ZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJlcXVlc3RzLnRha2Uo
cmVxdWVzdElEKTsKKworICAgIGlmICghc2VydmVyUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh2
YWx1ZURhdGEuZGF0YSgpLCB2YWx1ZURhdGEuc2l6ZSgpKTsKKyAgICBzZXJ2ZXJSZXF1ZXN0LT5j
b21wbGV0ZVJlcXVlc3Qoa2V5Lm1heWJlQ3JlYXRlSURCS2V5KCksIHByaW1hcnlLZXkubWF5YmVD
cmVhdGVJREJLZXkoKSwgdmFsdWUucmVsZWFzZSgpLCBlcnJvckNvZGUgPyBJREJEYXRhYmFzZUVy
cm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpIDogbnVsbHB0cik7Cit9CisKK3Zv
aWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1
ZXN0SUQsIFdlYkNvcmU6OklEQktleURhdGEmIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSYgcHJp
bWFyeUtleSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZURhdGEsIHVpbnQzMl90IGVy
cm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgTE9HKElEQiwgIldl
YlByb2Nlc3MgZGlkSXRlcmF0ZUN1cnNvciByZXF1ZXN0IElEICVsbHUgKGVycm9yIC0gJXMpIiwg
cmVxdWVzdElELCBlcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisKKyAgICBSZWZQdHI8QXN5
bmNSZXF1ZXN0PiBzZXJ2ZXJSZXF1ZXN0ID0gbV9zZXJ2ZXJSZXF1ZXN0cy50YWtlKHJlcXVlc3RJ
RCk7CisKKyAgICBpZiAoIXNlcnZlclJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWVEYXRh
LmRhdGEoKSwgdmFsdWVEYXRhLnNpemUoKSk7CisgICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVS
ZXF1ZXN0KGtleS5tYXliZUNyZWF0ZUlEQktleSgpLCBwcmltYXJ5S2V5Lm1heWJlQ3JlYXRlSURC
S2V5KCksIHZhbHVlLnJlbGVhc2UoKSwgZXJyb3JDb2RlID8gSURCRGF0YWJhc2VFcnJvcjo6Y3Jl
YXRlKGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSA6IG51bGxwdHIpOwogfQogCiB2b2lkIFdlYklE
QlNlcnZlckNvbm5lY3Rpb246OmNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENv
dW50T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spCkBAIC01MTksMTIgKzU1Myw1NSBA
QCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZENoYW5nZURhdGFiYXNlVmVyc2lvbih1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcwogICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVx
dWVzdChzdWNjZXNzID8gbnVsbHB0ciA6IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGNoYW5n
aW5nIGRhdGFiYXNlIHZlcnNpb24iKSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlv
bjo6Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yQWR2YW5jZU9w
ZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0
aW9uOjpvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JP
cGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spCit7CisgICAgUmVmUHRy
PEFzeW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8aW50NjRfdCwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2sp
OworCisgICAgc2VydmVyUmVxdWVzdC0+c2V0QWJvcnRIYW5kbGVyKFtjb21wbGV0aW9uQ2FsbGJh
Y2tdKCkgeworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soMCwgSURCRGF0YWJhc2VFcnJvcjo6
Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJVbmtub3duIGVycm9y
IG9jY3VyZWQgb3BlbmluZyBkYXRhYmFzZSBjdXJzb3IiKSk7CisgICAgfSk7CisKKyAgICB1aW50
NjRfdCByZXF1ZXN0SUQgPSBzZXJ2ZXJSZXF1ZXN0LT5yZXF1ZXN0SUQoKTsKKyAgICBBU1NFUlQo
IW1fc2VydmVyUmVxdWVzdHMuY29udGFpbnMocmVxdWVzdElEKSk7CisgICAgbV9zZXJ2ZXJSZXF1
ZXN0cy5hZGQocmVxdWVzdElELCBzZXJ2ZXJSZXF1ZXN0LnJlbGVhc2UoKSk7CisKKyAgICBMT0co
SURCLCAiV2ViUHJvY2VzcyBvcGVuQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpPcGVu
Q3Vyc29yKHJlcXVlc3RJRCwgb3BlcmF0aW9uLnRyYW5zYWN0aW9uSUQoKSwgb3BlcmF0aW9uLm9i
amVjdFN0b3JlSUQoKSwgb3BlcmF0aW9uLmluZGV4SUQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4o
b3BlcmF0aW9uLmRpcmVjdGlvbigpKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmF0aW9uLmN1
cnNvclR5cGUoKSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhdGlvbi50YXNrVHlwZSgpKSwg
b3BlcmF0aW9uLmtleVJhbmdlKCkpKTsKK30KKwordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9u
OjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNlT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQogeworICAgIFJlZlB0cjxB
c3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrKTsK
KworICAgIHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlvbkNhbGxiYWNr
XSgpIHsKKyAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93
bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGFkdmFuY2luZyBkYXRhYmFzZSBjdXJzb3Ii
KSk7CisgICAgfSk7CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBzZXJ2ZXJSZXF1ZXN0LT5y
ZXF1ZXN0SUQoKTsKKyAgICBBU1NFUlQoIW1fc2VydmVyUmVxdWVzdHMuY29udGFpbnMocmVxdWVz
dElEKSk7CisgICAgbV9zZXJ2ZXJSZXF1ZXN0cy5hZGQocmVxdWVzdElELCBzZXJ2ZXJSZXF1ZXN0
LnJlbGVhc2UoKSk7CisKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBjdXJzb3JBZHZhbmNlIHJl
cXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uOjpDdXJzb3JBZHZhbmNlKHJlcXVlc3RJRCwgb3BlcmF0aW9u
LmN1cnNvcklEKCksIG9wZXJhdGlvbi5jb3VudCgpKSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVy
Q29ubmVjdGlvbjo6Y3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29y
SXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spCit2b2lkIFdlYklEQlNl
cnZlckNvbm5lY3Rpb246OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYsIGNvbnN0IEN1
cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFz
c1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykK
IHsKKyAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiBzZXJ2ZXJSZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0
SW1wbDxQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+Pjo6Y3JlYXRlKGNvbXBs
ZXRpb25DYWxsYmFjayk7CisKKyAgICBzZXJ2ZXJSZXF1ZXN0LT5zZXRBYm9ydEhhbmRsZXIoW2Nv
bXBsZXRpb25DYWxsYmFja10oKSB7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OlVua25vd25FcnJvciwgIlVua25vd24gZXJyb3Igb2NjdXJlZCBpdGVyYXRpbmcg
ZGF0YWJhc2UgY3Vyc29yIikpOworICAgIH0pOworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0g
c2VydmVyUmVxdWVzdC0+cmVxdWVzdElEKCk7CisgICAgQVNTRVJUKCFtX3NlcnZlclJlcXVlc3Rz
LmNvbnRhaW5zKHJlcXVlc3RJRCkpOworICAgIG1fc2VydmVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJ
RCwgc2VydmVyUmVxdWVzdC5yZWxlYXNlKCkpOworCisgICAgTE9HKElEQiwgIldlYlByb2Nlc3Mg
Y3Vyc29ySXRlcmF0ZSByZXF1ZXN0IElEICVsbHUiLCByZXF1ZXN0SUQpOworCisgICAgc2VuZChN
ZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Q3Vyc29ySXRlcmF0ZShyZXF1
ZXN0SUQsIG9wZXJhdGlvbi5jdXJzb3JJRCgpLCBvcGVyYXRpb24ua2V5KCkpKTsKIH0KIAogSVBD
OjpDb25uZWN0aW9uKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uaAppbmRleCBl
NDJjYjMwLi4zYjI3YTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0
aW9uLmgKQEAgLTEwOSw2ICsxMDksOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRGVsZXRlSW5k
ZXgodWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MpOwogICAgIHZvaWQgZGlkUHV0UmVj
b3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQz
Ml90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlk
R2V0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCR2V0UmVzdWx0
JiwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAg
dm9pZCBkaWRPcGVuQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwg
dWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdm9p
ZCBkaWRBZHZhbmNlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURCS2V5RGF0
YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50
MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRp
ZEl0ZXJhdGVDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJLZXlEYXRhJiwg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIHVpbnQzMl90
IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgdWludDY0X3Qg
bV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA4Y2NmMDhiLi44Mzdl
NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMzksNiArMzksOSBAQCBtZXNzYWdlcyAtPiBXZWJJREJTZXJ2ZXJD
b25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWREZWxldGVJbmRleCh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGJvb2wgc3VjY2VzcykKICAgICBEaWRQdXRSZWNvcmQodWludDY0X3QgcmVxdWVz
dElELCBXZWJDb3JlOjpJREJLZXlEYXRhIHJlc3VsdEtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBT
dHJpbmcgZXJyb3JNZXNzYWdlKQogICAgIERpZEdldFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQs
IFdlYkNvcmU6OklEQkdldFJlc3VsdCBnZXRSZXN1bHQsIHVpbnQzMl90IGVycm9yQ29kZSwgU3Ry
aW5nIGVycm9yTWVzc2FnZSkKKyAgICBEaWRPcGVuQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwg
aW50NjRfdCBjdXJzb3JJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdl
KQorICAgIERpZEFkdmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJL
ZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRhdGFSZWZl
cmVuY2UgdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9yTWVzc2FnZSk7Cisg
ICAgRGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OklEQktleURh
dGEga2V5LCBXZWJDb3JlOjpJREJLZXlEYXRhIHByaW1hcnlLZXksIElQQzo6RGF0YVJlZmVyZW5j
ZSB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKTsKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykK
</data>
<flag name="review"
          id="246383"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>