<?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>140082</bug_id>
          
          <creation_ts>2015-01-05 08:55:29 -0800</creation_ts>
          <short_desc>Pass IPC::Connection by reference to IPC message handlers</short_desc>
          <delta_ts>2015-01-05 10:17:17 -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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058709</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-05 08:55:29 -0800</bug_when>
    <thetext>Pass IPC::Connection by reference to IPC message handlers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058721</commentid>
    <comment_count>1</comment_count>
      <attachid>243981</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-05 10:04:14 -0800</bug_when>
    <thetext>Created attachment 243981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058729</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-05 10:17:17 -0800</bug_when>
    <thetext>Committed r177914: &lt;http://trac.webkit.org/changeset/177914&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243981</attachid>
            <date>2015-01-05 10:04:14 -0800</date>
            <delta_ts>2015-01-05 10:08:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140082-20150105100417.patch</filename>
            <type>text/plain</type>
            <size>34674</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmE5NDcwODRiNTBhMzIx
MWM4NzdmZmZhYjc1OGNlYWJhOTY2MGY5NC4uYTIzZTViZGUxNjcwZDJlZDM5ZmYxZmMzOGY2YjY5
ZjIyZjBhMjcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAxLTA1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBJUEM6OkNv
bm5lY3Rpb24gYnkgcmVmZXJlbmNlIHRvIElQQyBtZXNzYWdlIGhhbmRsZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAwODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9IYW5k
bGVNZXNzYWdlLmg6CisgICAgICAgIChJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbkltcGwpOgorICAg
ICAgICAoSVBDOjpjYWxsTWVtYmVyRnVuY3Rpb24pOgorICAgICAgICAoSVBDOjpoYW5kbGVNZXNz
YWdlKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoYXN5bmNfbWVzc2FnZV9zdGF0ZW1l
bnQpOgorICAgICAgICAoc3luY19tZXNzYWdlX3N0YXRlbWVudCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTWFwKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZU1hcCk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpkZXN0cm95U3RvcmFnZU1hcCk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VNYW5hZ2VyOjpnZXRWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpyZW1v
dmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmNsZWFyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2Fn
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnN0
YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eTo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpkaWRHZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6ZGlkRGVsZXRlRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OmRpZERlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmhhbmRs
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aGFuZGxlU3luY2hy
b25vdXNNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNJdGVtU2hpbVByb3h5OjpzZWNJdGVtUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lmg6CisKIDIwMTUtMDEtMDQgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIG9mIHRoZSBJ
UEMgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1l
c3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKaW5k
ZXggYjBmOWRhYTQ2MTRkYzc2YmM3NzQ2YmIyZGI1YmQ1MWY4NDhiY2JhMS4uMjA2MWY4NTFjNmUz
YTMwZDhhNDdlOWIxZThhYjM2YmJlMDU3ZTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvSGFuZGxlTWVzc2FnZS5oCkBAIC01MywxMyArNTMsMTMgQEAgdm9pZCBjYWxsTWVtYmVy
RnVuY3Rpb24oQXJnc1R1cGxlJiYgYXJncywgUGFzc1JlZlB0cjxSPiBkZWxheWVkUmVwbHksIEMq
IG9iamVjdCwKIC8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIGNvbm5lY3Rpb24gcGFyYW1ldGVy
IHdpdGggbm8gcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5h
bWUgTUYsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4uIEFyZ3NJbmRleD4KLXZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1bmN0aW9uLCBDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBBcmdzVHVwbGUmJiBhcmdzLCBzdGQ6OmluZGV4X3NlcXVlbmNlPEFyZ3NJbmRl
eC4uLj4pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwoQyogb2JqZWN0LCBNRiBmdW5jdGlv
biwgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgc3RkOjppbmRleF9z
ZXF1ZW5jZTxBcmdzSW5kZXguLi4+KQogewogICAgIChvYmplY3QtPipmdW5jdGlvbikoY29ubmVj
dGlvbiwgc3RkOjpnZXQ8QXJnc0luZGV4PihhcmdzKS4uLik7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVwbGUsIHR5cGVuYW1lIEFyZ3NJbmRp
Y2llcyA9IHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnR1cGxlX3NpemU8QXJnc1R1cGxl
Pjo6dmFsdWU+Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlv
biwgQXJnc1R1cGxlJiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAgY2FsbE1lbWJlckZ1bmN0aW9uSW1wbChvYmpl
Y3QsIGZ1bmN0aW9uLCBjb25uZWN0aW9uLCBzdGQ6OmZvcndhcmQ8QXJnc1R1cGxlPihhcmdzKSwg
QXJnc0luZGljaWVzKCkpOwogfQpAQCAtNjcsMTMgKzY3LDEzIEBAIHZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIEMqIG9iamVj
dCwgTUYKIC8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIGNvbm5lY3Rpb24gcGFyYW1ldGVyIHdp
dGggcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYs
IHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4uIEFyZ3NJbmRleCwgdHlwZW5hbWUgUmVwbHlB
cmdzVHVwbGUsIHNpemVfdC4uLiBSZXBseUFyZ3NJbmRleD4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0
aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1bmN0aW9uLCBDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBB
cmdzVHVwbGUmJiBhcmdzLCBSZXBseUFyZ3NUdXBsZSYgcmVwbHlBcmdzLCBzdGQ6OmluZGV4X3Nl
cXVlbmNlPEFyZ3NJbmRleC4uLj4sIHN0ZDo6aW5kZXhfc2VxdWVuY2U8UmVwbHlBcmdzSW5kZXgu
Li4+KQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb25JbXBsKEMqIG9iamVjdCwgTUYgZnVuY3Rpb24s
IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIFJlcGx5QXJnc1R1cGxl
JiByZXBseUFyZ3MsIHN0ZDo6aW5kZXhfc2VxdWVuY2U8QXJnc0luZGV4Li4uPiwgc3RkOjppbmRl
eF9zZXF1ZW5jZTxSZXBseUFyZ3NJbmRleC4uLj4pCiB7CiAgICAgKG9iamVjdC0+KmZ1bmN0aW9u
KShjb25uZWN0aW9uLCBzdGQ6OmdldDxBcmdzSW5kZXg+KHN0ZDo6Zm9yd2FyZDxBcmdzVHVwbGU+
KGFyZ3MpKS4uLiwgc3RkOjpnZXQ8UmVwbHlBcmdzSW5kZXg+KHJlcGx5QXJncykuLi4pOwogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIEFyZ3NUdXBsZSwg
dHlwZW5hbWUgQXJnc0luZGljaWVzID0gc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0ZDo6dHVw
bGVfc2l6ZTxBcmdzVHVwbGU+Ojp2YWx1ZT4sIHR5cGVuYW1lIFJlcGx5QXJnc1R1cGxlLCB0eXBl
bmFtZSBSZXBseUFyZ3NJbmRpY2llcyA9IHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnR1
cGxlX3NpemU8UmVwbHlBcmdzVHVwbGU+Ojp2YWx1ZT4+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlv
bihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBBcmdzVHVwbGUmJiBhcmdzLCBSZXBseUFyZ3NUdXBs
ZSYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgUmVwbHlBcmdz
VHVwbGUmIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICBjYWxsTWVt
YmVyRnVuY3Rpb25JbXBsKG9iamVjdCwgZnVuY3Rpb24sIGNvbm5lY3Rpb24sIHN0ZDo6Zm9yd2Fy
ZDxBcmdzVHVwbGU+KGFyZ3MpLCByZXBseUFyZ3MsIEFyZ3NJbmRpY2llcygpLCBSZXBseUFyZ3NJ
bmRpY2llcygpKTsKIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVz
c2FnZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9i
agogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZv
aWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlIGFyZ3VtZW50czsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpIHsKQEAgLTEyMSw3ICsxMjEsNyBA
QCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
K3ZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpE
ZWNvZGVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykp
IHsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTQogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVz
c2FnZURlbGF5ZWQoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZURlbGF5ZWQoQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpIHsKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2VE
ZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCBXVEY6Om1vdmUocmVwbHlFbmNvZGVyKSkpOworICAgIFJlZlB0
cjx0eXBlbmFtZSBUOjpEZWxheWVkUmVwbHk+IGRlbGF5ZWRSZXBseSA9IGFkb3B0UmVmKG5ldyB0
eXBlbmFtZSBUOjpEZWxheWVkUmVwbHkoJmNvbm5lY3Rpb24sIFdURjo6bW92ZShyZXBseUVuY29k
ZXIpKSk7CiAgICAgY2FsbE1lbWJlckZ1bmN0aW9uKFdURjo6bW92ZShhcmd1bWVudHMpLCBkZWxh
eWVkUmVwbHkucmVsZWFzZSgpLCBvYmplY3QsIGZ1bmN0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA5NzdmMTRkNzgzMjEyNmZlODg3MjM2
NmQ1YjNmYjc0YmY2MGM5OTJmLi42ODkyNmM5ZjQ2ZTI3MGFjNDkwMDkwMmM3ZTQwZWNkNTczY2Mx
NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjY1
LDcgKzI2NSw3IEBAIGRlZiBhc3luY19tZXNzYWdlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2Fn
ZSk6CiAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gPSAnaGFuZGxlTWVzc2FnZScKIAogICAgIGlmIG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShXQU5UU19DT05ORUNUSU9OX0FUVFJJQlVURSk6Ci0gICAgICAg
IGRpc3BhdGNoX2Z1bmN0aW9uX2FyZ3MuaW5zZXJ0KDAsICdjb25uZWN0aW9uJykKKyAgICAgICAg
ZGlzcGF0Y2hfZnVuY3Rpb25fYXJncy5pbnNlcnQoMCwgJypjb25uZWN0aW9uJykKIAogICAgIHJl
c3VsdCA9IFtdCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkgPT0gTWVzc2FnZXM6OiVzOjolczo6bmFtZSgpKSB7XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1l
c3NhZ2UubmFtZSkpCkBAIC0yODQsNyArMjg0LDcgQEAgZGVmIHN5bmNfbWVzc2FnZV9zdGF0ZW1l
bnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgogCiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6JXM6OiVzOjpu
YW1lKCkpIHtcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKLSAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIElQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNkZWNvZGVyLCAlc3Jl
cGx5RW5jb2RlciwgdGhpcywgJiVzKTtcbicgJSAoZGlzcGF0Y2hfZnVuY3Rpb24sIHJlY2VpdmVy
Lm5hbWUsIG1lc3NhZ2UubmFtZSwgJ2Nvbm5lY3Rpb24sICcgaWYgd2FudHNfY29ubmVjdGlvbiBl
bHNlICcnLCAnJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJyonLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0
LmFwcGVuZCgnICAgICAgICBJUEM6OiVzPE1lc3NhZ2VzOjolczo6JXM+KCVzZGVjb2RlciwgJXNy
ZXBseUVuY29kZXIsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUsICcqY29ubmVjdGlvbiwgJyBpZiB3YW50c19jb25uZWN0aW9u
IGVsc2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkg
ZWxzZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1
bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH1c
bicpCiAgICAgcmV0dXJuIHN1cnJvdW5kX2luX2NvbmRpdGlvbignJy5qb2luKHJlc3VsdCksIG1l
c3NhZ2UuY29uZGl0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGEyMWVhODcwZmVmMWFkNzVjMGRhMzc5YWQzYWJi
MzQ4OWJkYTkwOWUuLmRkYzg3ZjBhNWM3YzcwYmZhMDczMDkyNDFiMTA1ZDg5MjhiYTEzYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdl
ci5jcHAKQEAgLTU0MSw5ICs1NDEsOSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVMb2Nh
bFN0b3JhZ2VPcmlnaW5zTW9kaWZpZWRTaW5jZSh0aW1lX3QgdGltZSwgc3RkOjpmdQogICAgIH0p
OwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2NhbFN0b3JhZ2VNYXAoSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
bkRhdGEpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2NhbFN0b3JhZ2VNYXAoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
bkRhdGEpCiB7Ci0gICAgc3RkOjpwYWlyPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCB1aW50NjRf
dD4gY29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIoY29ubmVjdGlvbiwgc3RvcmFnZU1hcElE
KTsKKyAgICBzdGQ6OnBhaXI8UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiBjb25u
ZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcigmY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKIAog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIG1lc3NhZ2UgY2hlY2suCiAgICAgQVNTRVJU
KChIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+LCBS
ZWZQdHI8U3RvcmFnZUFyZWE+Pjo6aXNWYWxpZEtleShjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElE
UGFpcikpKTsKQEAgLTU2MCwxNyArNTYwLDE3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmNyZWF0
ZUxvY2FsU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90CiAg
ICAgQVNTRVJUKGxvY2FsU3RvcmFnZU5hbWVzcGFjZSk7CiAKICAgICBSZWZQdHI8U3RvcmFnZUFy
ZWE+IHN0b3JhZ2VBcmVhID0gbG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0ZVN0b3Jh
Z2VBcmVhKHNlY3VyaXR5T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBzdG9yYWdl
QXJlYS0+YWRkTGlzdGVuZXIoY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKKyAgICBzdG9yYWdl
QXJlYS0+YWRkTGlzdGVuZXIoJmNvbm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCk7CiAKICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlID0gc3RvcmFnZUFyZWEucmVsZWFzZSgpOwogfQogCi12b2lkIFN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VNYXAoSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VO
YW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbE9yaWdpbkRhdGEs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhKQordm9pZCBTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTmFt
ZXNwYWNlSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxPcmlnaW5EYXRhLCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSkKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgYSBtZXNzYWdlIGNoZWNrLgotICAgIEFTU0VSVChtX3N0b3Jh
Z2VBcmVhc0J5Q29ubmVjdGlvbi5pc1ZhbGlkS2V5KHsgY29ubmVjdGlvbiwgc3RvcmFnZU1hcElE
IH0pKTsKKyAgICBBU1NFUlQobV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uaXNWYWxpZEtleSh7
ICZjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQgfSkpOwogCi0gICAgYXV0byYgc2xvdCA9IG1fc3Rv
cmFnZUFyZWFzQnlDb25uZWN0aW9uLmFkZCh7IGNvbm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCB9LCBu
dWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgc2xvdCA9IG1fc3RvcmFnZUFyZWFz
QnlDb25uZWN0aW9uLmFkZCh7ICZjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQgfSwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgbWVzc2Fn
ZSBjaGVjay4KICAgICBBU1NFUlQoIXNsb3QpOwpAQCAtNTc4LDEyICs1NzgsMTIgQEAgdm9pZCBT
dG9yYWdlTWFuYWdlcjo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTWFwKElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwKICAgICBUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqIHRy
YW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZSA9IGdldE9yQ3JlYXRlVHJhbnNpZW50TG9jYWxT
dG9yYWdlTmFtZXNwYWNlKHN0b3JhZ2VOYW1lc3BhY2VJRCwgKnRvcExldmVsT3JpZ2luRGF0YS5z
ZWN1cml0eU9yaWdpbigpKTsKIAogICAgIGF1dG8gc3RvcmFnZUFyZWEgPSB0cmFuc2llbnRMb2Nh
bFN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoc2VjdXJpdHlPcmlnaW5E
YXRhLnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihjb25u
ZWN0aW9uLCBzdG9yYWdlTWFwSUQpOworICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcigmY29u
bmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKIAogICAgIHNsb3QgPSBXVEY6Om1vdmUoc3RvcmFnZUFy
ZWEpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcChJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0
X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5
T3JpZ2luRGF0YSkKK3ZvaWQgU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTWFw
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50
NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJp
dHlPcmlnaW5EYXRhKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIG1lc3NhZ2Ug
Y2hlY2suCiAgICAgQVNTRVJUKG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VzLmlzVmFsaWRLZXko
c3RvcmFnZU5hbWVzcGFjZUlEKSk7CkBAIC01OTYsMjUgKzU5NiwyNSBAQCB2b2lkIFN0b3JhZ2VN
YW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIHVpbnQ2NAogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIG1lc3Nh
Z2UgY2hlY2suCi0gICAgQVNTRVJUKG1fc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLmlzVmFsaWRL
ZXkoeyBjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQgfSkpOworICAgIEFTU0VSVChtX3N0b3JhZ2VB
cmVhc0J5Q29ubmVjdGlvbi5pc1ZhbGlkS2V5KHsgJmNvbm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCB9
KSk7CiAKLSAgICBhdXRvJiBzbG90ID0gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uYWRkKHsg
Y29ubmVjdGlvbiwgc3RvcmFnZU1hcElEIH0sIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBhdXRvJiBzbG90ID0gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uYWRkKHsgJmNvbm5lY3Rp
b24sIHN0b3JhZ2VNYXBJRCB9LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgYSBtZXNzYWdlIGNoZWNrLgogICAgIEFTU0VSVCghc2xvdCk7
CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBtZXNzYWdlIGNoZWNrLgotICAgIEFT
U0VSVChjb25uZWN0aW9uID09IHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlLT5hbGxvd2VkQ29ubmVj
dGlvbigpKTsKKyAgICBBU1NFUlQoJmNvbm5lY3Rpb24gPT0gc2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UtPmFsbG93ZWRDb25uZWN0aW9uKCkpOwogCiAgICAgYXV0byBzdG9yYWdlQXJlYSA9IHNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKHNlY3VyaXR5T3JpZ2lu
RGF0YS5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBzdG9yYWdlQXJlYS0+YWRkTGlzdGVuZXIoY29u
bmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKKyAgICBzdG9yYWdlQXJlYS0+YWRkTGlzdGVuZXIoJmNv
bm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCk7CiAKICAgICBzbG90ID0gV1RGOjptb3ZlKHN0b3JhZ2VB
cmVhKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVzdHJveVN0b3JhZ2VNYXAoSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQpCit2b2lkIFN0b3Jh
Z2VNYW5hZ2VyOjpkZXN0cm95U3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCkKIHsKLSAgICBzdGQ6OnBhaXI8UmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4sIHVpbnQ2NF90PiBjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcihjb25uZWN0
aW9uLCBzdG9yYWdlTWFwSUQpOworICAgIHN0ZDo6cGFpcjxSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiwgdWludDY0X3Q+IGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQYWlyKCZjb25uZWN0aW9uLCBz
dG9yYWdlTWFwSUQpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgbWVzc2FnZSBj
aGVjay4KICAgICBBU1NFUlQobV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uaXNWYWxpZEtleShj
b25uZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcikpOwpAQCAtNjI1LDU3ICs2MjUsNTcgQEAgdm9p
ZCBTdG9yYWdlTWFuYWdlcjo6ZGVzdHJveVN0b3JhZ2VNYXAoSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCB1aW50NjRfdCBzdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGl0LT52
YWx1ZS0+cmVtb3ZlTGlzdGVuZXIoY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKKyAgICBpdC0+
dmFsdWUtPnJlbW92ZUxpc3RlbmVyKCZjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOwogICAgIG1f
c3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLnJlbW92ZShjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElE
UGFpcik7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXI6OmdldFZhbHVlcyhJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3RvcmFnZU1h
cFNlZWQsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiB2YWx1ZXMpCit2b2lkIFN0b3JhZ2VNYW5h
Z2VyOjpnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9y
YWdlTWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgdmFsdWVzKQogewotICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdl
QXJlYShjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOworICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdl
QXJlYSA9IGZpbmRTdG9yYWdlQXJlYSgmY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKICAgICBp
ZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgIC8vIFRoaXMgaXMgYSBzZXNzaW9uIHN0b3JhZ2Ug
YXJlYSBmb3IgYSBwYWdlIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQuIElnbm9yZSBpdC4K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHZhbHVlcyA9IHN0b3JhZ2VBcmVhLT5pdGVt
cygpOwotICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRH
ZXRWYWx1ZXMoc3RvcmFnZU1hcFNlZWQpLCBzdG9yYWdlTWFwSUQpOworICAgIGNvbm5lY3Rpb24u
c2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZEdldFZhbHVlcyhzdG9yYWdlTWFwU2Vl
ZCksIHN0b3JhZ2VNYXBJRCk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXI6OnNldEl0ZW0oSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
dWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50
NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFs
dWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdl
QXJlYSA9IGZpbmRTdG9yYWdlQXJlYShjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOworICAgIFN0
b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYSgmY29ubmVjdGlvbiwgc3Rv
cmFnZU1hcElEKTsKICAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgIC8vIFRoaXMgaXMg
YSBzZXNzaW9uIHN0b3JhZ2UgYXJlYSBmb3IgYSBwYWdlIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBj
bG9zZWQuIElnbm9yZSBpdC4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJvb2wgcXVv
dGFFcnJvcjsKLSAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShjb25uZWN0aW9uLCBzb3VyY2VTdG9y
YWdlQXJlYUlELCBrZXksIHZhbHVlLCB1cmxTdHJpbmcsIHF1b3RhRXJyb3IpOwotICAgIGNvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRTZXRJdGVtKHN0b3JhZ2VN
YXBTZWVkLCBrZXksIHF1b3RhRXJyb3IpLCBzdG9yYWdlTWFwSUQpOworICAgIHN0b3JhZ2VBcmVh
LT5zZXRJdGVtKCZjb25uZWN0aW9uLCBzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIHZhbHVlLCB1
cmxTdHJpbmcsIHF1b3RhRXJyb3IpOworICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3Rv
cmFnZUFyZWFNYXA6OkRpZFNldEl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtleSwgcXVvdGFFcnJvciks
IHN0b3JhZ2VNYXBJRCk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXI6OnJlbW92ZUl0ZW0oSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpy
ZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1h
cElELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2Vl
ZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFN0
b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYShjb25uZWN0aW9uLCBzdG9y
YWdlTWFwSUQpOworICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJl
YSgmY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKICAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7CiAg
ICAgICAgIC8vIFRoaXMgaXMgYSBzZXNzaW9uIHN0b3JhZ2UgYXJlYSBmb3IgYSBwYWdlIHRoYXQg
aGFzIGFscmVhZHkgYmVlbiBjbG9zZWQuIElnbm9yZSBpdC4KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGNvbm5lY3Rpb24sIHNvdXJjZVN0b3Jh
Z2VBcmVhSUQsIGtleSwgdXJsU3RyaW5nKTsKLSAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlQXJlYU1hcDo6RGlkUmVtb3ZlSXRlbShzdG9yYWdlTWFwU2VlZCwga2V5KSwgc3Rv
cmFnZU1hcElEKTsKKyAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlSXRlbSgmY29ubmVjdGlvbiwgc291
cmNlU3RvcmFnZUFyZWFJRCwga2V5LCB1cmxTdHJpbmcpOworICAgIGNvbm5lY3Rpb24uc2VuZChN
ZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZFJlbW92ZUl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtl
eSksIHN0b3JhZ2VNYXBJRCk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXI6OmNsZWFyKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBz
b3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjbGVhcihJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc291cmNlU3RvcmFn
ZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KQogewotICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYShjb25u
ZWN0aW9uLCBzdG9yYWdlTWFwSUQpOworICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IGZp
bmRTdG9yYWdlQXJlYSgmY29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKICAgICBpZiAoIXN0b3Jh
Z2VBcmVhKSB7CiAgICAgICAgIC8vIFRoaXMgaXMgYSBzZXNzaW9uIHN0b3JhZ2UgYXJlYSBmb3Ig
YSBwYWdlIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQuIElnbm9yZSBpdC4KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHN0b3JhZ2VBcmVhLT5jbGVhcihjb25uZWN0aW9uLCBzb3Vy
Y2VTdG9yYWdlQXJlYUlELCB1cmxTdHJpbmcpOwotICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRDbGVhcihzdG9yYWdlTWFwU2VlZCksIHN0b3JhZ2VNYXBJ
RCk7CisgICAgc3RvcmFnZUFyZWEtPmNsZWFyKCZjb25uZWN0aW9uLCBzb3VyY2VTdG9yYWdlQXJl
YUlELCB1cmxTdHJpbmcpOworICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFy
ZWFNYXA6OkRpZENsZWFyKHN0b3JhZ2VNYXBTZWVkKSwgc3RvcmFnZU1hcElEKTsKIH0KIAogdm9p
ZCBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJbnRlcm5hbCh1
aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiogYWxsb3dlZENvbm5l
Y3Rpb24sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCmluZGV4IGU5ZTQ0MzlhMmU0OTBjZTZiZGE3
MWVmYzE3NWIxOTk5YjJhOThkMjUuLjU2YzNmY2RkMjhjMWYyNWQ4YTliMzRjNjJjZWZiYTc4MWI4
ZGU5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIuaApAQCAtNzQsMTUgKzc0LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIp
IG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGNyZWF0ZUxv
Y2FsU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0g
ICAgdm9pZCBjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VNYXAoSVBDOjpDb25uZWN0aW9uKiwg
dWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxPcmlnaW5EYXRhLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmKTsKLSAgICB2b2lkIGNyZWF0ZVNlc3Npb25TdG9yYWdlTWFwKElQQzo6Q29ubmVj
dGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlE
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKLSAgICB2b2lkIGRlc3Ryb3lTdG9yYWdlTWFw
KElQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCk7Ci0KLSAgICB2b2lkIGdl
dFZhbHVlcyhJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90
IHN0b3JhZ2VNYXBTZWVkLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgdmFsdWVzKTsKLSAgICB2
b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWlu
dDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
Zyk7Ci0gICAgdm9pZCByZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3Jh
Z2VNYXBJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1h
cFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0gICAg
dm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBjcmVhdGVMb2NhbFN0b3JhZ2VNYXAoSVBDOjpD
b25uZWN0aW9uJiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNw
YWNlSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworICAgIHZvaWQgY3JlYXRlVHJhbnNp
ZW50TG9jYWxTdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VNYXBJ
RCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcExldmVsT3JpZ2luRGF0YSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9p
ZCBjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzdG9y
YWdlTWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJik7CisgICAgdm9pZCBkZXN0cm95U3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24mLCB1
aW50NjRfdCBzdG9yYWdlTWFwSUQpOworCisgICAgdm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0
aW9uJiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4mIHZhbHVlcyk7CisgICAgdm9pZCBzZXRJdGVtKElQQzo6Q29u
bmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VB
cmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgcmVtb3Zl
SXRlbShJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHNv
dXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgY2xlYXIoSVBDOjpDb25u
ZWN0aW9uJiwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJl
YUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwog
CiAgICAgdm9pZCBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUludGVybmFsKHVpbnQ2NF90
IHN0b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbiwg
dW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKICAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZUludGVybmFsKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAppbmRleCA0NWU3NmY0ODJmNjVmOWIyNTI3
MjFiOWI0MjYxMDRiMDkxZWQ0YTI5Li40NjY0OTJmNjAzYzYxZTA5M2IzNzZjMjNhMDAyYzRjMjAx
NmQyNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKQEAg
LTE0MywxMyArMTQzLDEzIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJl
bW92ZVVzZXJNZXNzYWdlSGFuZGxlckZvck5hbWUoY29uc3QgU3RyaW5nCiAgICAgfQogfQogCi12
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
UmVmZXJlbmNlKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9zdE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQ
cm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYlByb2Nlc3NQcm94eSogd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94
eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CisgICAgV2ViUHJvY2Vzc1Byb3h5KiB3ZWJQ
cm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbigmY29ubmVjdGlvbik7CiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSB3ZWJQcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5oCmluZGV4IDBhMGUyN2M2MDdhNzhlMDYzMzg1MjNlYzQ4ODliNzk3MmVm
MDg3MzcuLjAyNmJiZTJmZDVhZTNlMGNiNTRjYTAzZmZkN2I1OWQ5N2RjZTc2MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgdWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZFBvc3RNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKICAgICB1aW50
NjRfdCBtX2lkZW50aWZpZXI7CiAgICAgSGFzaFNldDxXZWJQcm9jZXNzUHJveHkqPiBtX3Byb2Nl
c3NlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDJiZDlmMjc5YjYxM2YzN2NiNGI4OWQ3MDRkZmVmNjk4
ZDQzZWRjNmYuLmQ3N2U5MGUxY2NiZGU2M2FhMTY1MDBiMzI2ZDU5NjkzN2U1NjQ2YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmNwcApAQCAtOTksMTkgKzk5LDE5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OnJlc2V0UGVybWlzc2lvbnMoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KQordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZyhJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgYm9vbCB3YXNVcGRhdGluZyA9IGlzVXBkYXRp
bmcoKTsKLSAgICBtX3VwZGF0ZVJlcXVlc3RlcnMuYWRkKGNvbm5lY3Rpb24tPmNsaWVudCgpKTsK
KyAgICBtX3VwZGF0ZVJlcXVlc3RlcnMuYWRkKGNvbm5lY3Rpb24uY2xpZW50KCkpOwogICAgIGlm
ICghd2FzVXBkYXRpbmcpIHsKICAgICAgICAgbV9wcm92aWRlci5zZXRFbmFibGVIaWdoQWNjdXJh
Y3kodGhpcywgaXNIaWdoQWNjdXJhY3lFbmFibGVkKCkpOwogICAgICAgICBtX3Byb3ZpZGVyLnN0
YXJ0VXBkYXRpbmcodGhpcyk7CiAgICAgfQogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5OjpzdG9wVXBkYXRpbmcoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQordm9pZCBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKIHsKLSAgICByZW1vdmVSZXF1ZXN0ZXIoY29ubmVjdGlvbi0+Y2xpZW50KCkp
OworICAgIHJlbW92ZVJlcXVlc3Rlcihjb25uZWN0aW9uLmNsaWVudCgpKTsKIH0KIAogdm9pZCBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6cmVtb3ZlUmVxdWVzdGVyKGNvbnN0IElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50KiBjbGllbnQpCkBAIC0xMzEsMTQgKzEzMSwxNCBAQCB2b2lkIFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5OjpyZW1vdmVSZXF1ZXN0ZXIoY29uc3QgSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQqCiAgICAgfQogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
OjpzZXRFbmFibGVIaWdoQWNjdXJhY3koSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBib29s
IGVuYWJsZWQpCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzZXRFbmFibGVIaWdo
QWNjdXJhY3koSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBib29sIGVuYWJsZWQpCiB7CiAg
ICAgYm9vbCBoaWdoQWNjdXJhY3lXYXNFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7
CiAKICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzLmFk
ZChjb25uZWN0aW9uLT5jbGllbnQoKSk7CisgICAgICAgIG1faGlnaEFjY3VyYWN5UmVxdWVzdGVy
cy5hZGQoY29ubmVjdGlvbi5jbGllbnQoKSk7CiAgICAgZWxzZQotICAgICAgICBtX2hpZ2hBY2N1
cmFjeVJlcXVlc3RlcnMucmVtb3ZlKGNvbm5lY3Rpb24tPmNsaWVudCgpKTsKKyAgICAgICAgbV9o
aWdoQWNjdXJhY3lSZXF1ZXN0ZXJzLnJlbW92ZShjb25uZWN0aW9uLmNsaWVudCgpKTsKIAogICAg
IGJvb2wgaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVk
KCk7CiAgICAgaWYgKGlzVXBkYXRpbmcoKSAmJiBoaWdoQWNjdXJhY3lXYXNFbmFibGVkICE9IGhp
Z2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggNzc1YTE3ZWZmODM1YTI5
YWZmMjRhMGMwMjY2YzdiOGRiYjUxMGUyNi4uYjA3ZmI0MjA1YzZmM2FhOTA5YzZhNTExYjI0ZTY2
NjQ1MTNlZDA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTcxLDEwICs3MSwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgaXNVcGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNF
bXB0eSgpOyB9CiAgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biAhbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsgfQogCi0gICAgdm9pZCBzdGFy
dFVwZGF0aW5nKElQQzo6Q29ubmVjdGlvbiopOwotICAgIHZvaWQgc3RvcFVwZGF0aW5nKElQQzo6
Q29ubmVjdGlvbiopOworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhJUEM6OkNvbm5lY3Rpb24mKTsK
KyAgICB2b2lkIHN0b3BVcGRhdGluZyhJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHJlbW92
ZVJlcXVlc3Rlcihjb25zdCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCopOwotICAgIHZvaWQgc2V0
RW5hYmxlSGlnaEFjY3VyYWN5KElQQzo6Q29ubmVjdGlvbiosIGJvb2wpOworICAgIHZvaWQgc2V0
RW5hYmxlSGlnaEFjY3VyYWN5KElQQzo6Q29ubmVjdGlvbiYsIGJvb2wpOwogCiAgICAgSGFzaFNl
dDxjb25zdCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCo+IG1fdXBkYXRlUmVxdWVzdGVyczsKICAg
ICBIYXNoU2V0PGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lS
ZXF1ZXN0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNkZDVjMTE0MzdiMmMxOGYyMzFlMzAyNjg5MDgx
OWQzMTZkMWRjZDUuLjUxZDI1ZGIzYjFjM2I3OTQ5ODJkNWMyN2NhZDdlOGIxZDJlOWJmMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5jcHAKQEAgLTE5MSwxMCArMTkxLDEwIEBAIHZvaWQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgc3RkOjpmdW5jdGlv
CiAgICAgc2VuZE1lc3NhZ2VUb0FsbFByb2Nlc3Nlc0luUHJvY2Vzc1Bvb2w8QXJyYXlDYWxsYmFj
aywgTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zPihwcm9jZXNzUG9v
bCgpLCBjYWxsYmFja0Z1bmN0aW9uLCBtX2FycmF5Q2FsbGJhY2tzLCB0eXBlcyk7CiB9CiAKLXZv
aWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5J
ZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2Fy
cmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Ci0gICAgTUVTU0FHRV9DSEVDS19CQVNFKGNh
bGxiYWNrLCBjb25uZWN0aW9uKTsKKyAgICBNRVNTQUdFX0NIRUNLX0JBU0UoY2FsbGJhY2ssICZj
b25uZWN0aW9uKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBzZWN1cml0eU9y
aWdpbnM7CiAgICAgc2VjdXJpdHlPcmlnaW5zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkob3JpZ2lu
SWRlbnRpZmllcnMuc2l6ZSgpKTsKQEAgLTIyMCwxMCArMjIwLDEwIEBAIHZvaWQgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc01vZGlmaWVkQmV0d2VlbkRhdGVzKFdLT3Jp
Z2luRGF0YVR5CiAgICAgc2VuZE1lc3NhZ2VUb0FsbFByb2Nlc3Nlc0luUHJvY2Vzc1Bvb2w8Vm9p
ZENhbGxiYWNrLCBNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNN
b2RpZmllZEJldHdlZW5EYXRlcz4ocHJvY2Vzc1Bvb2woKSwgY2FsbGJhY2tGdW5jdGlvbiwgbV92
b2lkQ2FsbGJhY2tzLCB0eXBlcywgc3RhcnREYXRlLCBlbmREYXRlKTsKIH0KIAotdm9pZCBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWREZWxldGVFbnRyaWVzKElQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGlkRGVsZXRlRW50cmllcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2sg
PSBtX3ZvaWRDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKLSAgICBNRVNTQUdFX0NIRUNLX0JB
U0UoY2FsbGJhY2ssIGNvbm5lY3Rpb24pOworICAgIE1FU1NBR0VfQ0hFQ0tfQkFTRShjYWxsYmFj
aywgJmNvbm5lY3Rpb24pOwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKIH0KIApA
QCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxl
dGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBzdGQ6OmYKICAgICBzZW5kTWVz
c2FnZVRvQWxsUHJvY2Vzc2VzSW5Qcm9jZXNzUG9vbDxWb2lkQ2FsbGJhY2ssIE1lc3NhZ2VzOjpX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlQWxsRW50cmllcz4ocHJvY2Vzc1Bvb2woKSwgY2Fs
bGJhY2tGdW5jdGlvbiwgbV92b2lkQ2FsbGJhY2tzLCB0eXBlcyk7CiB9CiAKLXZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkRGVsZXRlQWxsRW50cmllcyhJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmRpZERlbGV0ZUFsbEVudHJpZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxi
YWNrID0gbV92b2lkQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Ci0gICAgTUVTU0FHRV9DSEVD
S19CQVNFKGNhbGxiYWNrLCBjb25uZWN0aW9uKTsKKyAgICBNRVNTQUdFX0NIRUNLX0JBU0UoY2Fs
bGJhY2ssICZjb25uZWN0aW9uKTsKICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oCmluZGV4IDY0NWQ5ZGE1Yjc0MjdlMTA4Mzg5OTQ2NDlkMmQ5YWZlOWYyMjZkMzcu
LjI0MmRjZjhiZjVkZTY2OGM5YWY0ZTRlZDMyYzE2NGZhYzJmNjU2ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApAQCAt
NjcsOSArNjcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Bvb2wqKTsKIAotICAgIHZvaWQgZGlkR2V0T3JpZ2lu
cyhJUEM6OkNvbm5lY3Rpb24qLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGlkRGVsZXRlRW50cmllcyhJUEM6OkNvbm5l
Y3Rpb24qLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRpZERlbGV0ZUFsbEVudHJp
ZXMoSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWRH
ZXRPcmlnaW5zKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRh
dGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWREZWxldGVFbnRyaWVzKElQ
Qzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGlkRGVsZXRl
QWxsRW50cmllcyhJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAg
IC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NQb29sRGVz
dHJveWVkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCBiOGVkYWM2ZmEyZmFjYzE3MTg3MjJkMzg4ZjVmODk5M2JkYTJmMGFiLi5j
MTE5YTAzZTMzZjc1ZTNjZDc2ZTJmOGJjODJmNGMwZDI1M2FiMTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzMDYsMTUgKzEzMDYsMTggQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVxdWVzdE5ldHdvcmtpbmdTdGF0aXN0aWNzKFN0YXRpc3Rp
Y3NSZXF1ZXN0KiByZXF1ZXN0KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6Omhh
bmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBjb25zdCBXZWJLaXQ6OlVzZXJEYXRhJiBtZXNzYWdlQm9keSkKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmhhbmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBXZWJLaXQ6OlVzZXJEYXRhJiBtZXNzYWdl
Qm9keSkKIHsKLSAgICBpZiAoYXV0byogd2ViUHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5
Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSkKLSAgICAgICAgbV9pbmplY3RlZEJ1bmRsZUNs
aWVudC5kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSh0aGlzLCBtZXNzYWdlTmFt
ZSwgd2ViUHJvY2Vzc1Byb3h5LT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKG1lc3NhZ2VCb2R5
Lm9iamVjdCgpKS5nZXQoKSk7CisgICAgYXV0byogd2ViUHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vz
c1Byb3h5Ojpmcm9tQ29ubmVjdGlvbigmY29ubmVjdGlvbik7CisgICAgaWYgKCF3ZWJQcm9jZXNz
UHJveHkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQuZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUodGhpcywgbWVzc2FnZU5hbWUsIHdlYlBy
b2Nlc3NQcm94eS0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtZXNzYWdlQm9keS5vYmplY3Qo
KSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpoYW5kbGVTeW5jaHJvbm91c01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VO
YW1lLCBjb25zdCBVc2VyRGF0YSYgbWVzc2FnZUJvZHksIFVzZXJEYXRhJiByZXR1cm5Vc2VyRGF0
YSkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVz
ZXJEYXRhJiBtZXNzYWdlQm9keSwgVXNlckRhdGEmIHJldHVyblVzZXJEYXRhKQogewotICAgIGF1
dG8qIHdlYlByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29u
bmVjdGlvbik7CisgICAgYXV0byogd2ViUHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojpm
cm9tQ29ubmVjdGlvbigmY29ubmVjdGlvbik7CiAgICAgaWYgKCF3ZWJQcm9jZXNzUHJveHkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAppbmRleCAxNzkwNzVmN2ZjNDUzNmQ0Nzk2OGJiOWMwMDRiZTgyYjkwZDY4M2IxLi4wZjNiYzdj
ZDZhZTE3NmJkOTgxMGY0MTRmZTNlMjc0OTM4NDU1NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzcyLDggKzM3Miw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpOwogI2VuZGlmCiAKLSAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1l
c3NhZ2VCb2R5KTsKLSAgICB2b2lkIGhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24qLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBVc2VyRGF0YSYgbWVzc2Fn
ZUJvZHksIFVzZXJEYXRhJiByZXR1cm5Vc2VyRGF0YSk7CisgICAgdm9pZCBoYW5kbGVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJE
YXRhJiBtZXNzYWdlQm9keSk7CisgICAgdm9pZCBoYW5kbGVTeW5jaHJvbm91c01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEm
IG1lc3NhZ2VCb2R5LCBVc2VyRGF0YSYgcmV0dXJuVXNlckRhdGEpOwogCiAgICAgdm9pZCBkaWRH
ZXRTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NEYXRhJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHku
Y3BwCmluZGV4IDA3MjFkYzViZWVlNTM5YWFhZTg2YTExOGJjMDc2MWY0OTM1NWJmZmIuLjVhNzE4
OGI3YTExNDFiNjRmMDBhMjI0YzA3NjJhNDMwZjVmZGMwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcApAQCAtNTcsNyArNTcsNyBA
QCB2b2lkIFNlY0l0ZW1TaGltUHJveHk6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbikKICAgICBjb25uZWN0aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlNlY0l0ZW1TaGltUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9xdWV1ZS5nZXQoKSwgdGhpcyk7CiB9CiAKLXZvaWQgU2VjSXRlbVNoaW1Qcm94eTo6c2VjSXRl
bVJlcXVlc3QoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0YSYgcmVxdWVzdCkKK3ZvaWQgU2VjSXRlbVNoaW1Qcm94
eTo6c2VjSXRlbVJlcXVlc3QoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0YSYgcmVxdWVzdCkKIHsKICAgICBTZWNJ
dGVtUmVzcG9uc2VEYXRhIHJlc3BvbnNlOwogCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgU2VjSXRl
bVNoaW1Qcm94eTo6c2VjSXRlbVJlcXVlc3QoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1
aW50NjRfdCByZXF1CiAgICAgfQogICAgIH0KIAotICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlY0l0ZW1TaGltOjpTZWNJdGVtUmVzcG9uc2UocmVxdWVzdElELCByZXNwb25zZSksIDAp
OworICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U2VjSXRlbVNoaW06OlNlY0l0ZW1SZXNw
b25zZShyZXF1ZXN0SUQsIHJlc3BvbnNlKSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaApp
bmRleCBjNGI5Zjc3NWMxM2EwNjU3YTdmYmRhNzcwZDZmNDJkYjBhNGE2MDAxLi5iMzk5MmZiNDFh
NWIwYmExMzhlNDQzYTU4YTc0OGY2ZmE5MDU1OGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRl
OgogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2VjSXRlbVJlcXVlc3QoSVBDOjpD
b25uZWN0aW9uKiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTZWNJdGVtUmVxdWVzdERhdGEm
KTsKKyAgICB2b2lkIHNlY0l0ZW1SZXF1ZXN0KElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHJl
cXVlc3RJRCwgY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJik7CiAKICAgICBSZWZQdHI8V29ya1F1
ZXVlPiBtX3F1ZXVlOwogfTsK
</data>
<flag name="review"
          id="268899"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>