<?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>138939</bug_id>
          
          <creation_ts>2014-11-20 15:53:27 -0800</creation_ts>
          <short_desc>Make memoryCache() return a reference</short_desc>
          <delta_ts>2014-11-21 09:04:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1050294</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-11-20 15:53:27 -0800</bug_when>
    <thetext>Make memoryCache() return a reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050471</commentid>
    <comment_count>1</comment_count>
      <attachid>242049</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-11-21 08:51:19 -0800</bug_when>
    <thetext>Created attachment 242049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050472</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-11-21 09:04:28 -0800</bug_when>
    <thetext>Committed r176450: &lt;http://trac.webkit.org/changeset/176450&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242049</attachid>
            <date>2014-11-21 08:51:19 -0800</date>
            <delta_ts>2014-11-21 08:54:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138939-20141121085135.patch</filename>
            <type>text/plain</type>
            <size>47999</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2ZjE5NmM0ODk2OTc3
Y2Y1YmI5NmJlOTI2NmM1ZDQ1NDhmZTg5My4uZWNjM2JjMWIxOGE4OWY4NGUyNDA3MzFlNjQxZGE3
NzMzZWVlMTFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE0LTExLTIxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBtZW1vcnlD
YWNoZSgpIHJldHVybiBhIHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlcGxheVhIUik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRDYWNoZURpc2FibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1haW5GcmFtZU5hdmlnYXRlZCk6Cisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFy
ZUFsbExvYWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpmaW5pc2hlZExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1l
bW9yeUNhY2hlTG9hZHMpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmFkZEluY3JlbWVudGFs
RGF0YUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6ZmluaXNoTG9hZGlu
Zyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6On5DYWNoZWRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZmFpbEJlZm9yZVN0YXJ0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjphZGRDbGllbnRUb1NldCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2V0RGVjb2RlZFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2U6OnNldEVuY29kZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpkaWRBY2Nlc3NEZWNvZGVkRGF0YSk6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNsZWFyUHJlbG9hZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByaW50UHJlbG9hZFN0YXRzKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tU2Vzc2lvbkNhY2hlcyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
Lmg6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tl
ZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojp3aWxsUGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmRpZFBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVh
c2VDcml0aWNhbE1lbW9yeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUpOgorCiAy
MDE0LTExLTIxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQVg6IE1hdGhNTCBleHByZXNzaW9ucyBhcmUgbWlzcmVhZCBieSBWb2ljZU92ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCA1NDk1NTkwNTZiZGZmZjJkMzE1NTU5YTZiNjNhOWVmMzRlMjc2NjNmLi4x
YmM0NjdjZWExZWIwNDYxZTljYjhlMGYyZTE3ZGQyZTA1YmQ0YzkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMTEtMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIG1lbW9yeUNhY2hlKCkgcmV0dXJuIGEgcmVmZXJl
bmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg5
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
c2MvV2ViQ2FjaGUubW06CisgICAgICAgICgrW1dlYkNhY2hlIHN0YXRpc3RpY3NdKToKKyAgICAg
ICAgKCtbV2ViQ2FjaGUgZW1wdHlJbk1lbW9yeVJlc291cmNlc10pOgorICAgICAgICAoK1tXZWJD
YWNoZSBzaXplT2ZEZWFkUmVzb3VyY2VzOl0pOgorICAgICAgICAoK1tXZWJDYWNoZSBhZGRJbWFn
ZVRvQ2FjaGU6Zm9yVVJMOmZvckZyYW1lOl0pOgorICAgICAgICAoK1tXZWJDYWNoZSByZW1vdmVJ
bWFnZUZyb21DYWNoZUZvclVSTDpmb3JGcmFtZTpdKToKKyAgICAgICAgKCtbV2ViQ2FjaGUgaW1h
Z2VGb3JVUkw6XSk6CisgICAgICAgICgrW1dlYkNhY2hlIHNldERpc2FibGVkOl0pOgorICAgICAg
ICAoK1tXZWJDYWNoZSBpc0Rpc2FibGVkXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoK1tXZWJWaWV3IF9zZXRDYWNoZU1vZGVsOl0pOgorCiAyMDE0LTExLTIwICBC
ZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0
aGUgcmVtYWluaW5nIHZlc3RpZ2VzIG9mIG1pbmltYWwtdWkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBj
NjQzNWZkMmY5YmVhNzQ1ZGM2NjNhYTZjNzQ1YWY4ZDVjZjMzMjkwLi4xYjM1MDkxZjY3MTQ4YjNh
MTdmMjMyOWU3NGRmNGU2ZGM0M2FmNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTQtMTEtMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIG1lbW9yeUNhY2hlKCkgcmV0dXJuIGEgcmVmZXJlbmNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg5MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNhY2hlOjpzdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNhY2hlOjplbXB0eSk6
CisgICAgICAgIChXZWJDYWNoZTo6c2V0RGlzYWJsZWQpOgorICAgICAgICAoV2ViQ2FjaGU6OmRp
c2FibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENh
Y2hlTW9kZWwpOgorCiAyMDE0LTExLTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbVGV4TWFwXSBBZGQgdHlwZWNhc3Rpbmcgc3VwcG9ydCBmb3IgR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NmJjODEwMmI0NDAzMWUyN2I0
OTQ1OTY5ZmNmZDlhODQ0MTUzYjdhLi5jZTgxMjk2NjQ1YjFhNzA1ZjlmZTA4NmE2NTBlNWU3YmZk
OGY4NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMTEtMjEgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIG1lbW9yeUNhY2hl
KCkgcmV0dXJuIGEgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENh
Y2hlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyOjpnZXRDYWNoZU9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlcjo6Y2xlYXJDYWNoZUZvck9yaWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dGVybWluYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpjbGVhclJlc291cmNlQ2FjaGVzKToKKyAgICAgICAgKFdlYktpdDo6Z2V0
V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNldE1lbW9yeUNhY2hlRGlzYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9y
bVNldENhY2hlTW9kZWwpOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2Rl
bCk6CisKIDIwMTQtMTEtMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwCmluZGV4IDJmMjQ0Y2E0Mjk0MTRlMjBmMGQ4MjIzYzgzNWE4ZmRhNGM3MzQ5
N2YuLmFhOTQxMWFjZDRhY2Y5ZTYyNGVkYjgzZmE1M2NmMDZhMDUxNGRiNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yNjMsNyAr
MjYzLDcgQEAgQ2FjaGVkUmVzb3VyY2UqIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3Vy
Y2UoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElU
SU9OSU5HKQogICAgICAgICByZXF1ZXN0LnNldERvbWFpbkZvckNhY2hlUGFydGl0aW9uKGZyYW1l
LT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+ZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKSk7CiAj
ZW5kaWYKLSAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZv
clJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOworICAgICAgICBj
YWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCkucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qs
IGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICByZXR1cm4gY2FjaGVk
UmVzb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKaW5kZXggNDgxYjJiYWQ0MTkyYTQ1MWJmNGQ4MjIwMDIxMzJmYzA0Mzlj
NmU0MC4uODliY2EwOWM4NDkwNGY5YmJhMjUzMjIyOGI5ZWU1MmMwOWY0YmQ0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApA
QCAtNzA3LDkgKzcwNyw5IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhS
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCiAgICAgcmVxdWVzdC5zZXRE
b21haW5Gb3JDYWNoZVBhcnRpdGlvbihtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCktPmRvY3VtZW50
KCktPnRvcE9yaWdpbigpLT5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgogCi0g
ICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3Vy
Y2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Npb25JRCgpKTsK
KyAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLnJlc291
cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBtX3BhZ2VBZ2VudC0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7
CiAgICAgaWYgKGNhY2hlZFJlc291cmNlKQotICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUo
Y2FjaGVkUmVzb3VyY2UpOworICAgICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZShjYWNoZWRSZXNv
dXJjZSk7CiAKICAgICB4aHItPm9wZW4oeGhyUmVwbGF5RGF0YS0+bWV0aG9kKCksIHhoclJlcGxh
eURhdGEtPnVybCgpLCB4aHJSZXBsYXlEYXRhLT5hc3luYygpLCBJR05PUkVfRVhDRVBUSU9OKTsK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHhoclJlcGxheURhdGEtPmhlYWRlcnMoKSkK
QEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldENhY2hl
RGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGNhY2hlRGlzYWJsZWQpCiB7CiAgICAgbV9jYWNo
ZURpc2FibGVkID0gY2FjaGVEaXNhYmxlZDsKICAgICBpZiAoY2FjaGVEaXNhYmxlZCkKLSAgICAg
ICAgbWVtb3J5Q2FjaGUoKS0+ZXZpY3RSZXNvdXJjZXMoKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUo
KS5ldmljdFJlc291cmNlcygpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Omxv
YWRSZXNvdXJjZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFBhc3NSZWZQdHI8TG9hZFJlc291cmNlQ2FsbGJh
Y2s+IHBycENhbGxiYWNrKQpAQCAtNzg5LDcgKzc4OSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6bG9hZFJlc291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1haW5GcmFtZU5hdmlnYXRlZChEb2N1
bWVudExvYWRlciogbG9hZGVyKQogewogICAgIGlmIChtX2NhY2hlRGlzYWJsZWQpCi0gICAgICAg
IG1lbW9yeUNhY2hlKCktPmV2aWN0UmVzb3VyY2VzKCk7CisgICAgICAgIG1lbW9yeUNhY2hlKCku
ZXZpY3RSZXNvdXJjZXMoKTsKIAogICAgIG1fcmVzb3VyY2VzRGF0YS0+Y2xlYXIobV9wYWdlQWdl
bnQtPmxvYWRlcklkKGxvYWRlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggMTU3NTQzMWY5MGQ1NzhlMDkyZTY0ODA5ZWY0MTY3ZjY1MTQyOTZhOS4u
ZTNjYWI3OGE2ZDJlYjBmN2MxYTg3OGQ2MDViYzFiMmZhYzliY2I4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGJv
b2wgYXJlQWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFibGUoY29uc3QgUmVzb3VyY2VMb2FkZXJN
YXAmIGxvYWRlcnMpCiAgICAgICAgIGlmICghbG9hZGVyLT5mcmFtZUxvYWRlcigpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCksIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25J
RCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS5yZXNvdXJjZUZvclVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLCBsb2FkZXIt
PmZyYW1lTG9hZGVyKCktPmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlm
ICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ0OCw3
ICs0NDgsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpmaW5pc2hlZExvYWRpbmcoZG91YmxlIGZp
bmlzaFRpbWUpCiAgICAgLy8gYW5kIGRlbnkgdGhlIGFwcGNhY2hlIHRoZSBjaGFuY2UgdG8gaW50
ZXJjZXB0IGl0IGluIHRoZSBmdXR1cmUsIHNvIHJlbW92ZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUu
CiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgaWYgKG1fbWFpblJlc291cmNlICYmIG1fZnJh
bWUtPmRvY3VtZW50KCktPmhhc01hbmlmZXN0KCkpCi0gICAgICAgICAgICBtZW1vcnlDYWNoZSgp
LT5yZW1vdmUobV9tYWluUmVzb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgbWVtb3J5Q2FjaGUo
KS5yZW1vdmUobV9tYWluUmVzb3VyY2UuZ2V0KCkpOwogICAgIH0KICAgICBtX2FwcGxpY2F0aW9u
Q2FjaGVIb3N0LT5maW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKIH0KQEAgLTU5OSw3ICs1
OTksNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZQogICAgIC8vIFRoZSBtZW1vcnkgY2FjaGUg
ZG9lc24ndCB1bmRlcnN0YW5kIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSBvciBpdHMgY2FjaGluZyBy
dWxlcy4gU28gaWYgYSBtYWluIHJlc291cmNlIGlzIHNlcnZlZAogICAgIC8vIGZyb20gdGhlIGFw
cGxpY2F0aW9uIGNhY2hlLCBlbnN1cmUgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmVzdWx0IGZvciBmdXR1
cmUgdXNlLgogICAgIGlmICh3aWxsTG9hZEZhbGxiYWNrKQotICAgICAgICBtZW1vcnlDYWNoZSgp
LT5yZW1vdmUobV9tYWluUmVzb3VyY2UuZ2V0KCkpOworICAgICAgICBtZW1vcnlDYWNoZSgpLnJl
bW92ZShtX21haW5SZXNvdXJjZS5nZXQoKSk7CiAKICAgICBpZiAod2lsbExvYWRGYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
NTE5NDA4YjU3ZjYyNjEzMmE5YWUzMmJkNTA0NzU5OGQzYzVkMzdjOC4uZjZkODYxNGMwNjdjYTRk
YWYyZWNmNGRhMDc3YTcwYzNiZWNkN2M3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0zMzgzLDcgKzMzODMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50
QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qgc2l6ZSA9IHBhc3RMb2Fk
cy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHBhc3RMb2Fkc1tpXSwgbV9mcmFtZS5wYWdlKCktPnNlc3Npb25JRCgpKTsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJl
cXVlc3QocGFzdExvYWRzW2ldLCBtX2ZyYW1lLnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogCiAgICAg
ICAgIC8vIEZJWE1FOiBUaGVzZSBsb2FkcywgbG9hZGVkIGZyb20gY2FjaGUsIGJ1dCBub3cgZ29u
ZSBmcm9tIHRoZSBjYWNoZSBieSB0aGUgdGltZQogICAgICAgICAvLyBQYWdlOjpzZXRNZW1vcnlD
YWNoZUNsaWVudENhbGxzRW5hYmxlZCh0cnVlKSBpcyBjYWxsZWQsIHdpbGwgbm90IGJlIHNlZW4g
YnkgdGhlIGNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IGUxNWJkZmJjZDVmZDNhMmM1NDc2MTJlZmRiZTg0NmJmZDZkN2EwZWEuLjNlZjky
MzNmNWI2ZmZkNmU5M2M3YTFhMGNmZTc1NWRkMzY0NzljNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgU3Vi
cmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVl
c3QsIGNvbnN0IFJlc291CiAgICAgICAgIC8vIERvaW5nIHNvIHdvdWxkIGhhdmUgdXMgcmV1c2lu
ZyB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgZmlyc3QgcmVxdWVzdCBpZiB0aGUgc2Vjb25kIHJlcXVl
c3QncyByZXZhbGlkYXRpb24gc3VjY2VlZHMuCiAgICAgICAgIGlmIChuZXdSZXF1ZXN0LmlzQ29u
ZGl0aW9uYWwoKSAmJiBtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpICYmIG5ld1Jl
cXVlc3QudXJsKCkgIT0gbV9yZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKS0+cmVzcG9u
c2UoKS51cmwoKSkgewogICAgICAgICAgICAgbmV3UmVxdWVzdC5tYWtlVW5jb25kaXRpb25hbCgp
OwotICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmV2YWxpZGF0aW9uRmFpbGVkKG1fcmVzb3Vy
Y2UpOworICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS5yZXZhbGlkYXRpb25GYWlsZWQobV9yZXNv
dXJjZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghbV9kb2N1bWVudExvYWRl
ci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5jYW5SZXF1ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwg
bmV3UmVxdWVzdC51cmwoKSwgb3B0aW9ucygpKSkgewpAQCAtMjAyLDEzICsyMDIsMTMgQEAgdm9p
ZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogICAgICAgICAgICAgLy8gMzA0IE5vdCBtb2RpZmllZCAvIFVzZSBs
b2NhbCBjb3B5CiAgICAgICAgICAgICAvLyBFeGlzdGluZyByZXNvdXJjZSBpcyBvaywganVzdCB1
c2UgaXQgdXBkYXRpbmcgdGhlIGV4cGlyYXRpb24gdGltZS4KICAgICAgICAgICAgIG1fcmVzb3Vy
Y2UtPnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJl
dmFsaWRhdGlvblN1Y2NlZWRlZChtX3Jlc291cmNlLCByZXNwb25zZSk7CisgICAgICAgICAgICBt
ZW1vcnlDYWNoZSgpLnJldmFsaWRhdGlvblN1Y2NlZWRlZChtX3Jlc291cmNlLCByZXNwb25zZSk7
CiAgICAgICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCiAgICAgICAgICAgICAg
ICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLy8gRGlkIG5vdCBnZXQgMzA0IHJlc3Bv
bnNlLCBjb250aW51ZSBhcyBhIHJlZ3VsYXIgcmVzb3VyY2UgbG9hZC4KLSAgICAgICAgbWVtb3J5
Q2FjaGUoKS0+cmV2YWxpZGF0aW9uRmFpbGVkKG1fcmVzb3VyY2UpOworICAgICAgICBtZW1vcnlD
YWNoZSgpLnJldmFsaWRhdGlvbkZhaWxlZChtX3Jlc291cmNlKTsKICAgICB9CiAKICAgICBtX3Jl
c291cmNlLT5yZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKQEAgLTMyOCwxMCArMzI4LDEwIEBA
IHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHByb3RlY3RSZXNv
dXJjZShtX3Jlc291cmNlKTsKICAgICBtX3N0YXRlID0gRmluaXNoaW5nOwogICAgIGlmIChtX3Jl
c291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKQotICAgICAgICBtZW1vcnlDYWNoZSgpLT5y
ZXZhbGlkYXRpb25GYWlsZWQobV9yZXNvdXJjZSk7CisgICAgICAgIG1lbW9yeUNhY2hlKCkucmV2
YWxpZGF0aW9uRmFpbGVkKG1fcmVzb3VyY2UpOwogICAgIG1fcmVzb3VyY2UtPnNldFJlc291cmNl
RXJyb3IoZXJyb3IpOwogICAgIGlmICghbV9yZXNvdXJjZS0+aXNQcmVsb2FkZWQoKSkKLSAgICAg
ICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKG1fcmVzb3VyY2UpOworICAgICAgICBtZW1vcnlDYWNo
ZSgpLnJlbW92ZShtX3Jlc291cmNlKTsKICAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNoZWRSZXNv
dXJjZTo6TG9hZEVycm9yKTsKICAgICBjbGVhbnVwRm9yRXJyb3IoZXJyb3IpOwogICAgIG5vdGlm
eURvbmUoKTsKQEAgLTM2MSw5ICszNjEsOSBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjp3aWxs
Q2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIG1fc3RhdGUgPSBGaW5pc2hp
bmc7CiAjZW5kaWYKICAgICBpZiAobV9yZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSkK
LSAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmV2YWxpZGF0aW9uRmFpbGVkKG1fcmVzb3VyY2UpOwor
ICAgICAgICBtZW1vcnlDYWNoZSgpLnJldmFsaWRhdGlvbkZhaWxlZChtX3Jlc291cmNlKTsKICAg
ICBtX3Jlc291cmNlLT5zZXRSZXNvdXJjZUVycm9yKGVycm9yKTsKLSAgICBtZW1vcnlDYWNoZSgp
LT5yZW1vdmUobV9yZXNvdXJjZSk7CisgICAgbWVtb3J5Q2FjaGUoKS5yZW1vdmUobV9yZXNvdXJj
ZSk7CiB9CiAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZENhbmNlbChjb25zdCBSZXNvdXJj
ZUVycm9yJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xl
Z2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggNWM5NDA2OWJiZDI2YjNlNDcxOTRhNzQxZjhkNDY1YzFh
MTc2ODA5OS4uYWVjZjU2MjE5MDk2NTE4MmFlM2NkOGNiODU0MTcyMDUyMGJmM2QxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZS5jcHAKQEAgLTU0Nyw3ICs1NDcsNyBAQCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExl
Z2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXREb21h
aW5Gb3JDYWNoZVBhcnRpdGlvbihmcmFtZS0+ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmRvbWFp
bkZvckNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKKyAgICAgICAgICAgICAgICBD
YWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LCBmcmFtZS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChSZWZQ
dHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGNh
Y2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVz
b3VyY2UtPnJlc3BvbnNlKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXNvdXJj
ZXMuYXBwZW5kKFdURjo6bW92ZShyZXNvdXJjZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZGIyYWU5N2YyOTc4YTUwZmFiODhiMmZhZGVlODlj
ODU3MDZjMDc3OC4uMjBhOTg5NGE4NTI5ZWFmMGYxNzAyZDVmNzg5N2NlZDRiYzU5YmRlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zODEsNyAr
MzgxLDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJl
ZEJ1ZmZlciYgZGF0YSkKICAgICAgICAgLy8gSW1hZ2UgZGVjb2RpbmcgZmFpbGVkLiBFaXRoZXIg
d2UgbmVlZCBtb3JlIGltYWdlIGRhdGEgb3IgdGhlIGltYWdlIGRhdGEgaXMgbWFsZm9ybWVkLgog
ICAgICAgICBlcnJvcihlcnJvck9jY3VycmVkKCkgPyBzdGF0dXMoKSA6IERlY29kZUVycm9yKTsK
ICAgICAgICAgaWYgKGluQ2FjaGUoKSkKLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92
ZSh0aGlzKTsKKyAgICAgICAgICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlKHRoaXMpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6
ZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqIGRhdGEpCiAgICAgICAgIC8vIEltYWdlIGRlY29k
aW5nIGZhaWxlZDsgdGhlIGltYWdlIGRhdGEgaXMgbWFsZm9ybWVkLgogICAgICAgICBlcnJvcihl
cnJvck9jY3VycmVkKCkgPyBzdGF0dXMoKSA6IERlY29kZUVycm9yKTsKICAgICAgICAgaWYgKGlu
Q2FjaGUoKSkKLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZSh0aGlzKTsKKyAgICAg
ICAgICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlKHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApp
bmRleCA2MTczMDE3N2Q1MjZkMDg2ODFkMTEyNWE1OGY4ZTgzM2IwMDk4ODVjLi5kM2Y4ODZlOGMw
ZTUyMTJlN2E1YjlmNDdkZmVjNjE3ODlkMjU3Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFs
Rm9yUmVzb3VyY2VUeXBlKAogICAgIGlmICh0eXBlID09IENhY2hlZFJlc291cmNlOjpTY3JpcHQp
CiAgICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHsgMCB9OwogCi0gICAg
cmV0dXJuIG1lbW9yeUNhY2hlKCktPmRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoKTsK
KyAgICByZXR1cm4gbWVtb3J5Q2FjaGUoKS5kZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFs
KCk7CiB9CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChSZWZDb3VudGVkTGVha0NvdW50ZXIs
IGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIsICgiQ2FjaGVkUmVzb3VyY2UiKSk7CkBAIC0xNjIs
NyArMTYyLDcgQEAgQ2FjaGVkUmVzb3VyY2U6On5DYWNoZWRSZXNvdXJjZSgpCiAgICAgQVNTRVJU
KGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQoIWluQ2FjaGUoKSk7CiAgICAgQVNTRVJUKCFtX2Rl
bGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNv
dXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlzKTsK
KyAgICBBU1NFUlQodXJsKCkuaXNOdWxsKCkgfHwgbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJl
cXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlzKTsKIAogI2lmbmRl
ZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OmZhaWxCZWZvcmVTdGFydGluZygpCiAgICAgLy8gRklYTUU6IFdoYXQg
aWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMgcmV2YWxp
ZGF0aW9uPwogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYW5ub3Qgc3RhcnQgbG9hZGluZyAn
JXMnIiwgdXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKICAgICBpZiAobV9yZXNvdXJj
ZVRvUmV2YWxpZGF0ZSkgCi0gICAgICAgIG1lbW9yeUNhY2hlKCktPnJldmFsaWRhdGlvbkZhaWxl
ZCh0aGlzKTsgCisgICAgICAgIG1lbW9yeUNhY2hlKCkucmV2YWxpZGF0aW9uRmFpbGVkKHRoaXMp
OyAKICAgICBlcnJvcihDYWNoZWRSZXNvdXJjZTo6TG9hZEVycm9yKTsKIH0KIApAQCAtNDE1LDcg
KzQxNSw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2U6OmFkZENsaWVudFRvU2V0KENhY2hlZFJlc291
cmNlQ2xpZW50KiBjbGllbnQpCiAgICAgICAgICAgICBtX3ByZWxvYWRSZXN1bHQgPSBQcmVsb2Fk
UmVmZXJlbmNlZDsKICAgICB9CiAgICAgaWYgKCFoYXNDbGllbnRzKCkgJiYgaW5DYWNoZSgpKQot
ICAgICAgICBtZW1vcnlDYWNoZSgpLT5hZGRUb0xpdmVSZXNvdXJjZXNTaXplKHRoaXMpOworICAg
ICAgICBtZW1vcnlDYWNoZSgpLmFkZFRvTGl2ZVJlc291cmNlc1NpemUodGhpcyk7CiAKICAgICBp
ZiAoKG1fdHlwZSA9PSBSYXdSZXNvdXJjZSB8fCBtX3R5cGUgPT0gTWFpblJlc291cmNlKSAmJiAh
bV9yZXNwb25zZS5pc051bGwoKSAmJiAhbV9wcm94eVJlc291cmNlKSB7CiAgICAgICAgIC8vIENl
cnRhaW4gcmVzb3VyY2VzIChlc3BlY2lhbGx5IFhIUnMgYW5kIG1haW4gcmVzb3VyY2VzKSBkbyBj
cmF6eSB0aGluZ3MgaWYgYW4gYXN5bmNocm9ub3VzIGxvYWQgcmV0dXJucwpAQCAtNDQ3LDggKzQ0
Nyw4IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnJlbW92ZUNsaWVudChDYWNoZWRSZXNvdXJjZUNs
aWVudCogY2xpZW50KQogICAgIGJvb2wgZGVsZXRlZCA9IGRlbGV0ZUlmUG9zc2libGUoKTsKICAg
ICBpZiAoIWRlbGV0ZWQgJiYgIWhhc0NsaWVudHMoKSkgewogICAgICAgICBpZiAoaW5DYWNoZSgp
KSB7Ci0gICAgICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmVGcm9tTGl2ZVJlc291cmNlc1Np
emUodGhpcyk7Ci0gICAgICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmVGcm9tTGl2ZURlY29k
ZWRSZXNvdXJjZXNMaXN0KHRoaXMpOworICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS5yZW1vdmVG
cm9tTGl2ZVJlc291cmNlc1NpemUodGhpcyk7CisgICAgICAgICAgICBtZW1vcnlDYWNoZSgpLnJl
bW92ZUZyb21MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QodGhpcyk7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKCFtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UpCiAgICAgICAg
ICAgICBhbGxDbGllbnRzUmVtb3ZlZCgpOwpAQCAtNDU4LDkgKzQ1OCw5IEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2U6OnJlbW92ZUNsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogY2xpZW50KQogICAg
ICAgICAgICAgLy8gIm5vLXN0b3JlOiAuLi4gTVVTVCBtYWtlIGEgYmVzdC1lZmZvcnQgYXR0ZW1w
dCB0byByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gdm9sYXRpbGUgc3RvcmFnZSBhcyBwcm9t
cHRseSBhcyBwb3NzaWJsZSIKICAgICAgICAgICAgIC8vICIuLi4gSGlzdG9yeSBidWZmZXJzIE1B
WSBzdG9yZSBzdWNoIHJlc3BvbnNlcyBhcyBwYXJ0IG9mIHRoZWlyIG5vcm1hbCBvcGVyYXRpb24u
IgogICAgICAgICAgICAgLy8gV2UgYWxsb3cgbm9uLXNlY3VyZSBjb250ZW50IHRvIGJlIHJldXNl
ZCBpbiBoaXN0b3J5LCBidXQgd2UgZG8gbm90IGFsbG93IHNlY3VyZSBjb250ZW50IHRvIGJlIHJl
dXNlZC4KLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZSh0aGlzKTsKKyAgICAgICAg
ICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlKHRoaXMpOwogICAgICAgICB9Ci0gICAgICAgIG1lbW9y
eUNhY2hlKCktPnBydW5lKCk7CisgICAgICAgIG1lbW9yeUNhY2hlKCkucHJ1bmUoKTsKICAgICB9
CiAgICAgLy8gVGhpcyBvYmplY3QgbWF5IGJlIGRlYWQgaGVyZS4KIH0KQEAgLTQ2OSw3ICs0Njks
NyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lZWRlZCgpCiB7
CiAgICAgaWYgKCFtX2RlY29kZWRTaXplKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFtZW1v
cnlDYWNoZSgpLT5kZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKCkuY291bnQoKSkKKyAg
ICBpZiAoIW1lbW9yeUNhY2hlKCkuZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCgpLmNv
dW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lci5y
ZXN0YXJ0KCk7CiB9CkBAIC00OTksMTMgKzQ5OSwxMyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpz
ZXREZWNvZGVkU2l6ZSh1bnNpZ25lZCBzaXplKQogICAgIC8vIFRoZSBvYmplY3QgbXVzdCBiZSBt
b3ZlZCB0byBhIGRpZmZlcmVudCBxdWV1ZSwgc2luY2UgaXRzIHNpemUgaGFzIGJlZW4gY2hhbmdl
ZC4KICAgICAvLyBSZW1vdmUgYmVmb3JlIHVwZGF0aW5nIG1fZGVjb2RlZFNpemUsIHNvIHdlIGZp
bmQgdGhlIHJlc291cmNlIGluIHRoZSBjb3JyZWN0IExSVSBsaXN0LgogICAgIGlmIChpbkNhY2hl
KCkpCi0gICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZUZyb21MUlVMaXN0KHRoaXMpOworICAg
ICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZUZyb21MUlVMaXN0KHRoaXMpOwogICAgIAogICAgIG1f
ZGVjb2RlZFNpemUgPSBzaXplOwogICAgCiAgICAgaWYgKGluQ2FjaGUoKSkgeyAKICAgICAgICAg
Ly8gTm93IGluc2VydCBpbnRvIHRoZSBuZXcgTFJVIGxpc3QuCi0gICAgICAgIG1lbW9yeUNhY2hl
KCktPmluc2VydEluTFJVTGlzdCh0aGlzKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS5pbnNlcnRJ
bkxSVUxpc3QodGhpcyk7CiAgICAgICAgIAogICAgICAgICAvLyBJbnNlcnQgaW50byBvciByZW1v
dmUgZnJvbSB0aGUgbGl2ZSBkZWNvZGVkIGxpc3QgaWYgbmVjZXNzYXJ5LgogICAgICAgICAvLyBX
aGVuIGluc2VydGluZyBpbnRvIHRoZSBMaXZlRGVjb2RlZFJlc291cmNlc0xpc3QgaXQgaXMgcG9z
c2libGUKQEAgLTUxNSwxMiArNTE1LDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldERlY29k
ZWRTaXplKHVuc2lnbmVkIHNpemUpCiAgICAgICAgIC8vIGJ5IGFjY2VzcyB0aW1lLiBUaGUgd2Vh
a2VuaW5nIG9mIHRoZSBpbnZhcmlhbnQgZG9lcyBub3QgcG9zZQogICAgICAgICAvLyBhIHByb2Js
ZW0uIEZvciBtb3JlIGRldGFpbHMgcGxlYXNlIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMwMjA5CiAgICAgICAgIGlmIChtX2RlY29kZWRTaXplICYmICFtX2lu
TGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0ICYmIGhhc0NsaWVudHMoKSkKLSAgICAgICAgICAgIG1l
bW9yeUNhY2hlKCktPmluc2VydEluTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0KHRoaXMpOworICAg
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS5pbnNlcnRJbkxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdCh0
aGlzKTsKICAgICAgICAgZWxzZSBpZiAoIW1fZGVjb2RlZFNpemUgJiYgbV9pbkxpdmVEZWNvZGVk
UmVzb3VyY2VzTGlzdCkKLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZUZyb21MaXZl
RGVjb2RlZFJlc291cmNlc0xpc3QodGhpcyk7CisgICAgICAgICAgICBtZW1vcnlDYWNoZSgpLnJl
bW92ZUZyb21MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QodGhpcyk7CiAKICAgICAgICAgLy8gVXBk
YXRlIHRoZSBjYWNoZSdzIHNpemUgdG90YWxzLgotICAgICAgICBtZW1vcnlDYWNoZSgpLT5hZGp1
c3RTaXplKGhhc0NsaWVudHMoKSwgZGVsdGEpOworICAgICAgICBtZW1vcnlDYWNoZSgpLmFkanVz
dFNpemUoaGFzQ2xpZW50cygpLCBkZWx0YSk7CiAgICAgfQogfQogCkBAIC01MzQsMTMgKzUzNCwx
MyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpzZXRFbmNvZGVkU2l6ZSh1bnNpZ25lZCBzaXplKQog
ICAgIC8vIFRoZSBvYmplY3QgbXVzdCBiZSBtb3ZlZCB0byBhIGRpZmZlcmVudCBxdWV1ZSwgc2lu
Y2UgaXRzIHNpemUgaGFzIGJlZW4gY2hhbmdlZC4KICAgICAvLyBSZW1vdmUgYmVmb3JlIHVwZGF0
aW5nIG1fZW5jb2RlZFNpemUsIHNvIHdlIGZpbmQgdGhlIHJlc291cmNlIGluIHRoZSBjb3JyZWN0
IExSVSBsaXN0LgogICAgIGlmIChpbkNhY2hlKCkpCi0gICAgICAgIG1lbW9yeUNhY2hlKCktPnJl
bW92ZUZyb21MUlVMaXN0KHRoaXMpOworICAgICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZUZyb21M
UlVMaXN0KHRoaXMpOwogCiAgICAgbV9lbmNvZGVkU2l6ZSA9IHNpemU7CiAKICAgICBpZiAoaW5D
YWNoZSgpKSB7IAotICAgICAgICBtZW1vcnlDYWNoZSgpLT5pbnNlcnRJbkxSVUxpc3QodGhpcyk7
Ci0gICAgICAgIG1lbW9yeUNhY2hlKCktPmFkanVzdFNpemUoaGFzQ2xpZW50cygpLCBkZWx0YSk7
CisgICAgICAgIG1lbW9yeUNhY2hlKCkuaW5zZXJ0SW5MUlVMaXN0KHRoaXMpOworICAgICAgICBt
ZW1vcnlDYWNoZSgpLmFkanVzdFNpemUoaGFzQ2xpZW50cygpLCBkZWx0YSk7CiAgICAgfQogfQog
CkBAIC01NTAsMTAgKzU1MCwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpkaWRBY2Nlc3NEZWNv
ZGVkRGF0YShkb3VibGUgdGltZVN0YW1wKQogICAgIAogICAgIGlmIChpbkNhY2hlKCkpIHsKICAg
ICAgICAgaWYgKG1faW5MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QpIHsKLSAgICAgICAgICAgIG1l
bW9yeUNhY2hlKCktPnJlbW92ZUZyb21MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QodGhpcyk7Ci0g
ICAgICAgICAgICBtZW1vcnlDYWNoZSgpLT5pbnNlcnRJbkxpdmVEZWNvZGVkUmVzb3VyY2VzTGlz
dCh0aGlzKTsKKyAgICAgICAgICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlRnJvbUxpdmVEZWNvZGVk
UmVzb3VyY2VzTGlzdCh0aGlzKTsKKyAgICAgICAgICAgIG1lbW9yeUNhY2hlKCkuaW5zZXJ0SW5M
aXZlRGVjb2RlZFJlc291cmNlc0xpc3QodGhpcyk7CiAgICAgICAgIH0KLSAgICAgICAgbWVtb3J5
Q2FjaGUoKS0+cHJ1bmUoKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS5wcnVuZSgpOwogICAgIH0K
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDM0ODhkZTQ3NWZkZmMwODFiNWFjOTQ4MDRhZmYzN2FlMGEx
NTJmMGQuLjQwNTkwMmMwMWY3ODZjZTlmODZhYmRhZDc5NTZiMWFhOGVkMzY0OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cApAQCAtMjExLDE3ICsyMTEsMTcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5
bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICAgICByZXF1
ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihk
b2N1bWVudCgpLT50b3BPcmlnaW4oKS0+ZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5k
aWYKIAotICAgIGlmIChDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5y
ZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lvbklEKCkp
KSB7CisgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCkucmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSkg
ewogICAgICAgICBpZiAoaXM8Q2FjaGVkQ1NTU3R5bGVTaGVldD4oKmV4aXN0aW5nKSkKICAgICAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0PihleGlzdGluZyk7Ci0g
ICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShleGlzdGluZyk7CisgICAgICAgIG1lbW9yeUNh
Y2hlKCkucmVtb3ZlKGV4aXN0aW5nKTsKICAgICB9CiAgICAgaWYgKHVybC5zdHJpbmcoKSAhPSBy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQogICAgICAgICByZXF1ZXN0Lm11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpLCBzZXNzaW9uSUQo
KSk7CiAKLSAgICBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsKKyAgICBtZW1v
cnlDYWNoZSgpLmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3Vy
Y2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2Ug
Y291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNh
bGwgaXQsIHRvbz8KIAogICAgIHVzZXJTaGVldC0+bG9hZCh0aGlzLCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMoRG9Ob3RTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckFsbENyZWRlbnRpYWxzLCBTa2lwU2VjdXJp
dHlDaGVjaywgVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGUsIERvTm90SW5jbHVk
ZUNlcnRpZmljYXRlSW5mbykpOwpAQCAtNDU1LDcgKzQ1NSw3IEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
KENhY2hlCiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKICAgICAgICAgZi0+bG9hZGVyKCku
Y2xpZW50KCkuZGlzcGF0Y2hXaWxsUmVxdWVzdFJlc291cmNlKCZyZXF1ZXN0KTsKIAotICAgIGlm
IChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CisgICAgaWYgKG1lbW9yeUNhY2hlKCkuZGlz
YWJsZWQoKSkgewogICAgICAgICBEb2N1bWVudFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9IG1f
ZG9jdW1lbnRSZXNvdXJjZXMuZmluZCh1cmwuc3RyaW5nKCkpOwogICAgICAgICBpZiAoaXQgIT0g
bV9kb2N1bWVudFJlc291cmNlcy5lbmQoKSkgewogICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRP
d25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcigwKTsKQEAgLTQ3MCwxMiArNDcwLDEyIEBAIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpLnNldERvbWFpbkZvckNhY2hlUGFydGl0aW9uKGRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5k
b21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgogCi0gICAgcmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
c2Vzc2lvbklEKCkpOworICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJl
cXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lvbklEKCkpOwogCiAgICAgY29u
c3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGlj
eSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5mb3JQcmVs
b2FkKCksIHJlc291cmNlLmdldCgpLCByZXF1ZXN0LmRlZmVyKCkpOwogICAgIHN3aXRjaCAocG9s
aWN5KSB7CiAgICAgY2FzZSBSZWxvYWQ6Ci0gICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShy
ZXNvdXJjZS5nZXQoKSk7CisgICAgICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlKHJlc291cmNlLmdl
dCgpKTsKICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBMb2FkOgogICAgICAgICByZXNv
dXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0KTsKQEAgLTQ4Niw3ICs0ODYsNyBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIGNhc2UgVXNlOgogICAgICAgICBpZiAoIXNob3Vs
ZENvbnRpbnVlQWZ0ZXJOb3RpZnlpbmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUocmVxdWVzdCwgcmVz
b3VyY2UuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIG1lbW9yeUNhY2hl
KCktPnJlc291cmNlQWNjZXNzZWQocmVzb3VyY2UuZ2V0KCkpOworICAgICAgICBtZW1vcnlDYWNo
ZSgpLnJlc291cmNlQWNjZXNzZWQocmVzb3VyY2UuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAg
ICB9CiAKQEAgLTUwMiw3ICs1MDIsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAg
ICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1cHBvcnQg
aW1tZWRpYXRlIGZhaWx1cmUuCiAgICAgICAgIGlmIChyZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgp
KSB7CiAgICAgICAgICAgICBpZiAocmVzb3VyY2UtPmluQ2FjaGUoKSkKLSAgICAgICAgICAgICAg
ICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUocmVzb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgICAg
IG1lbW9yeUNhY2hlKCkucmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAgICAgfQpAQCAtNTI0LDcgKzUyNCw3IEBAIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJl
c291cmNlKGNvCiB7CiAgICAgQVNTRVJUKHJlc291cmNlKTsKICAgICBBU1NFUlQocmVzb3VyY2Ut
PmluQ2FjaGUoKSk7Ci0gICAgQVNTRVJUKCFtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKTsKKyAg
ICBBU1NFUlQoIW1lbW9yeUNhY2hlKCkuZGlzYWJsZWQoKSk7CiAgICAgQVNTRVJUKHJlc291cmNl
LT5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKTsKICAgICBBU1NFUlQoIXJlc291cmNlLT5yZXNvdXJj
ZVRvUmV2YWxpZGF0ZSgpKTsKICAgICBBU1NFUlQocmVzb3VyY2UtPnNlc3Npb25JRCgpID09IHNl
c3Npb25JRCgpKTsKQEAgLTUzNiw4ICs1MzYsOCBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShjbwog
ICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJSZXNvdXJjZSAlcCBjcmVhdGVkIHRvIHJldmFsaWRh
dGUgJXAiLCBuZXdSZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2UpOwogICAgIG5ld1Jlc291cmNlLT5z
ZXRSZXNvdXJjZVRvUmV2YWxpZGF0ZShyZXNvdXJjZSk7CiAgICAgCi0gICAgbWVtb3J5Q2FjaGUo
KS0+cmVtb3ZlKHJlc291cmNlKTsKLSAgICBtZW1vcnlDYWNoZSgpLT5hZGQobmV3UmVzb3VyY2Uu
Z2V0KCkpOworICAgIG1lbW9yeUNhY2hlKCkucmVtb3ZlKHJlc291cmNlKTsKKyAgICBtZW1vcnlD
YWNoZSgpLmFkZChuZXdSZXNvdXJjZS5nZXQoKSk7CiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlO
RykKICAgICBzdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24ocmVzb3VyY2Us
IHJlcXVlc3QpOwogI2Vsc2UKQEAgLTU0OCwxMyArNTQ4LDEzIEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291
cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hl
ZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCkt
PnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQo
KSkpOworICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lvbklEKCkpKTsKIAogICAgIExPRyhSZXNvdXJjZUxv
YWRpbmcsICJMb2FkaW5nIENhY2hlZFJlc291cmNlIGZvciAnJXMnLiIsIHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4x
KCkuZGF0YSgpKTsKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBy
ZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSwgc2Vzc2lvbklEKCkpOwogCi0gICAgaWYgKCFtZW1v
cnlDYWNoZSgpLT5hZGQocmVzb3VyY2UuZ2V0KCkpKQorICAgIGlmICghbWVtb3J5Q2FjaGUoKS5h
ZGQocmVzb3VyY2UuZ2V0KCkpKQogICAgICAgICByZXNvdXJjZS0+c2V0T3duaW5nQ2FjaGVkUmVz
b3VyY2VMb2FkZXIodGhpcyk7CiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKICAgICBzdG9y
ZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24ocmVzb3VyY2UsIHJlcXVlc3QpOwpA
QCAtOTQxLDcgKzk0MSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNsZWFyUHJlbG9h
ZHMoKQogICAgICAgICByZXMtPmRlY3JlYXNlUHJlbG9hZENvdW50KCk7CiAgICAgICAgIGJvb2wg
ZGVsZXRlZCA9IHJlcy0+ZGVsZXRlSWZQb3NzaWJsZSgpOwogICAgICAgICBpZiAoIWRlbGV0ZWQg
JiYgcmVzLT5wcmVsb2FkUmVzdWx0KCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlByZWxvYWROb3RSZWZl
cmVuY2VkKQotICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlcyk7CisgICAgICAg
ICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZShyZXMpOwogICAgIH0KICAgICBtX3ByZWxvYWRzID0g
bnVsbHB0cjsKIH0KQEAgLTk4NSw3ICs5ODUsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVy
OjpwcmludFByZWxvYWRTdGF0cygpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChy
ZXMtPmVycm9yT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShy
ZXMpOworICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS5yZW1vdmUocmVzKTsKICAgICAgICAgCiAg
ICAgICAgIHJlcy0+ZGVjcmVhc2VQcmVsb2FkQ291bnQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2MWFmMmZmZDc0YmU5NjRhYTQw
ZTZjYjc2MGZlOTk1NWQ5NDQzNjVkLi4yZDM4MDRkOTkxNTJhODQxZGVmMjc3YjdiNzA2NGNiMmNl
ZmVhZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAK
QEAgLTU1LDEyICs1NSwxMyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIGNNaW5EZWxheUJlZm9yZUxp
dmVEZWNvZGVkUHJ1bmUgPSAxOyAvLyBTZWNvbmRzLgogc3RhdGljIGNvbnN0IGZsb2F0IGNUYXJn
ZXRQcnVuZVBlcmNlbnRhZ2UgPSAuOTVmOyAvLyBQZXJjZW50YWdlIG9mIGNhcGFjaXR5IHRvd2Fy
ZCB3aGljaCB3ZSBwcnVuZSwgdG8gYXZvaWQgaW1tZWRpYXRlbHkgcHJ1bmluZyBhZ2Fpbi4KIHN0
YXRpYyBjb25zdCBhdXRvIGRlZmF1bHREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSBzdGQ6
OmNocm9ubzo6c2Vjb25kcyB7IDAgfTsKIAotTWVtb3J5Q2FjaGUqIG1lbW9yeUNhY2hlKCkKK01l
bW9yeUNhY2hlJiBtZW1vcnlDYWNoZSgpCiB7Ci0gICAgc3RhdGljIE1lbW9yeUNhY2hlKiBzdGF0
aWNDYWNoZSA9IG5ldyBNZW1vcnlDYWNoZTsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQo
KSk7CiAKLSAgICByZXR1cm4gc3RhdGljQ2FjaGU7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PE1lbW9yeUNhY2hlPiBtZW1vcnlDYWNoZTsKKworICAgIHJldHVybiBtZW1vcnlDYWNoZTsKIH0K
IAogTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKQEAgLTc2Niw4ICs3NjcsOCBAQCB2b2lkIE1l
bW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJl
cXVlc3QsIHNlc3Npb25JRCkpCi0gICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJj
ZSk7CisgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCkucmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCisgICAgICAgIG1lbW9yeUNhY2hl
KCkucmVtb3ZlKHJlc291cmNlKTsKIH0KIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVz
dEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTc4Miw5ICs3ODMsOSBAQCB2b2lkIE1lbW9y
eUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBy
ZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLT5tX3Nlc3Npb25SZXNvdXJjZXMpIHsKLSAgICAgICAg
aWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdEltcGwocmVxdWVzdCwgKnJlc291cmNlcy52YWx1ZSkpCi0gICAgICAgIG1lbW9yeUNh
Y2hlKCktPnJlbW92ZShyZXNvdXJjZSk7CisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1v
cnlDYWNoZSgpLm1fc2Vzc2lvblJlc291cmNlcykgeworICAgICAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJlcXVlc3RJbXBsKHJlcXVl
c3QsICpyZXNvdXJjZXMudmFsdWUpKQorICAgICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZShyZXNv
dXJjZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oCmluZGV4IDFiYmFkMWY0Mjg3YTQzNTBlZjBmZTk5NWQzYzIwZTFjYzNiMzZkZWIuLmEyMGNj
M2M1YmFjOTI3NzAyYWM5ZDExZWU4NTgzNzk3Y2RjMzA4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTmF0
aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRl
ICJTZXNzaW9uSURIYXNoLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CkBAIC02NCw3ICs2NSw3IEBAIHN0cnVjdCBTZWN1cml0eU9yaWdpbkhhc2g7
CiBjbGFzcyBNZW1vcnlDYWNoZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVtb3J5Q2Fj
aGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBmcmllbmQgTWVtb3J5
Q2FjaGUqIG1lbW9yeUNhY2hlKCk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPE1lbW9yeUNh
Y2hlPjsKIAogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBDYWNoZWRSZXNvdXJjZUl0ZW07CkBAIC0yMzMs
NyArMjM0LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8vIEZ1bmN0aW9uIHRvIG9idGFpbiB0aGUgZ2xv
YmFsIGNhY2hlLgotV0VCQ09SRV9FWFBPUlQgTWVtb3J5Q2FjaGUqIG1lbW9yeUNhY2hlKCk7CitX
RUJDT1JFX0VYUE9SVCBNZW1vcnlDYWNoZSYgbWVtb3J5Q2FjaGUoKTsKIAogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQpp
bmRleCAyMTI2MTllOWQxMTE1YjQ5ODdmMjA1NzBhODM5Yjg1ZGE0NTRlYjI2Li40NzIxZjAwNjVl
N2M1OTE0YWZlODUwYmQ1YTE5MmU2MGVjMWY1NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KQEAgLTExNCw3ICsxMTQs
NyBAQCBEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlcwogCiB2b2lkIERpc2tDYWNoZU1vbml0b3I6OnJl
c291cmNlQmVjYW1lRmlsZUJhY2tlZChTaGFyZWRCdWZmZXImIGZpbGVCYWNrZWRCdWZmZXIpCiB7
Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KG1fcmVzb3VyY2VSZXF1ZXN0LCBtX3Nlc3Npb25JRCk7CisgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJlcXVlc3QobV9yZXNv
dXJjZVJlcXVlc3QsIG1fc2Vzc2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4ODM2OTI5YjgwZjUzNGUy
OWFkNzQ2ZWMzMDhiNDI3NzhiYWQzMWI0Li40YTZjZGI3YTA2MmI4YTg5YmJjMWFlMDQyMDBkZWU0
OTU0ZjU3MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNzM2LDcgKzM3MzYs
NyBAQCB2b2lkIEZyYW1lVmlldzo6d2lsbFBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eQogCiAgICAgICAgIC8vIFRvIGF2b2lkIHVubmVj
ZXNzYXJ5IGltYWdlIGRlY29kaW5nLCB3ZSBkb24ndCBwcnVuZSByZWNlbnRseS1kZWNvZGVkIGxp
dmUgcmVzb3VyY2VzIGhlcmUgc2luY2UKICAgICAgICAgLy8gd2UgbWlnaHQgbmVlZCBzb21lIGxp
dmUgYml0bWFwcyBvbiBwYWludGluZy4KLSAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cHJ1bmUoKTsK
KyAgICAgICAgbWVtb3J5Q2FjaGUoKS5wcnVuZSgpOwogICAgIH0KIAogICAgIGlmIChwYWludGlu
Z1N0YXRlLmlzVG9wTGV2ZWxQYWludGVyKQpAQCAtMzc3Niw3ICszNzc2LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OmRpZFBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVIKICAgICAvLyBQYWludGluZyBjYW4gbGVhZCB0byBkZWNvZGluZyBvZiBs
YXJnZSBhbW91bnRzIG9mIGJpdG1hcHMKICAgICAvLyBJZiB3ZSBhcmUgbG93IG9uIG1lbW9yeSwg
d2lwZSB0aGVtIG91dCBhZnRlciB0aGUgcGFpbnQuCiAgICAgaWYgKHBhaW50aW5nU3RhdGUuaXNU
b3BMZXZlbFBhaW50ZXIgJiYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkpCi0gICAgICAgIG1lbW9yeUNhY2hlKCktPnBydW5lTGl2ZVJlc291cmNlcyh0cnVl
KTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS5wcnVuZUxpdmVSZXNvdXJjZXModHJ1ZSk7CiAKICAg
ICAvLyBSZWdpb25zIG1heSBoYXZlIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgdGhlIHZpc2liaWxp
dHkvei1pbmRleCBvZiBlbGVtZW50IGNoYW5naW5nLgogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJl
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwCmluZGV4IGQ4OTFmOTIzNDE3ZTJkYzQzOGYzNTcwMmQ2OTVjYTQyNmU2MTBiYmEuLjEy
ZjkxMTM2YWM4NGM4MzQyNmYxYzRjNDNmNmYwM2VhN2U0MDJiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMTAzLDcgKzEw
Myw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnko
KQogCiAgICAgewogICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQcnVuZSBNZW1vcnlDYWNoZSIp
OwotICAgICAgICBtZW1vcnlDYWNoZSgpLT5wcnVuZVRvUGVyY2VudGFnZSgwKTsKKyAgICAgICAg
bWVtb3J5Q2FjaGUoKS5wcnVuZVRvUGVyY2VudGFnZSgwKTsKICAgICB9CiAKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYmE5ZTEwYmI2ZGJjNmRmMGM0NDdlNDZm
NzEwNjhjMTcxNzgzM2YwZC4uNTdiOTVlNTNmMWVmYjAyODYxODM5ODE5NjkxYzhhOWQ2YjhhYzlk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBA
IGJvb2wgSW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUoY29uc3QgU3RyaW5nJiB1
cmwpCiB7CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3VtZW50KCkt
PnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVudCgpLT5j
b21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7
CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZv
clVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSwgY29udGV4dERvY3VtZW50
KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIHJldHVybiByZXNvdXJjZSAmJiByZXNvdXJj
ZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ2FjaGUubW0KaW5kZXggMDIyMWM5OGU3NjU3MDk2NjM5Mjk4NTg5MTk5ZjdiYTY0ZTg0
YmNjNC4uYmFlZTNkMDc1NzBiYjNkM2RjMWVkYjc4ZTMyMmM4MDhlODAyNTcxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC02NSw3ICs2NSw3IEBACiAKICsgKE5TQXJyYXkgKilz
dGF0aXN0aWNzCiB7Ci0gICAgV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OlN0YXRpc3RpY3MgcyA9IFdl
YkNvcmU6Om1lbW9yeUNhY2hlKCktPmdldFN0YXRpc3RpY3MoKTsKKyAgICBXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6U3RhdGlzdGljcyBzID0gV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS5nZXRTdGF0aXN0
aWNzKCk7CiAKICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czoKICAgICAgICAg
W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgpAQCAtMTQwLDEzICsx
NDAsMTMgQEAKICAgICAgICAgW1dlYlZpZXcgX3NldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERv
Y3VtZW50Vmlld2VyXTsKICAgICAgICAgW1dlYlZpZXcgX3NldENhY2hlTW9kZWw6Y2FjaGVNb2Rl
bF07CiAKLSAgICAgICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+cHJ1bmVMaXZlUmVzb3VyY2Vz
KHRydWUpOworICAgICAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLnBydW5lTGl2ZVJlc291cmNl
cyh0cnVlKTsKICAgICB9KTsKIH0KIAogKyAodm9pZClzaXplT2ZEZWFkUmVzb3VyY2VzOihpbnQg
KilyZXNvdXJjZXMKIHsKLSAgICBXZWJDb3JlOjpNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBzdGF0
cyA9IFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPmdldFN0YXRpc3RpY3MoKTsKKyAgICBXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBzdGF0cyA9IFdlYkNvcmU6Om1lbW9yeUNhY2hlKCku
Z2V0U3RhdGlzdGljcygpOwogICAgIGlmIChyZXNvdXJjZXMpIHsKICAgICAgICAgKnJlc291cmNl
cyA9IChzdGF0cy5pbWFnZXMuc2l6ZSAtIHN0YXRzLmltYWdlcy5saXZlU2l6ZSkKICAgICAgICAg
ICAgICAgICAgICAgICsgKHN0YXRzLmNzc1N0eWxlU2hlZXRzLnNpemUgLSBzdGF0cy5jc3NTdHls
ZVNoZWV0cy5saXZlU2l6ZSkKQEAgLTE3Niw3ICsxNzYsNyBAQAogICAgIGlmIChmcmFtZSkKICAg
ICAgICAgdG9wT3JpZ2luID0gY29yZShmcmFtZSktPmRvY3VtZW50KCktPnRvcE9yaWdpbigpOwog
I2VuZGlmCi0gICAgcmV0dXJuIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPmFkZEltYWdlVG9DYWNo
ZShpbWFnZSwgdXJsLCB0b3BPcmlnaW4gPyB0b3BPcmlnaW4tPmRvbWFpbkZvckNhY2hlUGFydGl0
aW9uKCkgOiBlbXB0eVN0cmluZygpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6bWVtb3J5Q2FjaGUo
KS5hZGRJbWFnZVRvQ2FjaGUoaW1hZ2UsIHVybCwgdG9wT3JpZ2luID8gdG9wT3JpZ2luLT5kb21h
aW5Gb3JDYWNoZVBhcnRpdGlvbigpIDogZW1wdHlTdHJpbmcoKSk7CiB9CiAKICsgKHZvaWQpcmVt
b3ZlSW1hZ2VGcm9tQ2FjaGVGb3JVUkw6KE5TVVJMICopdXJsCkBAIC0xOTMsNyArMTkzLDcgQEAK
ICAgICBpZiAoZnJhbWUpCiAgICAgICAgIHRvcE9yaWdpbiA9IGNvcmUoZnJhbWUpLT5kb2N1bWVu
dCgpLT50b3BPcmlnaW4oKTsKICNlbmRpZgotICAgIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPnJl
bW92ZUltYWdlRnJvbUNhY2hlKHVybCwgdG9wT3JpZ2luID8gdG9wT3JpZ2luLT5kb21haW5Gb3JD
YWNoZVBhcnRpdGlvbigpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgV2ViQ29yZTo6bWVtb3J5Q2Fj
aGUoKS5yZW1vdmVJbWFnZUZyb21DYWNoZSh1cmwsIHRvcE9yaWdpbiA/IHRvcE9yaWdpbi0+ZG9t
YWluRm9yQ2FjaGVQYXJ0aXRpb24oKSA6IGVtcHR5U3RyaW5nKCkpOwogfQogCiArIChDR0ltYWdl
UmVmKWltYWdlRm9yVVJMOihOU1VSTCAqKXVybApAQCAtMjAxLDcgKzIwMSw3IEBACiAgICAgaWYg
KCF1cmwpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPnJlc291
cmNlRm9yVVJMKHVybCk7CisgICAgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291
cmNlID0gV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclVSTCh1cmwpOwogICAgIGlm
ICghaXM8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KGNhY2hlZFJlc291cmNlKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlID0gZG93
bmNhc3Q8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KCpjYWNoZWRSZXNvdXJjZSk7CkBAIC0yMTcsMTIg
KzIxNywxMiBAQAogICAgIGlmICghcHRocmVhZF9tYWluX25wKCkpCiAgICAgICAgIHJldHVybiBb
W3NlbGYgX3dlYmtpdF9pbnZva2VPbk1haW5UaHJlYWRdIHNldERpc2FibGVkOmRpc2FibGVkXTsK
IAotICAgIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPnNldERpc2FibGVkKGRpc2FibGVkKTsKKyAg
ICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLnNldERpc2FibGVkKGRpc2FibGVkKTsKIH0KIAogKyAo
Qk9PTClpc0Rpc2FibGVkCiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPmRp
c2FibGVkKCk7CisgICAgcmV0dXJuIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCkuZGlzYWJsZWQoKTsK
IH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE3OWZiNmIx
MGMyNDA3M2MwZDg2OTc5NDYxNjI3MDhlMTBlMDYxOTcuLjI5MGMxMTFjYmU3MWQ4ZTNiZjRlZDBi
ZTlkOTExNzdiMGZiNWRlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTc5MDAsOCArNzkwMCw4IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3Qgcm91bmRVcFRvUG93ZXJP
ZjIodWludDY0X3QgbnVtKQogICAgIC8vIERvbid0IHNocmluayBhIGJpZyBkaXNrIGNhY2hlLCBz
aW5jZSB0aGF0IHdvdWxkIGNhdXNlIGNodXJuLgogICAgIG5zdXJsQ2FjaGVEaXNrQ2FwYWNpdHkg
PSBzdGQ6Om1heChuc3VybENhY2hlRGlza0NhcGFjaXR5LCBbbnN1cmxDYWNoZSBkaXNrQ2FwYWNp
dHldKTsKIAotICAgIG1lbW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2Fw
YWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwotICAgIG1l
bW9yeUNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CisgICAgbWVtb3J5Q2FjaGUoKS5zZXRDYXBhY2l0aWVz
KGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENh
cGFjaXR5KTsKKyAgICBtZW1vcnlDYWNoZSgpLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CiAgICAgcGFnZUNhY2hlKCkt
PnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKICNpZiBQTEFURk9STShJT1MpCiAgICAg
cGFnZUNhY2hlKCktPnNldFNob3VsZENsZWFyQmFja2luZ1N0b3Jlcyh0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNhY2hlLmNwcAppbmRleCAyN2Y4NzIyM2U5Y2Y4YzM4NmQyM2FhNjJhMmRhYjBiNzliOWYwOGZh
Li4wNjYxYTc5YmU3Mjk5ZDU1YzJkOWZjOGYwMjc4YmFkN2JkOGNmOWJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q2FjaGUuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgSFJFU1VMVCBXZWJDYWNoZTo6c3RhdGlzdGlj
cyhpbnQqIGNvdW50LCBJUHJvcGVydHlCYWcqKiBzKQogICAgIGlmICghcykKICAgICAgICAgcmV0
dXJuIFNfT0s7CiAKLSAgICBXZWJDb3JlOjpNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBzdGF0ID0g
V2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+Z2V0U3RhdGlzdGljcygpOworICAgIFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpTdGF0aXN0aWNzIHN0YXQgPSBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLmdldFN0
YXRpc3RpY3MoKTsKIAogICAgIHN0YXRpYyBDRlN0cmluZ1JlZiBpbWFnZXNLZXkgPSBDRlNUUigi
aW1hZ2VzIik7CiAgICAgc3RhdGljIENGU3RyaW5nUmVmIHN0eWxlc2hlZXRzS2V5ID0gQ0ZTVFIo
InN0eWxlIHNoZWV0cyIpOwpAQCAtMjA3LDEwICsyMDcsMTAgQEAgSFJFU1VMVCBXZWJDYWNoZTo6
c3RhdGlzdGljcyhpbnQqIGNvdW50LCBJUHJvcGVydHlCYWcqKiBzKQogCiBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYkNhY2hlOjplbXB0eSggdm9pZCkKIHsKLSAgICBpZiAoV2ViQ29yZTo6
bWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkKKyAgICBpZiAoV2ViQ29yZTo6bWVtb3J5Q2FjaGUo
KS5kaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gU19PSzsKLSAgICBXZWJDb3JlOjptZW1vcnlD
YWNoZSgpLT5zZXREaXNhYmxlZCh0cnVlKTsKLSAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5z
ZXREaXNhYmxlZChmYWxzZSk7CisgICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS5zZXREaXNhYmxl
ZCh0cnVlKTsKKyAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLnNldERpc2FibGVkKGZhbHNlKTsK
IAogICAgIC8vIEVtcHR5IHRoZSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICBXZWJDb3JlOjpjYWNo
ZVN0b3JhZ2UoKS5lbXB0eSgpOwpAQCAtMjI0LDcgKzIyNCw3IEBAIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgV2ViQ2FjaGU6OmVtcHR5KCB2b2lkKQogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJDYWNoZTo6c2V0RGlzYWJsZWQoIAogICAgIC8qIFtpbl0gKi8gQk9PTCBkaXNhYmxlZCkK
IHsKLSAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXREaXNhYmxlZCghIWRpc2FibGVkKTsK
KyAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLnNldERpc2FibGVkKCEhZGlzYWJsZWQpOwogICAg
IHJldHVybiBTX09LOwogfQogCkBAIC0yMzMsNyArMjMzLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJDYWNoZTo6ZGlzYWJsZWQoCiB7CiAgICAgaWYgKCFkaXNhYmxlZCkKICAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKLSAgICAqZGlzYWJsZWQgPSBXZWJDb3JlOjptZW1vcnlDYWNo
ZSgpLT5kaXNhYmxlZCgpOworICAgICpkaXNhYmxlZCA9IFdlYkNvcmU6Om1lbW9yeUNhY2hlKCku
ZGlzYWJsZWQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRl
eCA5MDRmMzlhYTlmMmJkNGU1NWIzNWU0MmFiODYzMTg0ODViYzgzOTBiLi43NWY5ZWQyMDVlMzNk
YzNlYWViYTQyZDc3Y2UwY2Q0NmVlZGMwN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjcx
LDggKzY3MSw4IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNoZU1vZGVsIGNh
Y2hlTW9kZWwpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIG1l
bW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4
RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwotICAgIG1lbW9yeUNhY2hlKCktPnNl
dERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25J
bnRlcnZhbCk7CisgICAgbWVtb3J5Q2FjaGUoKS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENh
cGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAgICBt
ZW1vcnlDYWNoZSgpLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CiAgICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBh
Z2VDYWNoZUNhcGFjaXR5KTsKIAogI2lmIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCmluZGV4IDY3MWExN2U1NmM4NDM1MGZkODhiMmIwZDMzZWRlYjEyMjM5OTJhZWQu
LjM5MDRiMTA1NTE4NWJhYWU5ODlkYmM4ZGI1N2EzMWQ3ZDNkYjE3MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpT
CiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBzZXNzaW9uSUQpOworICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCkucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNl
c3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKaW5kZXggNDE4N2JmNTQ3OGRhMzI4OTdj
ZjAwY2NkM2UwMGRhYmZiNjcyMDIyYy4uMjRmZWYxOTY4NDMwMzY5YTg4Nzk4ODkyYzIzMjdiZTYz
NDlkZjg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNh
Y2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmdldENhY2hlT3JpZ2lucyh1
aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAogI2Vsc2UKICAgICBNZW1vcnlDYWNoZTo6U2VjdXJp
dHlPcmlnaW5TZXQgb3JpZ2luczsKICNlbmRpZgotICAgIG1lbW9yeUNhY2hlKCktPmdldE9yaWdp
bnNXaXRoQ2FjaGUob3JpZ2lucyk7CisgICAgbWVtb3J5Q2FjaGUoKS5nZXRPcmlnaW5zV2l0aENh
Y2hlKG9yaWdpbnMpOwogCiAjaWYgVVNFKENGVVJMQ0FDSEUpCiAjaWYgRU5BQkxFKENBQ0hFX1BB
UlRJVElPTklORykKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyOjpjbGVhckNhY2hlRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZwog
ICAgIGlmICghb3JpZ2luKQogICAgICAgICByZXR1cm47CiAKLSAgICBtZW1vcnlDYWNoZSgpLT5y
ZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKG9yaWdpbi5nZXQoKSk7CisgICAgbWVtb3J5Q2FjaGUo
KS5yZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKG9yaWdpbi5nZXQoKSk7CiAKICNpZiBVU0UoQ0ZV
UkxDQUNIRSkKICAgICBpZiAocmVzb3VyY2VDYWNoZXNUb0NsZWFyICE9IEluTWVtb3J5UmVzb3Vy
Y2VDYWNoZXNPbmx5KSB7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggY2UxOTZkNTQxZWQwM2Q1NTBjZTZlYzY5YmUwODE3ZDY5NjU3ZjEwMi4uMjBlNjM5Mzdj
YzU1ZjJjMWFmZWI0NjM3NmI0M2FmZDcwOGNkNWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp0
ZXJtaW5hdGUoKQogI2lmbmRlZiBOREVCVUcKICAgICBnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29s
bGVjdE5vdygpOwogICAgIGZvbnRDYWNoZSgpLmludmFsaWRhdGUoKTsKLSAgICBtZW1vcnlDYWNo
ZSgpLT5zZXREaXNhYmxlZCh0cnVlKTsKKyAgICBtZW1vcnlDYWNoZSgpLnNldERpc2FibGVkKHRy
dWUpOwogI2VuZGlmCiAKICAgICBtX3dlYkNvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKQEAgLTYz
OCw3ICs2MzgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiop
CiAKICAgICBnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKICAgICBmb250Q2Fj
aGUoKS5pbnZhbGlkYXRlKCk7Ci0gICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQodHJ1ZSk7
CisgICAgbWVtb3J5Q2FjaGUoKS5zZXREaXNhYmxlZCh0cnVlKTsKICNlbmRpZiAgICAKIAogICAg
IC8vIFRoZSBVSSBwcm9jZXNzIGNsb3NlZCB0aGlzIGNvbm5lY3Rpb24sIHNodXQgZG93bi4KQEAg
LTcxMCw3ICs3MTAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMoUmVz
b3VyY2VDYWNoZXNUb0NsZWFyIHJlc291cmNlQ2FjaGVzVG9DbGVhcgogICAgIHNldENhY2hlTW9k
ZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKICAgICBzZXRDYWNoZU1vZGVsKGNhY2hlTW9k
ZWwpOwogCi0gICAgbWVtb3J5Q2FjaGUoKS0+ZXZpY3RSZXNvdXJjZXMoKTsKKyAgICBtZW1vcnlD
YWNoZSgpLmV2aWN0UmVzb3VyY2VzKCk7CiAKICAgICAvLyBFbXB0eSB0aGUgY3Jvc3Mtb3JpZ2lu
IHByZWZsaWdodCBjYWNoZS4KICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpz
aGFyZWQoKS5lbXB0eSgpOwpAQCAtODY2LDcgKzg2Niw3IEBAIHN0YXRpYyB2b2lkIGdldFdlYkNv
cmVNZW1vcnlDYWNoZVN0YXRpc3RpY3MoVmVjdG9yPEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4+
JiByCiAgICAgU3RyaW5nIHhzbFN0cmluZyhBU0NJSUxpdGVyYWwoIlhTTCIpKTsKICAgICBTdHJp
bmcgamF2YVNjcmlwdFN0cmluZyhBU0NJSUxpdGVyYWwoIkphdmFTY3JpcHQiKSk7CiAgICAgCi0g
ICAgTWVtb3J5Q2FjaGU6OlN0YXRpc3RpY3MgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzID0gbWVtb3J5
Q2FjaGUoKS0+Z2V0U3RhdGlzdGljcygpOworICAgIE1lbW9yeUNhY2hlOjpTdGF0aXN0aWNzIG1l
bW9yeUNhY2hlU3RhdGlzdGljcyA9IG1lbW9yeUNhY2hlKCkuZ2V0U3RhdGlzdGljcygpOwogICAg
IAogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gY291bnRzOwogICAgIGNvdW50cy5zZXQo
aW1hZ2VzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuaW1hZ2VzLmNvdW50KTsKQEAgLTEy
NDgsOCArMTI0OCw4IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6YXBpT2JqZWN0
QnlDb252ZXJ0aW5nRnJvbUhhbmRsZXMoQVBJOjpPYmplY3QqIG9iCiAKIHZvaWQgV2ViUHJvY2Vz
czo6c2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChib29sIGRpc2FibGVkKQogewotICAgIGlmIChtZW1v
cnlDYWNoZSgpLT5kaXNhYmxlZCgpICE9IGRpc2FibGVkKQotICAgICAgICBtZW1vcnlDYWNoZSgp
LT5zZXREaXNhYmxlZChkaXNhYmxlZCk7CisgICAgaWYgKG1lbW9yeUNhY2hlKCkuZGlzYWJsZWQo
KSAhPSBkaXNhYmxlZCkKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS5zZXREaXNhYmxlZChkaXNhYmxl
ZCk7CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggOGUyMWY3YjAz
NGJjMDhmOTMxZTdiNTIwOGYxZjcwZDY5YjJhMDYxOS4uMmJiNjhmNWQ2ZWFmNDdiNWNiNDI4NGE3
NGYzNzFiMWQ0Mjg0NGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEwOSw4ICsxMDksOCBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAg
IHBhZ2VDYWNoZUNhcGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tD
YXBhY2l0eSk7CiAKIAotICAgIG1lbW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5E
ZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwot
ICAgIG1lbW9yeUNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CisgICAgbWVtb3J5Q2FjaGUoKS5zZXRDYXBh
Y2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVU
b3RhbENhcGFjaXR5KTsKKyAgICBtZW1vcnlDYWNoZSgpLnNldERlYWREZWNvZGVkRGF0YURlbGV0
aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CiAgICAgcGFnZUNh
Y2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKIAogICAgIE5TVVJMQ2FjaGUg
Km5zdXJsQ2FjaGUgPSBbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAppbmRleCBlODcwMWEy
MTIzZmZjYmJkZDI5MGZiYWZiYjIwZDliNDFiYTlhN2EyLi43ZDc5ZjVlZWJkM2RiYWQ3YmQwYTQ0
Y2Y2ZmJiNTU2ZTAzYTgyMTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5
LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5LCB1cmxDYWNoZU1lbW9y
eUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAKLSAgICBXZWJDb3JlOjptZW1vcnlD
YWNoZSgpLT5zZXREaXNhYmxlZChjYWNoZU1vZGVsID09IENhY2hlTW9kZWxEb2N1bWVudFZpZXdl
cik7Ci0gICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+c2V0Q2FwYWNpdGllcyhjYWNoZU1pbkRl
YWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxDYXBhY2l0eSk7Ci0g
ICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRl
cnZhbChkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKKyAgICBXZWJDb3JlOjptZW1v
cnlDYWNoZSgpLnNldERpc2FibGVkKGNhY2hlTW9kZWwgPT0gQ2FjaGVNb2RlbERvY3VtZW50Vmll
d2VyKTsKKyAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLnNldENhcGFjaXRpZXMoY2FjaGVNaW5E
ZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwor
ICAgIFdlYkNvcmU6Om1lbW9yeUNhY2hlKCkuc2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRl
cnZhbChkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKICAgICBXZWJDb3JlOjpwYWdl
Q2FjaGUoKS0+c2V0Q2FwYWNpdHkocGFnZUNhY2hlQ2FwYWNpdHkpOwogCiAjaWYgUExBVEZPUk0o
R1RLKQo=
</data>
<flag name="review"
          id="266924"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>