<?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>173198</bug_id>
          
          <creation_ts>2017-06-09 18:31:59 -0700</creation_ts>
          <short_desc>Use WTF::Function instead of std::function in indexeddb code</short_desc>
          <delta_ts>2017-06-09 22:24:44 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317756</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 18:31:59 -0700</bug_when>
    <thetext>Use WTF::Function instead of std::function in indexeddb code to avoid copying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317757</commentid>
    <comment_count>1</comment_count>
      <attachid>312526</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 18:32:52 -0700</bug_when>
    <thetext>Created attachment 312526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317758</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 18:34:30 -0700</bug_when>
    <thetext>Attachment 312526 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:117:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:126:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:127:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:426:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:139:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:147:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:487:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:105:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:106:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:139:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:539:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:561:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 15 in 12 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>1317765</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 18:56:25 -0700</bug_when>
    <thetext>The Mac linking errors do not make sense. I think Mac-EWS bots are in a bad state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317823</commentid>
    <comment_count>4</comment_count>
      <attachid>312555</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 20:23:54 -0700</bug_when>
    <thetext>Created attachment 312555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317824</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 20:25:41 -0700</bug_when>
    <thetext>Attachment 312555 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:117:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:126:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:127:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:426:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:139:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:147:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:487:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:105:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:106:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:139:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:539:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:561:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 15 in 12 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>1317842</commentid>
    <comment_count>6</comment_count>
      <attachid>312559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 21:45:06 -0700</bug_when>
    <thetext>Created attachment 312559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317845</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 21:47:16 -0700</bug_when>
    <thetext>Attachment 312559 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:117:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:99:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:127:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:128:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:426:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:140:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:148:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:487:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:105:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:106:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.h:139:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:539:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:561:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 16 in 13 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>1317861</commentid>
    <comment_count>8</comment_count>
      <attachid>312559</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-09 22:24:43 -0700</bug_when>
    <thetext>Comment on attachment 312559
Patch

Clearing flags on attachment: 312559

Committed r218048: &lt;http://trac.webkit.org/changeset/218048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317862</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-09 22:24:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312526</attachid>
            <date>2017-06-09 18:32:52 -0700</date>
            <delta_ts>2017-06-09 20:23:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173198-20170609183250.patch</filename>
            <type>text/plain</type>
            <size>27348</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5NTdmOWU3MTliOWM1
ZTg3MDYzZjgyYjhmOGNmMGI4OGRlNTg4MC4uOWMyOGVlNGNjMjA5ODU5NDBhMTc5ZjM1YTM3ODBi
ZDgzNjJlYmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA2LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdURjo6RnVuY3Rpb24g
aW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uIGluIGluZGV4ZWRkYiBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGOjpGdW5jdGlvbiBpbnN0
ZWFkIG9mIHN0ZDo6ZnVuY3Rpb24gaW4gaW5kZXhlZGRiIGNvZGUgdG8gYXZvaWQgY29weWluZy4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1Ry
YW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OlRyYW5z
YWN0aW9uT3BlcmF0aW9uOjpkb0NvbXBsZXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURC
U2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9y
T3JpZ2lucyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9y
ZUNhbGxiYWNrT3JGaXJlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNv
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjppdGVy
YXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6YWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0
b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuaDoKKwogMjAxNy0wNi0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgSW1wbGVtZW50IFczQyBTZWN1cmUgQ29udGV4dHMgRHJhZnQgU3BlY2lmaWNhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApp
bmRleCBkYjlhYTBlNjZmMDljODUwYmI0ZDU5ZDJiMjMyYjc4NjAyYTk3NjNhLi42YzY3ZWNmNWRh
OTQ3NGJiMDNiNjRhMWU3YjJkNGI3NWY4M2RkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMTM0LDkgKzEzNCw5IEBAIEV4Y2Vw
dGlvbk9yPHNob3J0PiBJREJGYWN0b3J5OjpjbXAoRXhlY1N0YXRlJiBleGVjU3RhdGUsIEpTVmFs
dWUgZmlyc3RWYWx1ZSwgSlNWCiAgICAgcmV0dXJuIGZpcnN0LT5jb21wYXJlKHNlY29uZC5nZXQo
KSk7CiB9CiAKLXZvaWQgSURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1
cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Blbmlu
Z09yaWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiBjYWxs
YmFjaykKK3ZvaWQgSURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0
eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09y
aWdpbiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykK
IHsKLSAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVP
cmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrKTsKKyAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+
Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1v
dmUoY2FsbGJhY2spKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDhkYmMxMWNlNmU1Yjg2
NjNjMWU0MjE2OTU4NzFmODU2MDc5MTA3ZjMuLmRlZTYwZGJmZTczN2JiMWQ2NjVmMTE2OGQ5YTU2
Yjk0NTM0OTBmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8c2hv
cnQ+IGNtcChKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBmaXJzdCwgSlNDOjpKU1ZhbHVl
IHNlY29uZCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9wZW5pbmdPcmlnaW4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKT4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25z
dCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
b3BlbmluZ09yaWdpbiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSURCRmFjdG9yeShJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAppbmRleCA0ZGI1MGMwYjkx
YWMwZDJjY2ZkYjRmZWRhZTYyZjU1YzdkNDNiOWEyLi5mZTQ0ZWQ0NTg4ZmE1ZTcyY2MzOGZjNjJi
NDg4MjJmYmQ1ZWViYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApAQCAtNDg0LDEy
ICs0ODQsMTIgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmhhbmRsZU1haW5UaHJlYWRUYXNr
cygpCiAgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlv
blByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJh
bWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+IGNhbGxiYWNrKQordm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCiB7CiAgICAgLy8g
VGhpcyBtZXRob2QgaXMgb25seSBtZWFudCB0byBiZSBjYWxsZWQgYnkgdGhlIHdlYiBpbnNwZWN0
b3Igb24gdGhlIG1haW4gdGhyZWFkLgogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAotICAgIG1fY29ubmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNlTmFtZXMobWFpbkZy
YW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBjYWxsYmFjayk7CisgICAgbV9jb25uZWN0aW9uVG9T
ZXJ2ZXIuZ2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4s
IFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJlZ2lz
dGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uUHJveHkuaAppbmRleCA1YzAxYWMzNGNkNjJmZWE5YzEyMDgxOTJjZTJlNWNjMjVhZDQwNGI1
Li5jMmQ1ZDU3MDUwNDcyNDA0NjBmZjVlZDk3NGNkMTAwNmYzOGFhMWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVmKCk7
CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+
KTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOwogCiAgICAgdm9pZCByZWdpc3Rl
ckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRh
dGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcAppbmRleCA3NWM1NzczYTU2MzEwNDA0Y2Q2ZmFiNjE5NTM3MWJmOGQ3Y2I4NWFlLi45
ZTVlZWEyOWVhNWI3Y2JmYzFkMjVmODQ3ZDQyYTNlMjE5ODUyMGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgSURCQ29ubmVjdGlv
blRvU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvCiAgICAgbV9kZWxlZ2F0ZS0+YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZChkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lk
IElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0
eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09y
aWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiBjYWxsYmFj
aykKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNh
bGxiYWNrKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDc2NTFmNDMwNTU3YTYzOGZjMmMwNjE3NjU3YWZl
YTEwNzc5YWJlZTAuLjMwMDI3OGU1NTljYTVmNDU0YjVhN2ViMGE1OGVlYTM2MzBiYTQ5OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6
CiAgICAgLy8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdlIGlzIGFscmVh
ZHkgdG9ybiBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFt
ZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9wZW5pbmdPcmlnaW4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0
cmluZz4mKT4pOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9y
aWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdp
biwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKIAogcHJpdmF0ZToKQEAgLTE0
NCw3ICsxNDQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlPiBtX2RlbGVnYXRlOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpmdW5jdGlv
bjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5hbWVzQ2Fs
bGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SURCQ29ubmVjdGlvblByb3h5PiBtX3Byb3h5OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0
aW9uT3BlcmF0aW9uLmgKaW5kZXggY2Q5NWJlZmQ1M2Q5YWUzZjM5ZGJmYWZmZWMyNTU4ZGVkMWU4
N2QwMS4uMzgwOGUxMTA2ZjViMTU2MGU5YTUyYzUyZGZjODE1NWZjYjZkZDRlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3Bl
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1Ry
YW5zYWN0aW9uT3BlcmF0aW9uLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgICAg
IC8vIG1fY29tcGxldGVGdW5jdGlvbiBtaWdodCBiZSBob2xkaW5nIHRoZSBsYXN0IHJlZiB0byB0
aGlzIFRyYW5zYWN0aW9uT3BlcmF0aW9uLAogICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGRvIHRo
aXMgdHJpY2sgdG8gbnVsbCBpdCBvdXQgd2l0aG91dCBmaXJzdCBkZXN0cm95aW5nIGl0LgotICAg
ICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlJlc3VsdERhdGEmKT4gb2xkQ29tcGxl
dGVGdW5jdGlvbjsKKyAgICAgICAgRnVuY3Rpb248dm9pZCAoY29uc3QgSURCUmVzdWx0RGF0YSYp
PiBvbGRDb21wbGV0ZUZ1bmN0aW9uOwogICAgICAgICBzdGQ6OnN3YXAobV9jb21wbGV0ZUZ1bmN0
aW9uLCBvbGRDb21wbGV0ZUZ1bmN0aW9uKTsKICAgICB9CiAKQEAgLTEyMyw4ICsxMjMsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdWludDY0X3QgbV9pbmRleElkZW50aWZpZXIgeyAwIH07CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPElEQlJlc291cmNlSWRlbnRpZmllcj4gbV9jdXJzb3JJZGVudGlmaWVyOwog
ICAgIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlIG1faW5kZXhSZWNvcmRUeXBlOwotICAgIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gbV9wZXJmb3JtRnVuY3Rpb247Ci0gICAgc3RkOjpmdW5jdGlv
bjx2b2lkIChjb25zdCBJREJSZXN1bHREYXRhJik+IG1fY29tcGxldGVGdW5jdGlvbjsKKyAgICBG
dW5jdGlvbjx2b2lkICgpPiBtX3BlcmZvcm1GdW5jdGlvbjsKKyAgICBGdW5jdGlvbjx2b2lkIChj
b25zdCBJREJSZXN1bHREYXRhJik+IG1fY29tcGxldGVGdW5jdGlvbjsKIAogcHJpdmF0ZToKICAg
ICBJREJSZXNvdXJjZUlkZW50aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2FjdGlvbi0+aW5mbygpLmlkZW50aWZpZXIoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRl
eCA5Y2QzZGI0ZDFiYzE0YTM2MTczMjFhYjAwNWEwMTk2MjA1Mjc4Mjc4Li42NDQzZGRjYTkzNDkw
ZDhjOWU2ZTZiMTJkMzQyM2MwYjgzNjk0ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTM2LDcgKzUzNiw3
IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQoKQogICAgIHJldHVy
biArK2N1cnJlbnRJRDsKIH0KIAotdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJh
c2VzTW9kaWZpZWRTaW5jZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWNhdGlvblRpbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpY2F0aW9uVGltZSwgRnVu
Y3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gZ2VuZXJhdGVEZWxldGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX2RlbGV0ZURhdGFiYXNlQ29tcGxldGlvbkhhbmRsZXJzLmFkZChjYWxsYmFja0lELCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBJREJTZXJ2
ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjoKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygq
dGhpcywgJklEQlNlcnZlcjo6cGVyZm9ybUNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRT
aW5jZSwgbW9kaWZpY2F0aW9uVGltZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIElEQlNlcnZl
cjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lu
cyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgRnVuY3Rpb248dm9p
ZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Z2VuZXJhdGVEZWxldGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2RlbGV0
ZURhdGFiYXNlQ29tcGxldGlvbkhhbmRsZXJzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggOTM0YTFkMTc0NTI5MDg0MjhhM2FlNmUwZWQ3ZTUx
MGE5YTljYTZlNS4uZTQ2ZjdiNTgyMWVhMDE2YmZlMjU0ZjRkMTc3YzZlYWFkMTUyYzJkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuaApAQCAtMTAyLDggKzEwMiw4IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
REJCYWNraW5nU3RvcmU+IGNyZWF0ZUJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFzZUlkZW50
aWZpZXImKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNNb2RpZmllZFNpbmNlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQsIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxT
ZWN1cml0eU9yaWdpbkRhdGE+Jiwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFu
ZGxlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01v
ZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCwgRnVuY3Rp
b248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5
T3JpZ2luRGF0YT4mLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAog
cHJpdmF0ZToKICAgICBJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRs
ZXImKTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbio+IG1fZGF0YWJhc2VDb25uZWN0aW9uczsKICAg
ICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbio+IG1fdHJhbnNhY3Rpb25zOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpmdW5j
dGlvbjx2b2lkICgpPj4gbV9kZWxldGVEYXRhYmFzZUNvbXBsZXRpb25IYW5kbGVyczsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBGdW5jdGlvbjx2b2lkICgpPj4gbV9kZWxldGVEYXRhYmFzZUNvbXBs
ZXRpb25IYW5kbGVyczsKIAogICAgIFN0cmluZyBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aDsKICAg
ICBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgbV9iYWNraW5nU3RvcmVUZW1w
b3JhcnlGaWxlSGFuZGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IGM2ZmNhZjEy
NGI2YmViYTgwOTk2NGQxNTcxYjA3MzdhYWEwNzM0ZmIuLmJiYWMwN2NiNWU2MGE4ZGU4ZmRkZjE4
NzhlZjBjYjE1NTQ0MzYyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzgzLDcg
KzM4Myw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmll
cigpCiAgICAgcmV0dXJuICsrY3VycmVudElEOwogfQogCi11aW50NjRfdCBVbmlxdWVJREJEYXRh
YmFzZTo6c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEVycm9yQ2FsbGJhY2sgY2FsbGJhY2spCit1
aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEVycm9y
Q2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9yVXNlckRlbGV0
ZSkgewogICAgICAgICBjYWxsYmFjayhJREJFcnJvcjo6dXNlckRlbGV0ZUVycm9yKCkpOwpAQCAt
MzkyLDExICszOTIsMTEgQEAgdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJh
Y2tPckZpcmVFcnJvcihFcnJvckNhbGxiYWNrIGNhbGxiYWNrKQogCiAgICAgdWludDY0X3QgaWRl
bnRpZmllciA9IGdlbmVyYXRlVW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKCk7CiAgICAgQVNTRVJU
KCFtX2Vycm9yQ2FsbGJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX2Vycm9yQ2Fs
bGJhY2tzLmFkZChpZGVudGlmaWVyLCBjYWxsYmFjayk7CisgICAgbV9lcnJvckNhbGxiYWNrcy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIHJldHVybiBpZGVudGlmaWVy
OwogfQogCi11aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxsYmFja09yRmlyZUVy
cm9yKEtleURhdGFDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNl
OjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoS2V5RGF0YUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7
CiAgICAgaWYgKG1faGFyZENsb3NlZEZvclVzZXJEZWxldGUpIHsKICAgICAgICAgY2FsbGJhY2so
SURCRXJyb3I6OnVzZXJEZWxldGVFcnJvcigpLCB7IH0pOwpAQCAtNDA1LDExICs0MDUsMTEgQEAg
dWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihLZXlE
YXRhQ2FsbGJhY2sgY2FsbGJhY2spCiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gZ2VuZXJh
dGVVbmlxdWVDYWxsYmFja0lkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fa2V5RGF0YUNhbGxi
YWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9rZXlEYXRhQ2FsbGJhY2tzLmFkZChp
ZGVudGlmaWVyLCBjYWxsYmFjayk7CisgICAgbV9rZXlEYXRhQ2FsbGJhY2tzLmFkZChpZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLXVp
bnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0UmVz
dWx0Q2FsbGJhY2sgY2FsbGJhY2spCit1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKEdldFJlc3VsdENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
aWYgKG1faGFyZENsb3NlZEZvclVzZXJEZWxldGUpIHsKICAgICAgICAgY2FsbGJhY2soSURCRXJy
b3I6OnVzZXJEZWxldGVFcnJvcigpLCB7IH0pOwpAQCAtNDE4LDExICs0MTgsMTEgQEAgdWludDY0
X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihHZXRSZXN1bHRD
YWxsYmFjayBjYWxsYmFjaykKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIgPSBnZW5lcmF0ZVVu
aXF1ZUNhbGxiYWNrSWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9nZXRSZXN1bHRDYWxsYmFj
a3MuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fZ2V0UmVzdWx0Q2FsbGJhY2tzLmFkZChp
ZGVudGlmaWVyLCBjYWxsYmFjayk7CisgICAgbV9nZXRSZXN1bHRDYWxsYmFja3MuYWRkKGlkZW50
aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAot
dWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihHZXRB
bGxSZXN1bHRzQ2FsbGJhY2sgY2FsbGJhY2spCit1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEdldEFsbFJlc3VsdHNDYWxsYmFjayYmIGNhbGxiYWNr
KQogewogICAgIGlmIChtX2hhcmRDbG9zZWRGb3JVc2VyRGVsZXRlKSB7CiAgICAgICAgIGNhbGxi
YWNrKElEQkVycm9yOjp1c2VyRGVsZXRlRXJyb3IoKSwgeyB9KTsKQEAgLTQzMSwxMSArNDMxLDEx
IEBAIHVpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3Io
R2V0QWxsUmVzdWx0c0NhbGxiYWNrIGNhbGxiCiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0g
Z2VuZXJhdGVVbmlxdWVDYWxsYmFja0lkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fZ2V0QWxs
UmVzdWx0c0NhbGxiYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9nZXRBbGxSZXN1
bHRzQ2FsbGJhY2tzLmFkZChpZGVudGlmaWVyLCBjYWxsYmFjayk7CisgICAgbV9nZXRBbGxSZXN1
bHRzQ2FsbGJhY2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgcmV0
dXJuIGlkZW50aWZpZXI7CiB9CiAKLXVpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNh
bGxiYWNrT3JGaXJlRXJyb3IoQ291bnRDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVuaXF1
ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoQ291bnRDYWxsYmFjayYmIGNh
bGxiYWNrKQogewogICAgIGlmIChtX2hhcmRDbG9zZWRGb3JVc2VyRGVsZXRlKSB7CiAgICAgICAg
IGNhbGxiYWNrKElEQkVycm9yOjp1c2VyRGVsZXRlRXJyb3IoKSwgMCk7CkBAIC00NDQsNyArNDQ0
LDcgQEAgdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJv
cihDb3VudENhbGxiYWNrIGNhbGxiYWNrKQogCiAgICAgdWludDY0X3QgaWRlbnRpZmllciA9IGdl
bmVyYXRlVW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKCk7CiAgICAgQVNTRVJUKCFtX2NvdW50Q2Fs
bGJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX2NvdW50Q2FsbGJhY2tzLmFkZChp
ZGVudGlmaWVyLCBjYWxsYmFjayk7CisgICAgbV9jb3VudENhbGxiYWNrcy5hZGQoaWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCkBAIC02
MTYsNyArNjE2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6
OmNyZWF0ZU9iamVjdFN0b3JlIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNh
bGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjUxLDcgKzY1MSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZSIpOwog
Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxs
YmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJv
cihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1
cm47CiAKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVP
YmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJ
REJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwog
ICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC03MzMsNyArNzMzLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0
U3RvcmUiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJl
RXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNr
T3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAg
ICAgICAgcmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DbGVhck9iamVjdFN0b3JlLCBjYWxs
YmFja0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpKTsKQEAgLTc2NCw3ICs3NjQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgYwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlx
dWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAg
IGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2so
Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1D
cmVhdGVJbmRleCwgY2FsbGJhY2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
aW5mbykpOwpAQCAtODAxLDcgKzgwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0
ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleCIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAg
aWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAKQEAgLTg1MSw3ICs4NTEsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
TE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgiKTsK
IAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2Fs
bGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJy
b3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC05MDUsNyArOTA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JB
ZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVl
SURCRGF0YWJhc2U6OnB1dE9yQWRkIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3Rv
cmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAo
IWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JB
ZGQsIGNhbGxiYWNrSUQsIHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwga2V5RGF0YSwgdmFsdWUsIG92ZXJ3cml0
ZU1vZGUpKTsKQEAgLTEwNDUsNyArMTA0NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Omdl
dFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVu
aXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAg
IGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDYwLDcgKzEwNjAsNyBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jk
cyIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJv
cihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZp
cmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4p
IFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgcG9zdERhdGFiYXNlVGFz
ayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bUdldENvdW50LCBjYWxsYmFja0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIo
KSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLmluZGV4
SWRlbnRpZmllcigpLCByYW5nZSkpOwpAQCAtMTE2MCw3ICsxMTYwLDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSUQKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVk
REIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCIpOwogCi0gICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7Cisg
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3Zl
KGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAg
cG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybURlbGV0ZVJlY29yZCwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJh
bnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigp
LCBrZXlSYW5nZURhdGEpKTsKQEAgLTExODksNyArMTE4OSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJREJDCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAi
KG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yIik7CiAKLSAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJh
Y2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKICAgICBwb3N0RGF0
YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkN1cnNvciwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJhbnNhY3Rpb25J
ZGVudGlmaWVyKCksIGluZm8pKTsKQEAgLTEyMTksNyArMTIxOSw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRh
LCBjb25zdCBJCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERC
LCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yIik7CiAKLSAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUo
Y2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKICAgICBw
b3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRh
dGFiYXNlOjpwZXJmb3JtSXRlcmF0ZUN1cnNvciwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJh
bnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLmN1cnNvcklkZW50aWZpZXIoKSwgZGF0
YSkpOwpAQCAtMTI4Myw3ICsxMjgzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0
VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKIAogICAg
IEFTU0VSVCgmdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0
aGlzKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJy
b3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JG
aXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xMzI3LDcgKzEzMjcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aQogCiAgICAgQVNTRVJUKCZ0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFz
ZSgpID09IHRoaXMpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tP
ckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2Fs
bGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lE
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE1NzAsMTEgKzE1NzAsMTEgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6YWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnMKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2U+IHByb3RlY3RlZFRoaXMo
dGhpcyk7CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IHJlZlRyYW5z
YWN0aW9uKCZ0cmFuc2FjdGlvbik7CiAKLSAgICBhdXRvIGNhbGxiYWNrID0gW3Byb3RlY3RlZFRo
aXMsIHJlZlRyYW5zYWN0aW9uXShjb25zdCBJREJFcnJvciYgZXJyb3IpIHsKKyAgICBFcnJvckNh
bGxiYWNrIGNhbGxiYWNrID0gW3Byb3RlY3RlZFRoaXMsIHJlZlRyYW5zYWN0aW9uXShjb25zdCBJ
REJFcnJvciYgZXJyb3IpIHsKICAgICAgICAgcmVmVHJhbnNhY3Rpb24tPmRpZEFjdGl2YXRlSW5C
YWNraW5nU3RvcmUoZXJyb3IpOwogICAgIH07CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBp
ZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNy
ZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWN0
aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlLCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5p
bmZvKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggYmQwOGI3Nzc1OGQwY2MzZDUyNjdi
MzI1MTI3ZDgzOWE1MjFhMWRmNi4uYzUzOTcxMTY4MGI0OGVjMGM1M2FlMDlhMGI4ODJkZGE1YTcx
NGYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTY4LDExICs2OCwxMSBAQCBuYW1lc3Bh
Y2UgSURCU2VydmVyIHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Ub0NsaWVudDsKIGNsYXNzIElEQlNl
cnZlcjsKIAotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImKT4gRXJy
b3JDYWxsYmFjazsKLXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJiwg
Y29uc3QgSURCS2V5RGF0YSYpPiBLZXlEYXRhQ2FsbGJhY2s7Ci10eXBlZGVmIHN0ZDo6ZnVuY3Rp
b248dm9pZChjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQkdldFJlc3VsdCYpPiBHZXRSZXN1bHRD
YWxsYmFjazsKLXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJiwgY29u
c3QgSURCR2V0QWxsUmVzdWx0Jik+IEdldEFsbFJlc3VsdHNDYWxsYmFjazsKLXR5cGVkZWYgc3Rk
OjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJiwgdWludDY0X3QpPiBDb3VudENhbGxiYWNr
OwordHlwZWRlZiBGdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJik+IEVycm9yQ2FsbGJhY2s7
Cit0eXBlZGVmIEZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJLZXlEYXRh
Jik+IEtleURhdGFDYWxsYmFjazsKK3R5cGVkZWYgRnVuY3Rpb248dm9pZChjb25zdCBJREJFcnJv
ciYsIGNvbnN0IElEQkdldFJlc3VsdCYpPiBHZXRSZXN1bHRDYWxsYmFjazsKK3R5cGVkZWYgRnVu
Y3Rpb248dm9pZChjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQkdldEFsbFJlc3VsdCYpPiBHZXRB
bGxSZXN1bHRzQ2FsbGJhY2s7Cit0eXBlZGVmIEZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3Im
LCB1aW50NjRfdCk+IENvdW50Q2FsbGJhY2s7CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFVuaXF1ZUlEQkRhdGFiYXNlPiB7CiBwdWJsaWM6
CkBAIC0xOTIsMTEgKzE5MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUGVyZm9ybUFjdGl2
YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtVW5jb25kaXRpb25hbERlbGV0
ZUJhY2tpbmdTdG9yZSgpOwogCi0gICAgdWludDY0X3Qgc3RvcmVDYWxsYmFja09yRmlyZUVycm9y
KEVycm9yQ2FsbGJhY2spOwotICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihL
ZXlEYXRhQ2FsbGJhY2spOwotICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihH
ZXRBbGxSZXN1bHRzQ2FsbGJhY2spOwotICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVF
cnJvcihHZXRSZXN1bHRDYWxsYmFjayk7Ci0gICAgdWludDY0X3Qgc3RvcmVDYWxsYmFja09yRmly
ZUVycm9yKENvdW50Q2FsbGJhY2spOworICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVF
cnJvcihFcnJvckNhbGxiYWNrJiYpOworICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVF
cnJvcihLZXlEYXRhQ2FsbGJhY2smJik7CisgICAgdWludDY0X3Qgc3RvcmVDYWxsYmFja09yRmly
ZUVycm9yKEdldEFsbFJlc3VsdHNDYWxsYmFjayYmKTsKKyAgICB1aW50NjRfdCBzdG9yZUNhbGxi
YWNrT3JGaXJlRXJyb3IoR2V0UmVzdWx0Q2FsbGJhY2smJik7CisgICAgdWludDY0X3Qgc3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKENvdW50Q2FsbGJhY2smJik7CiAKICAgICB2b2lkIHBlcmZvcm1F
cnJvckNhbGxiYWNrKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KTsKICAgICB2b2lkIHBlcmZvcm1LZXlEYXRhQ2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJZGVu
dGlmaWVyLCBjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQktleURhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312555</attachid>
            <date>2017-06-09 20:23:54 -0700</date>
            <delta_ts>2017-06-09 21:45:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173198-20170609202352.patch</filename>
            <type>text/plain</type>
            <size>27368</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUxMmU1YzRkMmI5NTZm
NDE1ODZjNzFiZGE5N2UyMDJkMWVkMTVmZS4uYjFmYmY0NzYyZjI5NzE5NmRhMDY5MDc0NGU2MmE0
NTY4MzNmOWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA2LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdURjo6RnVuY3Rpb24g
aW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uIGluIGluZGV4ZWRkYiBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGOjpGdW5jdGlvbiBpbnN0
ZWFkIG9mIHN0ZDo6ZnVuY3Rpb24gaW4gaW5kZXhlZGRiIGNvZGUgdG8gYXZvaWQgY29weWluZy4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1Ry
YW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OlRyYW5z
YWN0aW9uT3BlcmF0aW9uOjpkb0NvbXBsZXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURC
U2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9y
T3JpZ2lucyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9y
ZUNhbGxiYWNrT3JGaXJlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNv
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjppdGVy
YXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6YWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0
b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuaDoKKwogMjAxNy0wNi0wOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjE4MDAzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBkYjlhYTBlNjZm
MDljODUwYmI0ZDU5ZDJiMjMyYjc4NjAyYTk3NjNhLi42YzY3ZWNmNWRhOTQ3NGJiMDNiNjRhMWU3
YjJkNGI3NWY4M2RkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5LmNwcApAQCAtMTM0LDkgKzEzNCw5IEBAIEV4Y2VwdGlvbk9yPHNob3J0PiBJ
REJGYWN0b3J5OjpjbXAoRXhlY1N0YXRlJiBleGVjU3RhdGUsIEpTVmFsdWUgZmlyc3RWYWx1ZSwg
SlNWCiAgICAgcmV0dXJuIGZpcnN0LT5jb21wYXJlKHNlY29uZC5nZXQoKSk7CiB9CiAKLXZvaWQg
SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFp
bkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgc3RkOjpm
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiBjYWxsYmFjaykKK3ZvaWQgSURC
RmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZy
YW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgRnVuY3Rpb248
dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKIHsKLSAgICBtX2Nvbm5l
Y3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGNhbGxiYWNrKTsKKyAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VO
YW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDhkYmMxMWNlNmU1Yjg2NjNjMWU0MjE2OTU4NzFm
ODU2MDc5MTA3ZjMuLjRmN2NkZGMzODg0Y2U1ZTZhNDFiZjA1NDlhYjZjNDRkNTdmMmY4ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBmaXJzdCwgSlNDOjpKU1ZhbHVlIHNlY29uZCk7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmln
aW4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4pOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBJREJGYWN0b3J5KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDRkYjUwYzBiOTFhYzBkMmNjZmRi
NGZlZGFlNjJmNTVjN2Q0M2I5YTIuLmZlNDRlZDQ1ODhmYTVlNzJjYzM4ZmM2MmI0ODgyMmZiZDVl
ZWJiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC00ODQsMTIgKzQ4NCwxMiBA
QCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aGFuZGxlTWFpblRocmVhZFRhc2tzKCkKICAgICAg
ICAgdGFzay0+cGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uUHJveHk6Omdl
dEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4gY2FsbGJhY2spCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94
eTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgRnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKIHsKICAgICAvLyBUaGlzIG1ldGhv
ZCBpcyBvbmx5IG1lYW50IHRvIGJlIGNhbGxlZCBieSB0aGUgd2ViIGluc3BlY3RvciBvbiB0aGUg
bWFpbiB0aHJlYWQuCiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAg
bV9jb25uZWN0aW9uVG9TZXJ2ZXIuZ2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4s
IG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXRB
bGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6cmVnaXN0ZXJEYXRhYmFz
ZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
CmluZGV4IDVjMDFhYzM0Y2Q2MmZlYTljMTIwODE5MmNlMmU1Y2MyNWFkNDA0YjUuLmEyMmVlMTAy
NzA4NDM2OTY3YmZlNDE4ZDNkZjAyZmNkZWMyZjhlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5
LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWYoKTsKICAgICB2b2lk
IGRlcmVmKCk7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmln
aW4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4pOworICAgIHZv
aWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2
b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRh
YmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFz
ZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKaW5kZXggNzVjNTc3M2E1NjMxMDQwNGNkNmZhYjYxOTUzNzFiZjhkN2NiODVhZS4uOWU1ZWVh
MjllYTViN2NiZmMxZDI1Zjg0N2Q0MmEzZTIxOTg1MjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
bwogICAgIG1fZGVsZWdhdGUtPmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmln
aW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4s
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4gY2FsbGJhY2spCit2
b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1
cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Blbmlu
Z09yaWdpbiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFj
aykKIHsKICAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRCA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA3NjUxZjQzMDU1N2E2MzhmYzJjMDYxNzY1N2FmZWExMDc3
OWFiZWUwLi44YjQ2MmNjYmJhNGU3MGIxODA1N2E5OThmMTBhNDVhYmEzMDhiNzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAg
IC8vIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24sIGJ1dCB0aGUgcGFnZSBpcyBhbHJlYWR5IHRv
cm4gZG93bi4KICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCi0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBvcGVuaW5nT3JpZ2luLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik+KTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdU
Rjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKIAogcHJpdmF0ZToKQEAgLTE0
NCw3ICsxNDQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlPiBtX2RlbGVnYXRlOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpmdW5jdGlv
bjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5hbWVzQ2Fs
bGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKT4+IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrczsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxJREJDb25uZWN0aW9uUHJveHk+IG1fcHJveHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9u
T3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJh
bnNhY3Rpb25PcGVyYXRpb24uaAppbmRleCBjZDk1YmVmZDUzZDlhZTNmMzlkYmZhZmZlYzI1NThk
ZWQxZTg3ZDAxLi4yOGJhYjYyMzYyY2NlMDYzNTM4YTI2ZGRhOGJjZDk3NDE1Y2E0ZGE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rp
b25PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAKICAg
ICAgICAgLy8gbV9jb21wbGV0ZUZ1bmN0aW9uIG1pZ2h0IGJlIGhvbGRpbmcgdGhlIGxhc3QgcmVm
IHRvIHRoaXMgVHJhbnNhY3Rpb25PcGVyYXRpb24sCiAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8g
ZG8gdGhpcyB0cmljayB0byBudWxsIGl0IG91dCB3aXRob3V0IGZpcnN0IGRlc3Ryb3lpbmcgaXQu
Ci0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgSURCUmVzdWx0RGF0YSYpPiBvbGRD
b21wbGV0ZUZ1bmN0aW9uOworICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlJl
c3VsdERhdGEmKT4gb2xkQ29tcGxldGVGdW5jdGlvbjsKICAgICAgICAgc3RkOjpzd2FwKG1fY29t
cGxldGVGdW5jdGlvbiwgb2xkQ29tcGxldGVGdW5jdGlvbik7CiAgICAgfQogCkBAIC0xMjMsOCAr
MTIzLDggQEAgcHJvdGVjdGVkOgogICAgIHVpbnQ2NF90IG1faW5kZXhJZGVudGlmaWVyIHsgMCB9
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJSZXNvdXJjZUlkZW50aWZpZXI+IG1fY3Vyc29ySWRl
bnRpZmllcjsKICAgICBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSBtX2luZGV4UmVjb3JkVHlw
ZTsKLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fcGVyZm9ybUZ1bmN0aW9uOwotICAgIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgSURCUmVzdWx0RGF0YSYpPiBtX2NvbXBsZXRlRnVuY3Rp
b247CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBtX3BlcmZvcm1GdW5jdGlvbjsKKyAgICBX
VEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlJlc3VsdERhdGEmKT4gbV9jb21wbGV0ZUZ1bmN0
aW9uOwogCiBwcml2YXRlOgogICAgIElEQlJlc291cmNlSWRlbnRpZmllciB0cmFuc2FjdGlvbklk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uLT5pbmZvKCkuaWRlbnRpZmll
cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCmluZGV4IDljZDNkYjRkMWJjMTRhMzYxNzMyMWFiMDA1YTAxOTYyMDUy
NzgyNzguLjY0NDNkZGNhOTM0OTBkOGM5ZTZlNmIxMmQzNDIzYzBiODM2OTRlODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
Y3BwCkBAIC01MzYsNyArNTM2LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlRGVsZXRlQ2Fs
bGJhY2tJRCgpCiAgICAgcmV0dXJuICsrY3VycmVudElEOwogfQogCi12b2lkIElEQlNlcnZlcjo6
Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpY2F0aW9uVGltZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgp
PiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFi
YXNlc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBt
b2RpZmljYXRpb25UaW1lLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQoKTsK
ICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZGVsZXRlRGF0YWJhc2VDb21wbGV0aW9uSGFuZGxlcnMu
YWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTU1OCw3ICs1
NTgsNyBAQCB2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNp
bmNlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OgogICAgIHBvc3REYXRhYmFzZVRhc2soY3Jl
YXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmSURCU2VydmVyOjpwZXJmb3JtQ2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFja0lEKSk7
CiB9CiAKLXZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMo
Y29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHN0ZDo6ZnVuY3Rpb248
dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBv
cmlnaW5zLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQoKTsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fZGVsZXRlRGF0YWJhc2VDb21wbGV0aW9uSGFuZGxlcnMuYWRkKGNhbGxi
YWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCA5MzRhMWQxNzQ1
MjkwODQyOGEzYWU2ZTBlZDdlNTEwYTlhOWNhNmU1Li5lNDZmN2I1ODIxZWEwMTZiZmUyNTRmNGQx
NzdjNmVhYWQxNTJjMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC0xMDIsOCArMTAyLDggQEAgcHVibGljOgogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPElEQkJhY2tpbmdTdG9yZT4gY3JlYXRlQmFja2luZ1N0b3JlKGNv
bnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxl
cik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9y
aWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhj
b25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwogCiBwcml2YXRlOgogICAgIElEQlNlcnZlcihJREJCYWNraW5nU3Rv
cmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwpAQCAtMTM2LDcgKzEzNiw3IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9kYXRh
YmFzZUNvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKj4gbV90cmFuc2FjdGlvbnM7CiAKLSAgICBIYXNoTWFw
PHVpbnQ2NF90LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBtX2RlbGV0ZURhdGFiYXNlQ29tcGxl
dGlvbkhhbmRsZXJzOworICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0aW9uPHZvaWQgKCk+PiBt
X2RlbGV0ZURhdGFiYXNlQ29tcGxldGlvbkhhbmRsZXJzOwogCiAgICAgU3RyaW5nIG1fZGF0YWJh
c2VEaXJlY3RvcnlQYXRoOwogICAgIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVy
JiBtX2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKaW5kZXggYzZmY2FmMTI0YjZiZWJhODA5OTY0ZDE1NzFiMDczN2FhYTA3MzRmYi4uYmJh
YzA3Y2I1ZTYwYThkZThmZGRmMTg3OGVmMGNiMTU1NDQzNjIyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC0zODMsNyArMzgzLDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVW5p
cXVlQ2FsbGJhY2tJZGVudGlmaWVyKCkKICAgICByZXR1cm4gKytjdXJyZW50SUQ7CiB9CiAKLXVp
bnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoRXJyb3JD
YWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxi
YWNrT3JGaXJlRXJyb3IoRXJyb3JDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmIChtX2hh
cmRDbG9zZWRGb3JVc2VyRGVsZXRlKSB7CiAgICAgICAgIGNhbGxiYWNrKElEQkVycm9yOjp1c2Vy
RGVsZXRlRXJyb3IoKSk7CkBAIC0zOTIsMTEgKzM5MiwxMSBAQCB1aW50NjRfdCBVbmlxdWVJREJE
YXRhYmFzZTo6c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEVycm9yQ2FsbGJhY2sgY2FsbGJhY2sp
CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gZ2VuZXJhdGVVbmlxdWVDYWxsYmFja0lkZW50
aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDYWxsYmFja3MuY29udGFpbnMoaWRlbnRpZmll
cikpOwotICAgIG1fZXJyb3JDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAg
ICBtX2Vycm9yQ2FsbGJhY2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLXVpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpz
dG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoS2V5RGF0YUNhbGxiYWNrIGNhbGxiYWNrKQordWludDY0
X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihLZXlEYXRhQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9yVXNlckRlbGV0ZSkg
ewogICAgICAgICBjYWxsYmFjayhJREJFcnJvcjo6dXNlckRlbGV0ZUVycm9yKCksIHsgfSk7CkBA
IC00MDUsMTEgKzQwNSwxMSBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxs
YmFja09yRmlyZUVycm9yKEtleURhdGFDYWxsYmFjayBjYWxsYmFjaykKIAogICAgIHVpbnQ2NF90
IGlkZW50aWZpZXIgPSBnZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcigpOwogICAgIEFT
U0VSVCghbV9rZXlEYXRhQ2FsbGJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX2tl
eURhdGFDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2tleURhdGFD
YWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICByZXR1cm4g
aWRlbnRpZmllcjsKIH0KIAotdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJh
Y2tPckZpcmVFcnJvcihHZXRSZXN1bHRDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVuaXF1
ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0UmVzdWx0Q2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9yVXNlckRlbGV0ZSkgewogICAg
ICAgICBjYWxsYmFjayhJREJFcnJvcjo6dXNlckRlbGV0ZUVycm9yKCksIHsgfSk7CkBAIC00MTgs
MTEgKzQxOCwxMSBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxsYmFja09y
RmlyZUVycm9yKEdldFJlc3VsdENhbGxiYWNrIGNhbGxiYWNrKQogCiAgICAgdWludDY0X3QgaWRl
bnRpZmllciA9IGdlbmVyYXRlVW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKCk7CiAgICAgQVNTRVJU
KCFtX2dldFJlc3VsdENhbGxiYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9nZXRS
ZXN1bHRDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2dldFJlc3Vs
dENhbGxiYWNrcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIHJldHVy
biBpZGVudGlmaWVyOwogfQogCi11aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxs
YmFja09yRmlyZUVycm9yKEdldEFsbFJlc3VsdHNDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90
IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0QWxsUmVzdWx0
c0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKG1faGFyZENsb3NlZEZvclVzZXJEZWxl
dGUpIHsKICAgICAgICAgY2FsbGJhY2soSURCRXJyb3I6OnVzZXJEZWxldGVFcnJvcigpLCB7IH0p
OwpAQCAtNDMxLDExICs0MzEsMTEgQEAgdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3Jl
Q2FsbGJhY2tPckZpcmVFcnJvcihHZXRBbGxSZXN1bHRzQ2FsbGJhY2sgY2FsbGIKIAogICAgIHVp
bnQ2NF90IGlkZW50aWZpZXIgPSBnZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcigpOwog
ICAgIEFTU0VSVCghbV9nZXRBbGxSZXN1bHRzQ2FsbGJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIp
KTsKLSAgICBtX2dldEFsbFJlc3VsdHNDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNr
KTsKKyAgICBtX2dldEFsbFJlc3VsdHNDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdWludDY0X3QgVW5pcXVl
SURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihDb3VudENhbGxiYWNrIGNhbGxi
YWNrKQordWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJv
cihDb3VudENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKG1faGFyZENsb3NlZEZvclVz
ZXJEZWxldGUpIHsKICAgICAgICAgY2FsbGJhY2soSURCRXJyb3I6OnVzZXJEZWxldGVFcnJvcigp
LCAwKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3Rv
cmVDYWxsYmFja09yRmlyZUVycm9yKENvdW50Q2FsbGJhY2sgY2FsbGJhY2spCiAKICAgICB1aW50
NjRfdCBpZGVudGlmaWVyID0gZ2VuZXJhdGVVbmlxdWVDYWxsYmFja0lkZW50aWZpZXIoKTsKICAg
ICBBU1NFUlQoIW1fY291bnRDYWxsYmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1f
Y291bnRDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2NvdW50Q2Fs
bGJhY2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgcmV0dXJuIGlk
ZW50aWZpZXI7CiB9CiAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2Fj
dAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWlu
KSBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUiKTsKIAotICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShjYWxs
YmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02NTEs
NyArNjUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRl
bGV0ZU9iamVjdFN0b3JlIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxs
YmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3Rv
cmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxi
YWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mIHRyYW5zYWN0CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhl
ZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSIpOwogCi0g
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFj
ayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47
CiAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVj
dFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJE
YXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAg
aWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgcG9zdERhdGFiYXNlVGFzayhj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNs
ZWFyT2JqZWN0U3RvcmUsIGNhbGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVy
KCksIG9iamVjdFN0b3JlSWRlbnRpZmllcikpOwpAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleCIpOwogCi0gICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7
CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAg
ICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6cGVyZm9ybUNyZWF0ZUluZGV4LCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpLCBpbmZvKSk7CkBAIC04MDEsNyArODAxLDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24sIHUKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRl
eGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4Iik7CiAKLSAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsK
KyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1v
dmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApA
QCAtODUxLDcgKzg1MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFi
YXNlOjpyZW5hbWVJbmRleCIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2Fs
bGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0
b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxs
YmFja0lEKQogICAgICAgICByZXR1cm47CiAKQEAgLTkwNSw3ICs5MDUsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IGNvbnN0IElEQktleQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4
ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQiKTsKIAotICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShj
YWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogICAgIHBv
c3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0
YWJhc2U6OnBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBrZXlE
YXRhLCB2YWx1ZSwgb3ZlcndyaXRlTW9kZSkpOwpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSURCR2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJ
bmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCIpOwogCi0gICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7
CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAK
QEAgLTEwNjAsNyArMTA2MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29y
ZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRh
dGFiYXNlOjpnZXRBbGxSZWNvcmRzIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3Rv
cmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAo
IWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTEyNyw3ICsxMTI3LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJREJLZXkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExP
RyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50Iik7CiAKLSAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNr
KTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdU
Rk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsK
ICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0Q291bnQsIGNhbGxiYWNrSUQsIHJlcXVlc3REYXRhLnRy
YW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIo
KSwgcmVxdWVzdERhdGEuaW5kZXhJZGVudGlmaWVyKCksIHJhbmdlKSk7CkBAIC0xMTYwLDcgKzEx
NjAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRl
UmVjb3JkIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmly
ZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFj
a09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAg
ICAgICAgIHJldHVybjsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlUmVjb3JkLCBjYWxsYmFj
a0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSkpOwpAQCAtMTE4OSw3ICsxMTg5LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3Ii
KTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3Io
Y2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJl
RXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAg
cmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlz
LCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1PcGVuQ3Vyc29yLCBjYWxsYmFja0lELCByZXF1
ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgaW5mbykpOwpAQCAtMTIxOSw3ICsxMjE5
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVD
dXJzb3IiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJl
RXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNr
T3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAg
ICAgICAgcmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1JdGVyYXRlQ3Vyc29yLCBjYWxsYmFj
a0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEuY3Vy
c29ySWRlbnRpZmllcigpLCBkYXRhKSk7CkBAIC0xMjgzLDcgKzEyODMsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uJiB0cmFuc2FjdAogCiAgICAgQVNTRVJUKCZ0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rp
b24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0
b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYg
KCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMjcsNyArMTMyNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBBU1NFUlQoJnRyYW5zYWN0aW9uLmRhdGFiYXNl
Q29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsK
ICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3MCwxMSArMTU3
MCwxMSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNr
aW5nU3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFucwogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRh
YmFzZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbj4gcmVmVHJhbnNhY3Rpb24oJnRyYW5zYWN0aW9uKTsKIAotICAgIGF1dG8gY2Fs
bGJhY2sgPSBbcHJvdGVjdGVkVGhpcywgcmVmVHJhbnNhY3Rpb25dKGNvbnN0IElEQkVycm9yJiBl
cnJvcikgeworICAgIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2sgPSBbcHJvdGVjdGVkVGhpcywgcmVm
VHJhbnNhY3Rpb25dKGNvbnN0IElEQkVycm9yJiBlcnJvcikgewogICAgICAgICByZWZUcmFuc2Fj
dGlvbi0+ZGlkQWN0aXZhdGVJbkJhY2tpbmdTdG9yZShlcnJvcik7CiAgICAgfTsKIAotICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92
ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogICAg
IHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUsIGNhbGxi
YWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBi
ZDA4Yjc3NzU4ZDBjYzNkNTI2N2IzMjUxMjdkODM5YTUyMWExZGY2Li5jNTM5NzExNjgwYjQ4ZWMw
YzUzYWUwOWEwYjg4MmRkYTVhNzE0ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtNjgs
MTEgKzY4LDExIEBAIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogY2xhc3MgSURCQ29ubmVjdGlvblRv
Q2xpZW50OwogY2xhc3MgSURCU2VydmVyOwogCi10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChj
b25zdCBJREJFcnJvciYpPiBFcnJvckNhbGxiYWNrOwotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZv
aWQoY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJLZXlEYXRhJik+IEtleURhdGFDYWxsYmFjazsK
LXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCR2V0
UmVzdWx0Jik+IEdldFJlc3VsdENhbGxiYWNrOwotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQo
Y29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJHZXRBbGxSZXN1bHQmKT4gR2V0QWxsUmVzdWx0c0Nh
bGxiYWNrOwotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImLCB1aW50
NjRfdCk+IENvdW50Q2FsbGJhY2s7Cit0eXBlZGVmIEZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJy
b3ImKT4gRXJyb3JDYWxsYmFjazsKK3R5cGVkZWYgRnVuY3Rpb248dm9pZChjb25zdCBJREJFcnJv
ciYsIGNvbnN0IElEQktleURhdGEmKT4gS2V5RGF0YUNhbGxiYWNrOwordHlwZWRlZiBGdW5jdGlv
bjx2b2lkKGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCR2V0UmVzdWx0Jik+IEdldFJlc3VsdENh
bGxiYWNrOwordHlwZWRlZiBGdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURC
R2V0QWxsUmVzdWx0Jik+IEdldEFsbFJlc3VsdHNDYWxsYmFjazsKK3R5cGVkZWYgRnVuY3Rpb248
dm9pZChjb25zdCBJREJFcnJvciYsIHVpbnQ2NF90KT4gQ291bnRDYWxsYmFjazsKIAogY2xhc3Mg
VW5pcXVlSURCRGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VW5pcXVlSURC
RGF0YWJhc2U+IHsKIHB1YmxpYzoKQEAgLTE5MiwxMSArMTkyLDExIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRQZXJmb3JtQWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRpZFBlcmZv
cm1VbmNvbmRpdGlvbmFsRGVsZXRlQmFja2luZ1N0b3JlKCk7CiAKLSAgICB1aW50NjRfdCBzdG9y
ZUNhbGxiYWNrT3JGaXJlRXJyb3IoRXJyb3JDYWxsYmFjayk7Ci0gICAgdWludDY0X3Qgc3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKEtleURhdGFDYWxsYmFjayk7Ci0gICAgdWludDY0X3Qgc3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKEdldEFsbFJlc3VsdHNDYWxsYmFjayk7Ci0gICAgdWludDY0X3Qg
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEdldFJlc3VsdENhbGxiYWNrKTsKLSAgICB1aW50NjRf
dCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoQ291bnRDYWxsYmFjayk7CisgICAgdWludDY0X3Qg
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEVycm9yQ2FsbGJhY2smJik7CisgICAgdWludDY0X3Qg
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEtleURhdGFDYWxsYmFjayYmKTsKKyAgICB1aW50NjRf
dCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0QWxsUmVzdWx0c0NhbGxiYWNrJiYpOworICAg
IHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihHZXRSZXN1bHRDYWxsYmFjayYmKTsK
KyAgICB1aW50NjRfdCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoQ291bnRDYWxsYmFjayYmKTsK
IAogICAgIHZvaWQgcGVyZm9ybUVycm9yQ2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJREJFcnJvciYpOwogICAgIHZvaWQgcGVyZm9ybUtleURhdGFDYWxsYmFjayh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCS2V5
RGF0YSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312559</attachid>
            <date>2017-06-09 21:45:06 -0700</date>
            <delta_ts>2017-06-09 22:24:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173198-20170609214503.patch</filename>
            <type>text/plain</type>
            <size>29460</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc3YzY2NDQyOWViOGQx
ZTNjZGU4N2I4Njg4NGUxYjE0ZTZjYmI0MC4uZWI4Mzc3YjIyNGM0OTcwOGNmMzhkYTI4Mjg1NWYz
YmU5ZjFiNzYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE3LTA2LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgVXNlIFdURjo6RnVuY3Rpb24g
aW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uIGluIGluZGV4ZWRkYiBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIFVzZSBXVEY6OkZ1bmN0aW9uIGluc3RlYWQg
b2Ygc3RkOjpmdW5jdGlvbiBpbiBpbmRleGVkZGIgY29kZSB0byBhdm9pZCBjb3B5aW5nLgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJGYWN0b3J5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFi
YXNlTmFtZXMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNh
Y3Rpb25PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6VHJhbnNhY3Rp
b25PcGVyYXRpb246OmRvQ29tcGxldGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmln
aW5zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2Fs
bGJhY2tPckZpcmVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y29tbWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjphY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
OgorCisyMDE3LTA2LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAg
ICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBNYWMgYnVpbGQgYWZ0ZXIgcjIxODAzOS4KIAog
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IGRiOWFhMGU2NmYwOWM4NTBi
YjRkNTlkMmIyMzJiNzg2MDJhOTc2M2EuLjZjNjdlY2Y1ZGE5NDc0YmIwM2I2NGExZTdiMmQ0Yjc1
ZjgzZGQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwCkBAIC0xMzQsOSArMTM0LDkgQEAgRXhjZXB0aW9uT3I8c2hvcnQ+IElEQkZhY3Rv
cnk6OmNtcChFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSlNWYWx1ZSBmaXJzdFZhbHVlLCBKU1YKICAg
ICByZXR1cm4gZmlyc3QtPmNvbXBhcmUoc2Vjb25kLmdldCgpKTsKIH0KIAotdm9pZCBJREJGYWN0
b3J5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVP
cmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+IGNhbGxiYWNrKQordm9pZCBJREJGYWN0b3J5
OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChj
b25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQogewotICAgIG1fY29ubmVjdGlvblBy
b3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwg
Y2FsbGJhY2spOworICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1h
aW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5LmgKaW5kZXggOGRiYzExY2U2ZTViODY2M2MxZTQyMTY5NTg3MWY4NTYwNzkx
MDdmMy4uMjk2OWU1ZTUyNzFhYTkzMmQ3NWU4NzczZTNhMGU3Y2Y1ODUyNWMyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApAQCAtMjgsNyArMjgs
NyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKLSNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAK
ICAgICBFeGNlcHRpb25PcjxzaG9ydD4gY21wKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVl
IGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lk
IChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRB
bGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElEQkZh
Y3RvcnkoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Q
cm94eS5jcHAKaW5kZXggNGRiNTBjMGI5MWFjMGQyY2NmZGI0ZmVkYWU2MmY1NWM3ZDQzYjlhMi4u
ZmU0NGVkNDU4OGZhNWU3MmNjMzhmYzYyYjQ4ODIyZmJkNWVlYmJjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5jcHAKQEAgLTQ4NCwxMiArNDg0LDEyIEBAIHZvaWQgSURCQ29ubmVjdGlvblBy
b3h5OjpoYW5kbGVNYWluVGhyZWFkVGFza3MoKQogICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygp
OwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25z
dCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
b3BlbmluZ09yaWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYp
PiBjYWxsYmFjaykKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVz
KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYp
PiYmIGNhbGxiYWNrKQogewogICAgIC8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgbWVhbnQgdG8gYmUg
Y2FsbGVkIGJ5IHRoZSB3ZWIgaW5zcGVjdG9yIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICBSRUxF
QVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5n
ZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJh
Y2spOworICAgIG1fY29ubmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNlTmFtZXMobWFpbkZy
YW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQg
SURCQ29ubmVjdGlvblByb3h5OjpyZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFz
ZSYgZGF0YWJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKaW5kZXggNWMwMWFjMzRjZDYyZmVh
OWMxMjA4MTkyY2UyZTVjYzI1YWQ0MDRiNS4uY2MyNDRkNGQxOWRmNmU4M2I4YTM1NDkxMzgzOTQ5
OWQ1NzVlNTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApAQCAtMzAsOSArMzAsOSBAQAog
I2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgIklEQlJlc291cmNl
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uT3BlcmF0aW9uLmgiCi0jaW5jbHVk
ZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oPgogI2luY2x1
ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlZigpOwogICAgIHZvaWQgZGVyZWYoKTsKIAotICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
cyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3BlbmluZ09yaWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpPik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2lu
LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOwogCiAgICAg
dm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwogICAgIHZvaWQg
dW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA3NWM1NzczYTU2MzEwNDA0Y2Q2ZmFiNjE5NTM3MWJm
OGQ3Y2I4NWFlLi45ZTVlZWEyOWVhNWI3Y2JmYzFkMjVmODQ3ZDQyYTNlMjE5ODUyMGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvCiAgICAgbV9kZWxlZ2F0ZS0+YWJvcnRPcGVuQW5kVXBncmFkZU5l
ZWRlZChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIp
OwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhj
b25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgb3BlbmluZ09yaWdpbiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5n
PiYpPiBjYWxsYmFjaykKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpPiYmIGNhbGxiYWNrKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDc2NTFmNDMwNTU3YTYzOGZj
MmMwNjE3NjU3YWZlYTEwNzc5YWJlZTAuLjE0MTQ4YjdhMzNmMzYzMTlkYmE3MTlhOTI0NGNlOTM1
MjEyZjJjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJveHkuaCIKICNpbmNsdWRlICJJREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgpAQCAtMTM2LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICAvLyB2ZXJzaW9uY2hhbmdlIHRyYW5z
YWN0aW9uLCBidXQgdGhlIHBhZ2UgaXMgYWxyZWFkeSB0b3JuIGRvd24uCiAgICAgdm9pZCBhYm9y
dE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
IAotICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFp
bkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgc3RkOjpm
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPik7CisgICAgdm9pZCBnZXRBbGxE
YXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZGF0YWJhc2VOYW1lcyk7CiAKIHByaXZhdGU6CkBAIC0xNDQsNyArMTQ1LDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKIAot
ICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0
cmluZz4mKT4+IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVp
bnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dl
dEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQ29u
bmVjdGlvblByb3h5PiBtX3Byb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKaW5k
ZXggY2Q5NWJlZmQ1M2Q5YWUzZjM5ZGJmYWZmZWMyNTU4ZGVkMWU4N2QwMS4uYzcyNDUzMWIyZTFl
NTk2MjQ1YzU2OTNiNTY1NTVhOWY2OGRjMzZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9u
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJJREJSZXN1bHREYXRhLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIK
KyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtOTUsNyArOTYsNyBAQCBwdWJsaWM6CiAK
ICAgICAgICAgLy8gbV9jb21wbGV0ZUZ1bmN0aW9uIG1pZ2h0IGJlIGhvbGRpbmcgdGhlIGxhc3Qg
cmVmIHRvIHRoaXMgVHJhbnNhY3Rpb25PcGVyYXRpb24sCiAgICAgICAgIC8vIHNvIHdlIG5lZWQg
dG8gZG8gdGhpcyB0cmljayB0byBudWxsIGl0IG91dCB3aXRob3V0IGZpcnN0IGRlc3Ryb3lpbmcg
aXQuCi0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgSURCUmVzdWx0RGF0YSYpPiBv
bGRDb21wbGV0ZUZ1bmN0aW9uOworICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IElE
QlJlc3VsdERhdGEmKT4gb2xkQ29tcGxldGVGdW5jdGlvbjsKICAgICAgICAgc3RkOjpzd2FwKG1f
Y29tcGxldGVGdW5jdGlvbiwgb2xkQ29tcGxldGVGdW5jdGlvbik7CiAgICAgfQogCkBAIC0xMjMs
OCArMTI0LDggQEAgcHJvdGVjdGVkOgogICAgIHVpbnQ2NF90IG1faW5kZXhJZGVudGlmaWVyIHsg
MCB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJSZXNvdXJjZUlkZW50aWZpZXI+IG1fY3Vyc29y
SWRlbnRpZmllcjsKICAgICBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSBtX2luZGV4UmVjb3Jk
VHlwZTsKLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fcGVyZm9ybUZ1bmN0aW9uOwotICAg
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgSURCUmVzdWx0RGF0YSYpPiBtX2NvbXBsZXRlRnVu
Y3Rpb247CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBtX3BlcmZvcm1GdW5jdGlvbjsKKyAg
ICBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlJlc3VsdERhdGEmKT4gbV9jb21wbGV0ZUZ1
bmN0aW9uOwogCiBwcml2YXRlOgogICAgIElEQlJlc291cmNlSWRlbnRpZmllciB0cmFuc2FjdGlv
bklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uLT5pbmZvKCkuaWRlbnRp
ZmllcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDljZDNkYjRkMWJjMTRhMzYxNzMyMWFiMDA1YTAxOTYy
MDUyNzgyNzguLjY0NDNkZGNhOTM0OTBkOGM5ZTZlNmIxMmQzNDIzYzBiODM2OTRlODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCkBAIC01MzYsNyArNTM2LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlRGVsZXRl
Q2FsbGJhY2tJRCgpCiAgICAgcmV0dXJuICsrY3VycmVudElEOwogfQogCi12b2lkIElEQlNlcnZl
cjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpY2F0aW9uVGltZSwgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURh
dGFiYXNlc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCBtb2RpZmljYXRpb25UaW1lLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQo
KTsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZGVsZXRlRGF0YWJhc2VDb21wbGV0aW9uSGFuZGxl
cnMuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTU1OCw3
ICs1NTgsNyBAQCB2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmll
ZFNpbmNlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OgogICAgIHBvc3REYXRhYmFzZVRhc2so
Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmSURCU2VydmVyOjpwZXJmb3JtQ2xvc2VBbmRE
ZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFja0lE
KSk7CiB9CiAKLXZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdp
bnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmRE
ZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
JiBvcmlnaW5zLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQoKTsKICAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fZGVsZXRlRGF0YWJhc2VDb21wbGV0aW9uSGFuZGxlcnMuYWRkKGNh
bGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCA5MzRhMWQx
NzQ1MjkwODQyOGEzYWU2ZTBlZDdlNTEwYTlhOWNhNmU1Li5lNDZmN2I1ODIxZWEwMTZiZmUyNTRm
NGQxNzdjNmVhYWQxNTJjMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC0xMDIsOCArMTAyLDggQEAgcHVibGljOgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkJhY2tpbmdTdG9yZT4gY3JlYXRlQmFja2luZ1N0b3Jl
KGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFu
ZGxlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zv
ck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
b3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lu
cyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIEZ1bmN0aW9uPHZvaWQgKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOwogCiBwcml2YXRlOgogICAgIElEQlNlcnZlcihJREJCYWNraW5n
U3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwpAQCAtMTM2LDcgKzEzNiw3IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9k
YXRhYmFzZUNvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKj4gbV90cmFuc2FjdGlvbnM7CiAKLSAgICBIYXNo
TWFwPHVpbnQ2NF90LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBtX2RlbGV0ZURhdGFiYXNlQ29t
cGxldGlvbkhhbmRsZXJzOworICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0aW9uPHZvaWQgKCk+
PiBtX2RlbGV0ZURhdGFiYXNlQ29tcGxldGlvbkhhbmRsZXJzOwogCiAgICAgU3RyaW5nIG1fZGF0
YWJhc2VEaXJlY3RvcnlQYXRoOwogICAgIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5k
bGVyJiBtX2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKaW5kZXggYzZmY2FmMTI0YjZiZWJhODA5OTY0ZDE1NzFiMDczN2FhYTA3MzRmYi4u
YmJhYzA3Y2I1ZTYwYThkZThmZGRmMTg3OGVmMGNiMTU1NDQzNjIyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwCkBAIC0zODMsNyArMzgzLDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
VW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKCkKICAgICByZXR1cm4gKytjdXJyZW50SUQ7CiB9CiAK
LXVpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoRXJy
b3JDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNh
bGxiYWNrT3JGaXJlRXJyb3IoRXJyb3JDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICht
X2hhcmRDbG9zZWRGb3JVc2VyRGVsZXRlKSB7CiAgICAgICAgIGNhbGxiYWNrKElEQkVycm9yOjp1
c2VyRGVsZXRlRXJyb3IoKSk7CkBAIC0zOTIsMTEgKzM5MiwxMSBAQCB1aW50NjRfdCBVbmlxdWVJ
REJEYXRhYmFzZTo6c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEVycm9yQ2FsbGJhY2sgY2FsbGJh
Y2spCiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gZ2VuZXJhdGVVbmlxdWVDYWxsYmFja0lk
ZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDYWxsYmFja3MuY29udGFpbnMoaWRlbnRp
ZmllcikpOwotICAgIG1fZXJyb3JDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsK
KyAgICBtX2Vycm9yQ2FsbGJhY2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLXVpbnQ2NF90IFVuaXF1ZUlEQkRhdGFiYXNl
OjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoS2V5RGF0YUNhbGxiYWNrIGNhbGxiYWNrKQordWlu
dDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihLZXlEYXRh
Q2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9yVXNlckRlbGV0
ZSkgewogICAgICAgICBjYWxsYmFjayhJREJFcnJvcjo6dXNlckRlbGV0ZUVycm9yKCksIHsgfSk7
CkBAIC00MDUsMTEgKzQwNSwxMSBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKEtleURhdGFDYWxsYmFjayBjYWxsYmFjaykKIAogICAgIHVpbnQ2
NF90IGlkZW50aWZpZXIgPSBnZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcigpOwogICAg
IEFTU0VSVCghbV9rZXlEYXRhQ2FsbGJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBt
X2tleURhdGFDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2tleURh
dGFDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICByZXR1
cm4gaWRlbnRpZmllcjsKIH0KIAotdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2Fs
bGJhY2tPckZpcmVFcnJvcihHZXRSZXN1bHRDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2NF90IFVu
aXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0UmVzdWx0Q2FsbGJh
Y2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9yVXNlckRlbGV0ZSkgewog
ICAgICAgICBjYWxsYmFjayhJREJFcnJvcjo6dXNlckRlbGV0ZUVycm9yKCksIHsgfSk7CkBAIC00
MTgsMTEgKzQxOCwxMSBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxsYmFj
a09yRmlyZUVycm9yKEdldFJlc3VsdENhbGxiYWNrIGNhbGxiYWNrKQogCiAgICAgdWludDY0X3Qg
aWRlbnRpZmllciA9IGdlbmVyYXRlVW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKCk7CiAgICAgQVNT
RVJUKCFtX2dldFJlc3VsdENhbGxiYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9n
ZXRSZXN1bHRDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2dldFJl
c3VsdENhbGxiYWNrcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIHJl
dHVybiBpZGVudGlmaWVyOwogfQogCi11aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKEdldEFsbFJlc3VsdHNDYWxsYmFjayBjYWxsYmFjaykKK3VpbnQ2
NF90IFVuaXF1ZUlEQkRhdGFiYXNlOjpzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0QWxsUmVz
dWx0c0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKG1faGFyZENsb3NlZEZvclVzZXJE
ZWxldGUpIHsKICAgICAgICAgY2FsbGJhY2soSURCRXJyb3I6OnVzZXJEZWxldGVFcnJvcigpLCB7
IH0pOwpAQCAtNDMxLDExICs0MzEsMTEgQEAgdWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0
b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihHZXRBbGxSZXN1bHRzQ2FsbGJhY2sgY2FsbGIKIAogICAg
IHVpbnQ2NF90IGlkZW50aWZpZXIgPSBnZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcigp
OwogICAgIEFTU0VSVCghbV9nZXRBbGxSZXN1bHRzQ2FsbGJhY2tzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKLSAgICBtX2dldEFsbFJlc3VsdHNDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxi
YWNrKTsKKyAgICBtX2dldEFsbFJlc3VsdHNDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIFdURk1v
dmUoY2FsbGJhY2spKTsKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdWludDY0X3QgVW5p
cXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihDb3VudENhbGxiYWNrIGNh
bGxiYWNrKQordWludDY0X3QgVW5pcXVlSURCRGF0YWJhc2U6OnN0b3JlQ2FsbGJhY2tPckZpcmVF
cnJvcihDb3VudENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKG1faGFyZENsb3NlZEZv
clVzZXJEZWxldGUpIHsKICAgICAgICAgY2FsbGJhY2soSURCRXJyb3I6OnVzZXJEZWxldGVFcnJv
cigpLCAwKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKENvdW50Q2FsbGJhY2sgY2FsbGJhY2spCiAKICAgICB1
aW50NjRfdCBpZGVudGlmaWVyID0gZ2VuZXJhdGVVbmlxdWVDYWxsYmFja0lkZW50aWZpZXIoKTsK
ICAgICBBU1NFUlQoIW1fY291bnRDYWxsYmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAg
IG1fY291bnRDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKKyAgICBtX2NvdW50
Q2FsbGJhY2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgcmV0dXJu
IGlkZW50aWZpZXI7CiB9CiAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIiht
YWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUiKTsKIAotICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOworICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92ZShj
YWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02
NTEsNyArNjUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6
OmRlbGV0ZU9iamVjdFN0b3JlIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVD
YWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNh
bGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSIpOwog
Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxs
YmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJv
cihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1
cm47CiAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9i
amVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJ
REJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgcG9zdERhdGFiYXNlVGFz
ayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bUNsZWFyT2JqZWN0U3RvcmUsIGNhbGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCksIG9iamVjdFN0b3JlSWRlbnRpZmllcikpOwpAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBjCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0co
SW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleCIpOwogCi0g
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFj
ayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47
CiAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybUNyZWF0ZUluZGV4LCBjYWxsYmFja0lELCB0cmFuc2FjdGlv
bi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvKSk7CkBAIC04MDEsNyArODAxLDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sIHUKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJ
bmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4Iik7CiAKLSAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNr
KTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdU
Rk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsK
IApAQCAtODUxLDcgKzg1MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRh
dGFiYXNlOjpyZW5hbWVJbmRleCIpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3Jl
Q2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFj
YWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAKQEAgLTkwNSw3ICs5MDUsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIGNvbnN0IElEQktleQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKElu
ZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQiKTsKIAotICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RGTW92
ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwogICAg
IHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJhbnNh
Y3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBr
ZXlEYXRhLCB2YWx1ZSwgb3ZlcndyaXRlTW9kZSkpOwpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgY29uc3QgSURCR2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExP
RyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCIpOwogCi0g
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFj
ayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgaWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47
CiAKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJl
Y29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlE
QkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
c3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBp
ZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTEyNyw3ICsxMTI3LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50Iik7CiAK
LSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxi
YWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9y
KFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVy
bjsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0Q291bnQsIGNhbGxiYWNrSUQsIHJlcXVlc3REYXRh
LnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZp
ZXIoKSwgcmVxdWVzdERhdGEuaW5kZXhJZGVudGlmaWVyKCksIHJhbmdlKSk7CkBAIC0xMTYwLDcg
KzExNjAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGVs
ZXRlUmVjb3JkIik7CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09y
RmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxs
YmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBpZiAoIWNhbGxiYWNrSUQp
CiAgICAgICAgIHJldHVybjsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlUmVjb3JkLCBjYWxs
YmFja0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEu
b2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSkpOwpAQCAtMTE4OSw3ICsxMTg5
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJz
b3IiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJy
b3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JG
aXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAg
ICAgcmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1PcGVuQ3Vyc29yLCBjYWxsYmFja0lELCBy
ZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgaW5mbykpOwpAQCAtMTIxOSw3ICsx
MjE5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJh
dGVDdXJzb3IiKTsKIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JG
aXJlRXJyb3IoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxi
YWNrT3JGaXJlRXJyb3IoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkK
ICAgICAgICAgcmV0dXJuOwogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1JdGVyYXRlQ3Vyc29yLCBjYWxs
YmFja0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEu
Y3Vyc29ySWRlbnRpZmllcigpLCBkYXRhKSk7CkBAIC0xMjgzLDcgKzEyODMsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogCiAgICAgQVNTRVJUKCZ0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5l
Y3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAg
aWYgKCFjYWxsYmFja0lEKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMjcsNyArMTMyNyw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBBU1NFUlQoJnRyYW5zYWN0aW9uLmRhdGFi
YXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CiAKLSAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNrKTsKKyAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKFdURk1vdmUoY2FsbGJhY2sp
KTsKICAgICBpZiAoIWNhbGxiYWNrSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3MCwxMSAr
MTU3MCwxMSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphY3RpdmF0ZVRyYW5zYWN0aW9uSW5C
YWNraW5nU3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFucwogICAgIFJlZlB0cjxVbmlxdWVJREJE
YXRhYmFzZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbj4gcmVmVHJhbnNhY3Rpb24oJnRyYW5zYWN0aW9uKTsKIAotICAgIGF1dG8g
Y2FsbGJhY2sgPSBbcHJvdGVjdGVkVGhpcywgcmVmVHJhbnNhY3Rpb25dKGNvbnN0IElEQkVycm9y
JiBlcnJvcikgeworICAgIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2sgPSBbcHJvdGVjdGVkVGhpcywg
cmVmVHJhbnNhY3Rpb25dKGNvbnN0IElEQkVycm9yJiBlcnJvcikgewogICAgICAgICByZWZUcmFu
c2FjdGlvbi0+ZGlkQWN0aXZhdGVJbkJhY2tpbmdTdG9yZShlcnJvcik7CiAgICAgfTsKIAotICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2sp
OworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoV1RG
TW92ZShjYWxsYmFjaykpOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwog
ICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUsIGNh
bGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRl
eCBiZDA4Yjc3NzU4ZDBjYzNkNTI2N2IzMjUxMjdkODM5YTUyMWExZGY2Li44MTlhNWVhZDVkNGU2
NjhhYzQwZTlmNWUzYzZlMjlmMDZhMTU4ODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAt
NDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC02
OCwxMSArNjksMTEgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiBjbGFzcyBJREJDb25uZWN0aW9u
VG9DbGllbnQ7CiBjbGFzcyBJREJTZXJ2ZXI7CiAKLXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lk
KGNvbnN0IElEQkVycm9yJik+IEVycm9yQ2FsbGJhY2s7Ci10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248
dm9pZChjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQktleURhdGEmKT4gS2V5RGF0YUNhbGxiYWNr
OwotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJH
ZXRSZXN1bHQmKT4gR2V0UmVzdWx0Q2FsbGJhY2s7Ci10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9p
ZChjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQkdldEFsbFJlc3VsdCYpPiBHZXRBbGxSZXN1bHRz
Q2FsbGJhY2s7Ci10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBJREJFcnJvciYsIHVp
bnQ2NF90KT4gQ291bnRDYWxsYmFjazsKK3R5cGVkZWYgRnVuY3Rpb248dm9pZChjb25zdCBJREJF
cnJvciYpPiBFcnJvckNhbGxiYWNrOwordHlwZWRlZiBGdW5jdGlvbjx2b2lkKGNvbnN0IElEQkVy
cm9yJiwgY29uc3QgSURCS2V5RGF0YSYpPiBLZXlEYXRhQ2FsbGJhY2s7Cit0eXBlZGVmIEZ1bmN0
aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJHZXRSZXN1bHQmKT4gR2V0UmVzdWx0
Q2FsbGJhY2s7Cit0eXBlZGVmIEZ1bmN0aW9uPHZvaWQoY29uc3QgSURCRXJyb3ImLCBjb25zdCBJ
REJHZXRBbGxSZXN1bHQmKT4gR2V0QWxsUmVzdWx0c0NhbGxiYWNrOwordHlwZWRlZiBGdW5jdGlv
bjx2b2lkKGNvbnN0IElEQkVycm9yJiwgdWludDY0X3QpPiBDb3VudENhbGxiYWNrOwogCiBjbGFz
cyBVbmlxdWVJREJEYXRhYmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxVbmlxdWVJ
REJEYXRhYmFzZT4gewogcHVibGljOgpAQCAtMTkyLDExICsxOTMsMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZFBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUodWludDY0
X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogICAgIHZvaWQgZGlkUGVy
Zm9ybVVuY29uZGl0aW9uYWxEZWxldGVCYWNraW5nU3RvcmUoKTsKIAotICAgIHVpbnQ2NF90IHN0
b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihFcnJvckNhbGxiYWNrKTsKLSAgICB1aW50NjRfdCBzdG9y
ZUNhbGxiYWNrT3JGaXJlRXJyb3IoS2V5RGF0YUNhbGxiYWNrKTsKLSAgICB1aW50NjRfdCBzdG9y
ZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0QWxsUmVzdWx0c0NhbGxiYWNrKTsKLSAgICB1aW50NjRf
dCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoR2V0UmVzdWx0Q2FsbGJhY2spOwotICAgIHVpbnQ2
NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihDb3VudENhbGxiYWNrKTsKKyAgICB1aW50NjRf
dCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoRXJyb3JDYWxsYmFjayYmKTsKKyAgICB1aW50NjRf
dCBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoS2V5RGF0YUNhbGxiYWNrJiYpOworICAgIHVpbnQ2
NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihHZXRBbGxSZXN1bHRzQ2FsbGJhY2smJik7Cisg
ICAgdWludDY0X3Qgc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKEdldFJlc3VsdENhbGxiYWNrJiYp
OworICAgIHVpbnQ2NF90IHN0b3JlQ2FsbGJhY2tPckZpcmVFcnJvcihDb3VudENhbGxiYWNrJiYp
OwogCiAgICAgdm9pZCBwZXJmb3JtRXJyb3JDYWxsYmFjayh1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBwZXJmb3JtS2V5RGF0YUNhbGxiYWNr
KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJL
ZXlEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmNwcAppbmRleCBjOTRmMzdhMjkzNzE4ZDE3ODE4ZmVlODkzOTE4YzZiZjQx
NWRlYjQwLi40NjQ0Y2QwY2UxNDQ0YzA3OTlmYjZkZTE4MGYyMDdjNTM0YjkxNTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5j
cHAKQEAgLTU4MSw4ICs1ODEsNyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpyZXF1
ZXN0RGF0YWJhc2VOYW1lcyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbgogICAgIGlmICgh
aWRiRmFjdG9yeSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFJlcXVlc3REYXRhYmFz
ZU5hbWVzQ2FsbGJhY2s+IGNhbGxiYWNrID0gV1RGTW92ZShyZXF1ZXN0Q2FsbGJhY2spOwotICAg
IGlkYkZhY3RvcnktPmdldEFsbERhdGFiYXNlTmFtZXModG9wT3JpZ2luLCBvcGVuaW5nT3JpZ2lu
LCBbY2FsbGJhY2tdKGF1dG8mIGRhdGFiYXNlTmFtZXMpIHsKKyAgICBpZGJGYWN0b3J5LT5nZXRB
bGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgW2NhbGxiYWNrID0gV1RG
TW92ZShyZXF1ZXN0Q2FsbGJhY2spXShhdXRvJiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGlm
ICghY2FsbGJhY2stPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>