<?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>99865</bug_id>
          
          <creation_ts>2012-10-19 12:39:24 -0700</creation_ts>
          <short_desc>Remove ::encode template specializations and just use overloads</short_desc>
          <delta_ts>2012-10-22 04:28:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>99977</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746540</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 12:39:24 -0700</bug_when>
    <thetext>Remove ::encode template specializations and just use overloads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746546</commentid>
    <comment_count>1</comment_count>
      <attachid>169677</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 12:41:25 -0700</bug_when>
    <thetext>Created attachment 169677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746724</commentid>
    <comment_count>2</comment_count>
      <attachid>169677</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 15:58:48 -0700</bug_when>
    <thetext>Comment on attachment 169677
Patch

Attachment 169677 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14471229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746978</commentid>
    <comment_count>3</comment_count>
      <attachid>169769</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-20 10:57:32 -0700</bug_when>
    <thetext>Created attachment 169769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746996</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-20 14:27:39 -0700</bug_when>
    <thetext>Committed r131990: &lt;http://trac.webkit.org/changeset/131990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747405</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-22 04:16:53 -0700</bug_when>
    <thetext>It appears the following test started failing after this patch:
plugins/npruntime/remove-property.html

Confirmed on both Mac port:
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r131990%20(2531)/plugins/npruntime/remove-property-pretty-diff.html

And EFL port:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r132058%20%284843%29/plugins/npruntime/remove-property-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747411</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-22 04:28:48 -0700</bug_when>
    <thetext>Also started failing on GTK port after this patch:
http://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20WK2%20%28Tests%29/r131990%20%282682%29/results.html

It seems the test is failing consistently so I filed a bug for it: Bug 99977.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169677</attachid>
            <date>2012-10-19 12:41:25 -0700</date>
            <delta_ts>2012-10-20 10:57:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99865-20121019124008.patch</filename>
            <type>text/plain</type>
            <size>39877</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjMyM2Q4MTkzZmNhYmU2
YjEyMDJhYTI5YWM0NzEyM2U1ZGYzN2QyYS4uNmRkN2E3ZDFiODhiMjlhMWYxNGVmYzU3NGRlYThm
ZmNkNzExNmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEyLTEwLTE5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIDo6ZW5j
b2RlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBhbmQganVzdCB1c2Ugb3ZlcmxvYWRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg2NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2YgdGhl
IHZhcmlvdXMgZW5jb2RlIGZ1bmN0aW9ucyBhbmQganVzdCB1c2Ugb3ZlcmxvYWRpbmcgaW5zdGVh
ZC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuY3BwOgorICAg
ICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rl
ci5jcHA6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI6OmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oOgorICAg
ICAgICAoQXJndW1lbnRFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cjo6ZW5jb2RlRW51bSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlv
bldpbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNz
YWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOUElkZW50aWZpZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOUElkZW50aWZp
ZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZUVuY29kZXI6OmJhc2VFbmNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
IChDb3JlSVBDOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNN
YWMubW06CisgICAgICAgIChDb3JlSVBDOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
S2V5Y2hhaW5BdHRyaWJ1dGUuY3BwOgorICAgICAgICAoQ29yZUlQQzo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9x
dC9Bcmd1bWVudENvZGVyc1F0LmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UXROZXR3b3JrUmVwbHlEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9zb3VwL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL3dpbi9MYXllclRyZWVDb250
ZXh0V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvd2luL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldpbmRvd0dl
b21ldHJ5OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FbmNvZGVyQWRh
cHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVCb29sKToK
KyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZVVJbnQxNik6CisgICAgICAg
IChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVVSW50MzIpOgorICAgICAgICAoV2ViS2l0
OjpFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlVUludDY0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2Rl
ckFkYXB0ZXI6OmVuY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6
OmVuY29kZUludDY0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZUZs
b2F0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZURvdWJsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVTdHJpbmcpOgorCiAyMDEyLTEw
LTE5ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRd
W1dUUl0gcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIgc2hvdWxkIG5vdCBiZSBzZXQgaWYgdGhlIHJl
YWwgcmVuZGVyIGxvb3AgaXMgYWN0aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDIzMmYzOGJiOTQ0YzFhMzFjNTY3ZTJm
ZTNiYTZlYjczZDM2NzljYTAuLmYwYzE3ZDM4ZThlMzgzMDMwMmU4NjJmNmFlZDVlMmRiMTgyZDA0
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgQ1N0cmluZyYgc3RyCiB7CiAg
ICAgLy8gU3BlY2lhbCBjYXNlIHRoZSBudWxsIHN0cmluZy4KICAgICBpZiAoc3RyaW5nLmlzTnVs
bCgpKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQzMl90Pjo6bWF4KCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RkOjpudW1lcmlj
X2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
OTEsMTQgKzkxLDE0IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluCiB7CiAgICAgLy8gU3BlY2lh
bCBjYXNlIHRoZSBudWxsIHN0cmluZy4KICAgICBpZiAoc3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6
bWF4KCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHVpbnQzMl90IGxl
bmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobGVuZ3RoKTsKICAg
ICBib29sIGlzOEJpdCA9IHN0cmluZy5pczhCaXQoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29s
KGlzOEJpdCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGlzOEJpdCk7CiAgICAgaWYgKGlzOEJpdCkK
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHN0cmluZy5jaGFyYWN0ZXJzOCgpKSwgbGVuZ3RoICogc2l6ZW9mKExD
aGFyKSwgX19hbGlnbm9mKExDaGFyKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGFmMTYzYmU2ZDliNjRjMzA5
ZDkxOWFkMWI3MzY1ODhlYjI2MzFjYmEuLmYxNmQ3YzkyZjQ1NTVjMDczY2I1YTA3YzVlYTZjMWQy
ZDlmMjBiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCB0ZW1wbGF0ZTxib29sIGZpeGVkU2l6ZUVs
ZW1lbnRzLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yQXJndW1lbnRDb2RlcjsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JBcmd1bWVudENvZGVyPGZhbHNlLCBUPiB7CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgVmVjdG9y
PFQ+JiB2ZWN0b3IpCiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQodmVjdG9y
LnNpemUoKSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4o
dmVjdG9yLnNpemUoKSkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5z
aXplKCk7ICsraSkKICAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh2ZWN0b3JbaV0pOwogICAg
IH0KQEAgLTEyOSw3ICsxMjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9y
QXJndW1lbnRDb2RlcjxmYWxzZSwgVD4gewogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFZl
Y3RvckFyZ3VtZW50Q29kZXI8dHJ1ZSwgVD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFZlY3RvcjxUPiYgdmVjdG9yKQogICAgIHsKLSAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0KHZlY3Rvci5zaXplKCkpOworICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZlY3Rvci5zaXplKCkpKTsKICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBfX2Fs
aWdub2YoVCkpOwogICAgIH0KICAgICAKQEAgLTE2NCw3ICsxNjQsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaQogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5j
b2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewotICAgICAgICBlbmNvZGVy
LT5lbmNvZGVVSW50NjQoaGFzaE1hcC5zaXplKCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hNYXAuc2l6ZSgpKSk7CiAgICAgICAgIGZvciAodHlw
ZW5hbWUgSGFzaE1hcFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGFzaE1hcC5iZWdpbigpLCBl
bmQgPSBoYXNoTWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoKml0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAKaW5kZXggOWRmNTFlYzE5MWJmMGNlYjU4NTA0OTBk
ZWJmN2FiZDZlNGNhZWZjNi4uOTQ4MDExMzJmMDgyNDBjNDA5NTNiZmFkMjRmOTViZTViYWFhYzZk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudEVu
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRF
bmNvZGVyLmNwcApAQCAtMTAxLDYyICsxMDEsNjAgQEAgdm9pZCBBcmd1bWVudEVuY29kZXI6OmVu
Y29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgdW4K
IAogdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNv
bnN0IERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7Ci0gICAgLy8gRW5jb2RlIHRoZSBz
aXplLgotICAgIGVuY29kZVVJbnQ2NChzdGF0aWNfY2FzdDx1aW50NjRfdD4oZGF0YVJlZmVyZW5j
ZS5zaXplKCkpKTsKLQorICAgIGVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4oZGF0YVJlZmVy
ZW5jZS5zaXplKCkpKTsKICAgICBlbmNvZGVGaXhlZExlbmd0aERhdGEoZGF0YVJlZmVyZW5jZS5k
YXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpLCAxKTsKIH0KIAotdm9pZCBBcmd1bWVudEVuY29k
ZXI6OmVuY29kZUJvb2woYm9vbCBuKQordm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShib29s
IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7
CiAgICAgCiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KGJ1ZmZlcikgPSBuOwogfQogCi12
b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlVUludDE2KHVpbnQxNl90IG4pCit2b2lkIEFyZ3Vt
ZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQxNl90IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0g
Z3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CiAKICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50
MTZfdCo+KGJ1ZmZlcikgPSBuOwogfQogCi12b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlVUlu
dDMyKHVpbnQzMl90IG4pCit2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQzMl90IG4p
CiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CiAg
ICAgCiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihidWZmZXIpID0gbjsKIH0KIAot
dm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZVVJbnQ2NCh1aW50NjRfdCBuKQordm9pZCBBcmd1
bWVudEVuY29kZXI6OmVuY29kZSh1aW50NjRfdCBuKQogewogICAgIHVpbnQ4X3QqIGJ1ZmZlciA9
IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwogICAgIAogICAgICpyZWludGVycHJldF9jYXN0
PHVpbnQ2NF90Kj4oYnVmZmVyKSA9IG47CiB9CiAKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNv
ZGVJbnQzMihpbnQzMl90IG4pCit2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGludDMyX3Qg
bikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsK
ICAgICAKICAgICAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4oYnVmZmVyKSA9IG47CiB9CiAK
LXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGVJbnQ2NChpbnQ2NF90IG4pCit2b2lkIEFyZ3Vt
ZW50RW5jb2Rlcjo6ZW5jb2RlKGludDY0X3QgbikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBn
cm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKICAgICAKICAgICAqcmVpbnRlcnByZXRfY2FzdDxp
bnQ2NF90Kj4oYnVmZmVyKSA9IG47CiB9CiAKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGVG
bG9hdChmbG9hdCBuKQordm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShmbG9hdCBuKQogewog
ICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwogCiAgICAg
KnJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXIpID0gbjsKIH0KIAotdm9pZCBBcmd1bWVu
dEVuY29kZXI6OmVuY29kZURvdWJsZShkb3VibGUgbikKK3ZvaWQgQXJndW1lbnRFbmNvZGVyOjpl
bmNvZGUoZG91YmxlIG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2Yobiks
IHNpemVvZihuKSk7CiAKQEAgLTE3NSwxMyArMTczLDQgQEAgVmVjdG9yPEF0dGFjaG1lbnQ+IEFy
Z3VtZW50RW5jb2Rlcjo6cmVsZWFzZUF0dGFjaG1lbnRzKCkKICAgICByZXR1cm4gbmV3TGlzdDsK
IH0KIAotI2lmbmRlZiBOREVCVUcKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjpkZWJ1ZygpCi17Ci0g
ICAgcHJpbnRmKCJBcmd1bWVudEVuY29kZXI6OmRlYnVnKClcbiIpOwotICAgIHByaW50ZigiTnVt
YmVyIG9mIEF0dGFjaG1lbnRzOiAlZFxuIiwgKGludCltX2F0dGFjaG1lbnRzLnNpemUoKSk7Ci0g
ICAgcHJpbnRmKCJTaXplIG9mIGJ1ZmZlcjogJWRcbiIsIChpbnQpbV9idWZmZXJTaXplKTsKLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudEVuY29kZXIuaAppbmRleCA5YmZlYTAzMDQyOTFjMjUy
ZjYzNmZhODZjYjhkNWE5MzNiMDZhYTg4Li41NDc4MDEzNGEzM2EzMTNjNzIxMTZiYTMyZmQ0ZWE5
N2Y0NmI4ZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Fy
Z3VtZW50RW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRFbmNvZGVyLmgKQEAgLTQ1LDIwICs0NSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNv
ZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgdW5zaWduZWQgYWxpZ25t
ZW50KTsKICAgICB2b2lkIGVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNvbnN0IERhdGFS
ZWZlcmVuY2UmKTsKIAotICAgIHZvaWQgZW5jb2RlQm9vbChib29sKTsKLSAgICB2b2lkIGVuY29k
ZVVJbnQxNih1aW50MTZfdCk7Ci0gICAgdm9pZCBlbmNvZGVVSW50MzIodWludDMyX3QpOwotICAg
IHZvaWQgZW5jb2RlVUludDY0KHVpbnQ2NF90KTsKLSAgICB2b2lkIGVuY29kZUludDMyKGludDMy
X3QpOwotICAgIHZvaWQgZW5jb2RlSW50NjQoaW50NjRfdCk7Ci0gICAgdm9pZCBlbmNvZGVGbG9h
dChmbG9hdCk7Ci0gICAgdm9pZCBlbmNvZGVEb3VibGUoZG91YmxlKTsKKyAgICB2b2lkIGVuY29k
ZShib29sKTsKKyAgICB2b2lkIGVuY29kZSh1aW50MTZfdCk7CisgICAgdm9pZCBlbmNvZGUodWlu
dDMyX3QpOworICAgIHZvaWQgZW5jb2RlKHVpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZShpbnQz
Ml90KTsKKyAgICB2b2lkIGVuY29kZShpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZShmbG9hdCk7
CisgICAgdm9pZCBlbmNvZGUoZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZv
aWQgZW5jb2RlRW51bShUIHQpCiAgICAgewogICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2Yo
VCkgPD0gc2l6ZW9mKHVpbnQ2NF90KSwgZW51bV90eXBlX211c3Rfbm90X2JlX2xhcmdlcl90aGFu
XzY0X2JpdHMpOwogCi0gICAgICAgIGVuY29kZVVJbnQ2NChzdGF0aWNfY2FzdDx1aW50NjRfdD4o
dCkpOworICAgICAgICBlbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHQpKTsKICAgICB9CiAg
ICAgCiAgICAgLy8gR2VuZXJpYyB0eXBlIGVuY29kZSBmdW5jdGlvbi4KQEAgLTczLDEwICs3Myw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEF0dGFjaG1lbnQoY29uc3QgQXR0YWNobWVudCYpOwog
ICAgIFZlY3RvcjxBdHRhY2htZW50PiByZWxlYXNlQXR0YWNobWVudHMoKTsKIAotI2lmbmRlZiBO
REVCVUcKLSAgICB2b2lkIGRlYnVnKCk7Ci0jZW5kaWYKLQogcHJvdGVjdGVkOgogICAgIEFyZ3Vt
ZW50RW5jb2RlcigpOwogCkBAIC05Miw0NiArODgsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxB
dHRhY2htZW50PiBtX2F0dGFjaG1lbnRzOwogfTsKIAotdGVtcGxhdGU8PiBpbmxpbmUgdm9pZCBB
cmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCBib29sJiBuKQotewotICAgIGVuY29kZUJvb2wo
bik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUo
Y29uc3QgdWludDE2X3QmIG4pCi17Ci0gICAgZW5jb2RlVUludDE2KG4pOwotfQotCi10ZW1wbGF0
ZTw+IGlubGluZSB2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVpbnQzMl90JiBu
KQotewotICAgIGVuY29kZVVJbnQzMihuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgdm9pZCBB
cmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCB1aW50NjRfdCYgbikKLXsKLSAgICBlbmNvZGVV
SW50NjQobik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIHZvaWQgQXJndW1lbnRFbmNvZGVyOjpl
bmNvZGUoY29uc3QgaW50MzJfdCYgbikKLXsKLSAgICBlbmNvZGVJbnQzMihuKTsKLX0KLQotdGVt
cGxhdGU8PiBpbmxpbmUgdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCBpbnQ2NF90
JiBuKQotewotICAgIGVuY29kZUludDY0KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSB2b2lk
IEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IGZsb2F0JiBuKQotewotICAgIGVuY29kZUZs
b2F0KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSB2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5j
b2RlKGNvbnN0IGRvdWJsZSYgbikKLXsKLSAgICBlbmNvZGVEb3VibGUobik7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIENvcmVJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50RW5jb2Rlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3Bw
CmluZGV4IGM5MWU3YzMzMTU0M2UzNWE2MzYwOGJjZTdlNDUxNmNjZmJjNWFiY2EuLjRlY2ZjMTdj
MGE4OTdkMDU4ODI0ZTY5OWUzYjFhYmEyM2QxZjFmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCkBAIC0yODgsNyAr
Mjg4LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIFBhc3NPd25QdHI8TWVzc2FnZUVuY28KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gV2UgcHV0IHRoZSBtZXNzYWdlIElEIGxhc3QuCi0gICAgZW5jb2Rlci0+ZW5jb2Rl
VUludDMyKG1lc3NhZ2VJRC50b0ludCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1lc3NhZ2VJRC50b0ludCgpKSk7CiAKICAgICAvLyBXcml0ZSB0aGUgb3V0
Z29pbmcgbWVzc2FnZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFj
L1NoYXJlZE1lbW9yeU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVk
TWVtb3J5TWFjLmNwcAppbmRleCBkYjJhMTg3NGI3MGU1Y2RhYzg0Zjc1Y2U3YjA2MDI1NDA3Mjdi
MWMxLi4zMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAogCiB2b2lk
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChtX3NpemUpOworICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9zaXplKSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KG1fcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKICAgICBtX3BvcnQgPSBNQUNIX1BPUlRfTlVMTDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggYzdlNjc3OThjYWZh
YjQ4Y2M2YmY0NTMyMmJlYWUyNzcyMjhmYzI5Mi4uMmFhMjhmOGMwYmQ4MmFhMDVlNzExOGNkN2Zj
NzY5MzMyZTQwNWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJl
ZE1lbW9yeVdpbi5jcHAKQEAgLTUzLDE2ICs1MywxNiBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjppc051bGwoKSBjb25zdAogCiB2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIt
PmVuY29kZVVJbnQ2NChtX3NpemUpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9zaXplKSk7CiAKICAgICAvLyBIYW5kIG9mZiBvd25lcnNoaXAgb2Ygb3VyIEhB
TkRMRSB0byB0aGUgcmVjZWl2aW5nIHByb2Nlc3MuIEl0IHdpbGwgY2xvc2UgaXQgZm9yIHVzLgog
ICAgIC8vIEZJWE1FOiBJZiB0aGUgcmVjZWl2aW5nIHByb2Nlc3MgY3Jhc2hlcyBiZWZvcmUgaXQg
cmVjZWl2ZXMgdGhlIG1lbW9yeSwgdGhlIG1lbW9yeSB3aWxsIGJlCiAgICAgLy8gbGVha2VkLiBT
ZWUgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDc1MDI+LgotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2
NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOworICAgIGVuY29kZXItPmVu
Y29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOwogICAgIG1faGFuZGxl
ID0gMDsKIAogICAgIC8vIFNlbmQgYWxvbmcgb3VyIFBJRCBzbyB0aGF0IHRoZSByZWNlaXZpbmcg
cHJvY2VzcyBjYW4gZHVwbGljYXRlIHRoZSBIQU5ETEUgZm9yIGl0cyBvd24gdXNlLgotICAgIGVu
Y29kZXItPmVuY29kZVVJbnQzMig6OkdldEN1cnJlbnRQcm9jZXNzSWQoKSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pig6OkdldEN1cnJlbnRQcm9jZXNzSWQoKSkp
OwogfQogCiBzdGF0aWMgYm9vbCBnZXREdXBsaWNhdGVkSGFuZGxlKEhBTkRMRSBzb3VyY2VIYW5k
bGUsIERXT1JEIHNvdXJjZVBJRCwgSEFORExFJiBkdXBsaWNhdGVkSGFuZGxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
Y2Q4YjgzYzJjM2ExMmM0MzVjODM2ZTVkNGE1YjUzMGI2YWY1MWRiYy4uYTY4NjI5NDZmNTI3ZDUw
NWJmMGQ2MDE0NmM3Zjc2Mjg4YWRkOTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgVHJhbnMKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKGZpbHRlcnMuc2l6ZSgpKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMuc2l6ZSgpKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbiogZmlsdGVyID0gZmlsdGVycy5hdChpKTsKICAgICAgICAgRmlsdGVy
T3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBmaWx0ZXItPmdldE9wZXJhdGlvblR5cGUo
KTsKQEAgLTExMiwxMyArMTEyLDEzIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwKICAgICAgICAg
Y2FzZSBGaWx0ZXJPcGVyYXRpb246OlNFUElBOgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6U0FUVVJBVEU6CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpIVUVfUk9UQVRFOgot
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRG91YmxlKHN0YXRpY19jYXN0PGNvbnN0IEJhc2lj
Q29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb24qPihmaWx0ZXIpLT5hbW91bnQoKSk7CisgICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxjb25z
dCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKS0+YW1vdW50KCkpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6SU5WRVJU
OgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6QlJJR0hUTkVTUzoKICAgICAgICAgY2Fz
ZSBGaWx0ZXJPcGVyYXRpb246OkNPTlRSQVNUOgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6T1BBQ0lUWToKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZURvdWJsZShzdGF0aWNfY2Fz
dDxjb25zdCBCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKS0+
YW1vdW50KCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGRvdWJs
ZT4oc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlv
bio+KGZpbHRlciktPmFtb3VudCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBGaWx0ZXJPcGVyYXRpb246OkJMVVI6CiAgICAgICAgICAgICBBcmd1bWVudENvZGVyPExlbmd0
aD46OmVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxjb25zdCBCbHVyRmlsdGVyT3BlcmF0aW9u
Kj4oZmlsdGVyKS0+c3RkRGV2aWF0aW9uKCkpOwpAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9X
OiB7CiAgICAgICAgICAgICBjb25zdCBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKiBzaGFkb3cg
PSBzdGF0aWNfY2FzdDxjb25zdCBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKTsK
ICAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2Rlciwgc2hh
ZG93LT5sb2NhdGlvbigpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUludDMyKHNoYWRv
dy0+c3RkRGV2aWF0aW9uKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19j
YXN0PGludDMyX3Q+KHNoYWRvdy0+c3RkRGV2aWF0aW9uKCkpKTsKICAgICAgICAgICAgIEFyZ3Vt
ZW50Q29kZXI8Q29sb3I+OjplbmNvZGUoZW5jb2Rlciwgc2hhZG93LT5jb2xvcigpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyLAogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtaXhTZXR0aW5ncy5j
b21wb3NpdGVPcGVyYXRvcik7CiAKICAgICAgICAgICAgIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QgcGFyYW1ldGVycyA9IGN1c3RvbU9wZXJhdGlvbi0+cGFyYW1ldGVycygpOwotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4ocGFyYW1ldGVycy5zaXplKCkp
KTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+IHBh
cmFtZXRlciA9IHBhcmFtZXRlcnNbaV07CiAgICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHBhcmFtZXRlci0+bmFtZSgpKTsKQEAgLTE1NSwxNCArMTU1LDE0IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlciwKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmFtZXRlci0+cGFyYW1ldGVyVHlw
ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI6OkFSUkFZ
OiB7CiAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVyKiBhcnJh
eVBhcmFtZXRlciA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVyKj4ocGFy
YW1ldGVyLmdldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDMy
KGFycmF5UGFyYW1ldGVyLT5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGFycmF5UGFyYW1ldGVyLT5zaXplKCkpKTsKICAg
ICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBhcnJheVBhcmFtZXRlci0+
c2l6ZSgpOyArK2opCiAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoYXJy
YXlQYXJhbWV0ZXItPnZhbHVlQXQoaikpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXI6Ok5VTUJFUjogewogICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWx0ZXJOdW1iZXJQYXJh
bWV0ZXIqIG51Ym1lclBhcmFtZXRlciA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck51bWJlclBh
cmFtZXRlcio+KHBhcmFtZXRlci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZVVJbnQzMihudWJtZXJQYXJhbWV0ZXItPnNpemUoKSk7CisgICAgICAgICAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obnVibWVyUGFyYW1ldGVy
LT5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBu
dWJtZXJQYXJhbWV0ZXItPnNpemUoKTsgKytqKQogICAgICAgICAgICAgICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKG51Ym1lclBhcmFtZXRlci0+dmFsdWVBdChqKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNTEwLDExICs1MTAsMTEgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRy
YW5zZm9ybU9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBUcmFu
c2YKIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmVu
Y29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZVRva2VuJiB0b2tlbikKIHsKICNpZiBPUyhEQVJXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2Rl
VUludDMyKHRva2VuLmZyb250QnVmZmVySGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50
MzIodG9rZW4uYmFja0J1ZmZlckhhbmRsZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19j
YXN0PHVpbnQzMl90Pih0b2tlbi5mcm9udEJ1ZmZlckhhbmRsZSkpOworICAgIGVuY29kZXItPmVu
Y29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9rZW4uYmFja0J1ZmZlckhhbmRsZSkpOwogI2Vu
ZGlmCiAjaWYgT1MoTElOVVgpCi0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKHRva2VuLmZyb250
QnVmZmVySGFuZGxlKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHRva2VuLmZyb250QnVmZmVySGFuZGxlKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCmluZGV4IDBmOWQwNmNhMTZhZmNmOTll
OWU1NzQ1ZDk1NGUzMjczYzhlZDhhOGYuLjdlNmRmM2E1Y2JmYzhjNjdjODRkN2I2Nzg1N2ZjN2M0
OWUxNTdhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5m
by5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogCiAjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBib29s
IGhhZE9wdGlvbnMgPSBvcHRpb25zOwotICAgIGVuY29kZXItPmVuY29kZUJvb2woaGFkT3B0aW9u
cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGhhZE9wdGlvbnMpOwogICAgIGlmIChoYWRPcHRpb25z
KQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0
YS5jcHAKaW5kZXggOTQ5YWFkN2MyMTQ5YTQxNGQ5ZmE4MjI2ZWVjZDM2MmI5OTViMTJjNy4uNzQ3
MTcyNTA0YTVmMGM3ZjU2NTEwNWVlMjdhOGJhNWFmN2M3YWU0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgdm9pZCBOUElkZW50aWZpZXJEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGlmIChtX2lzU3RyaW5nKQogICAgICAgICBlbmNvZGVy
LT5lbmNvZGUobV9zdHJpbmcpOwogICAgIGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlSW50
MzIobV9udW1iZXIpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50MzJf
dD4obV9udW1iZXIpKTsKIH0KIAogYm9vbCBOUElkZW50aWZpZXJEYXRhOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBOUElkZW50aWZpZXJEYXRhJiByZXN1bHQpCkBA
IC04NCw3ICs4NCw3IEBAIGJvb2wgTlBJZGVudGlmaWVyRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgTlBJZGVudGlmaWVyRGF0CiAgICAgaWYgKHJlc3VsdC5t
X2lzU3RyaW5nKQogICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3N0cmlu
Zyk7CiAKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlSW50MzIocmVzdWx0Lm1fbnVtYmVyKTsK
KyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHN0YXRpY19jYXN0PGludDMyX3Q+KHJlc3VsdC5t
X251bWJlcikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggMmVjNWJiNGQ1MmIyMDc1MWZkYjU3ZWQ2NjI4
MGVhOTA3YmQzOWI1MC4uOWQ4YWM1YzZiOGY3MmRhMGY4YjA2ZjQ3YWNjZDYwYjVlZTVjNThjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTcwLDEyICs3
MCwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBiYXNlRW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwgQVBJT2JqZWN0OjpUeXBlJiB0eXBlKSBjb25zdCAKICAgICB7CiAgICAg
ICAgIGlmICghbV9yb290KSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIoQVBJ
T2JqZWN0OjpUeXBlTnVsbCk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KEFQSU9iamVjdDo6VHlwZU51bGwpKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAKICAgICAgICAgdHlwZSA9IG1fcm9vdC0+dHlwZSgpOwotICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVVSW50MzIodHlwZSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZSkpOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewog
ICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUFycmF5OiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGZhMWNmZmFkYTgxNGEzMTc5
OGQwYzg3ZThkYTk4MGJiM2YwM2RlNDEuLjk1NzMxMzU4N2MwM2EyYjgzYjk4MDBiZTAyMDVkNTJh
OWQ1NWI5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC0zMjYsMTEgKzMyNiwxMSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29y
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzbwog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY3Vyc29yLmltYWdlKCktPmlzTnVsbCgpKSB7Ci0g
ICAgICAgIGVuY29kZXItPmVuY29kZUJvb2woZmFsc2UpOyAvLyBUaGVyZSBpcyBubyB2YWxpZCBp
bWFnZSBiZWluZyBlbmNvZGVkLgorICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2UpOyAvLyBU
aGVyZSBpcyBubyB2YWxpZCBpbWFnZSBiZWluZyBlbmNvZGVkLgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbCh0cnVlKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUodHJ1ZSk7CiAgICAgZW5jb2RlSW1hZ2UoZW5jb2RlciwgY3Vyc29yLmltYWdlKCkpOwogICAg
IGVuY29kZXItPmVuY29kZShjdXJzb3IuaG90U3BvdCgpKTsKIH0KQEAgLTY0NiwxMSArNjQ2LDEx
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXaW5kb3dGZWF0dXJlcz46OmRlY29kZShBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFdpbmRvd0ZlYXR1CiB2b2lkIEFyZ3VtZW50Q29kZXI8Q29sb3I+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAg
ICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChm
YWxzZSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShmYWxzZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKHRydWUpOworICAgIGVuY29kZXItPmVu
Y29kZSh0cnVlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoY29sb3IucmdiKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggZTE1ZTUzMzgyYTQzMmQzMDdmZWE5NzIxOWI1MTMzZWU1NDMzYjMyMC4uNWRl
YTlhMjdjNDcwNjA2NzA1NTNmMGJmYjdhYTBkMThmODQ1MzIzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAgICAgZW5jb2Rlci0+ZW5j
b2RlKGluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICNpZiBVU0UoQ0ZVUkxTVE9SQUdF
U0VTU0lPTlMpCiAgICAgQ0ZEYXRhUmVmIHN0b3JhZ2VTZXNzaW9uID0gc2VyaWFsaXplZERlZmF1
bHRTdG9yYWdlU2Vzc2lvbi5nZXQoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKHN0b3JhZ2VT
ZXNzaW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oc3RvcmFnZVNl
c3Npb24pKTsKICAgICBpZiAoc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIENvcmVJUEM6OmVuY29k
ZShlbmNvZGVyLCBzdG9yYWdlU2Vzc2lvbik7CiAjZW5kaWYgLy8gVVNFKENGVVJMU1RPUkFHRVNF
U1NJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29k
ZXJzQ0YuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3Bw
CmluZGV4IDM1NTgwYzVjZTQ3NGVlZDkzMWJmZjU1ZmY1NjdhNWVmODJjODk3NDAuLjcyNjFhYmRh
NjgxZjgxZjFmYzMxZmU4ODY4MjQwMTQ5N2RiYWY4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIENGQXJyYXlSZWYgYXJyYXkpCiAKICAgICBD
RkFycmF5R2V0VmFsdWVzKGFycmF5LCBDRlJhbmdlTWFrZSgwLCBzaXplKSwgdmFsdWVzLmRhdGEo
KSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQoc2l6ZSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplKSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIEFTU0VSVCh2YWx1ZXNbaV0pOwogCkBAIC0yNzcs
NyArMjc3LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5Q
dHI8Q0ZBcnJheVJlZj4mIHJlc3VsdCkKIAogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyLCBDRkJvb2xlYW5SZWYgYm9vbGVhbikKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29s
KENGQm9vbGVhbkdldFZhbHVlKGJvb2xlYW4pKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlj
X2Nhc3Q8Ym9vbD4oQ0ZCb29sZWFuR2V0VmFsdWUoYm9vbGVhbikpKTsKIH0KIAogYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZCb29sZWFuUmVmPiYgcmVz
dWx0KQpAQCAtMzEwLDcgKzMxMCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgUmV0YWluUHRyPENGRGF0YVJlZj4mIHJlc3VsdCkKIAogdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyLCBDRkRhdGVSZWYgZGF0ZSkKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVEb3VibGUoQ0ZEYXRlR2V0QWJzb2x1dGVUaW1lKGRhdGUpKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihDRkRhdGVHZXRBYnNvbHV0ZVRpbWUoZGF0ZSkpKTsKIH0K
IAogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZEYXRl
UmVmPiYgcmVzdWx0KQpAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwgQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpCiAgICAgCiAgICAgQ0ZE
aWN0aW9uYXJ5R2V0S2V5c0FuZFZhbHVlcyhkaWN0aW9uYXJ5LCBrZXlzLmRhdGEoKSwgdmFsdWVz
LmRhdGEoKSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQoc2l6ZSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplKSk7CiAKICAgICBmb3IgKENGSW5k
ZXggaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgQVNTRVJUKGtleXNbaV0pOwpAQCAt
NDk1LDcgKzQ5NSw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiYgcmVzdWx0KQogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyLCBDRlVSTFJlZiB1cmwpCiB7CiAgICAgQ0ZVUkxSZWYgYmFzZVVSTCA9IENGVVJM
R2V0QmFzZVVSTCh1cmwpOwotICAgIGVuY29kZXItPmVuY29kZUJvb2woYmFzZVVSTCk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KGJhc2VVUkwpKTsKICAgICBpZiAoYmFz
ZVVSTCkKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIGJhc2VVUkwpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA3ZTA2YWEzODliOWJl
MWJkN2VmMmU1MThlYWYyNTljOTc0MzQ5ZmRhLi5lYzZkMzhiZTQxMDg3ZjQyNzdhNTY4OTgyODA4
ODVmZWY5Y2MzYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3Vt
ZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRD
b2RlcnNNYWMubW0KQEAgLTE5NiwxMSArMTk2LDExIEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwgTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcpCiAgICAgICAgIHBvc2l0
aW9uID0gTlNNYXhSYW5nZShlZmZlY3RpdmVSYW5nZSk7CiAgICAgfQogCi0gICAgZW5jb2Rlci0+
ZW5jb2RlVUludDY0KHJhbmdlcy5zaXplKCkpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNf
Y2FzdDx1aW50NjRfdD4ocmFuZ2VzLnNpemUoKSkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCByYW5nZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0
KHJhbmdlc1tpXS5maXJzdC5sb2NhdGlvbik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVVJbnQ2
NChyYW5nZXNbaV0uZmlyc3QubGVuZ3RoKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihyYW5nZXNbaV0uZmlyc3QubG9jYXRpb24pKTsKKyAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYW5nZXNbaV0uZmlyc3QubGVuZ3Ro
KSk7CiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCByYW5nZXNbaV0uc2Vjb25kLmdl
dCgpKTsKICAgICB9CiB9CkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyLCBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCiAgICAgTlNBcnJheSAq
a2V5cyA9IFtkaWN0aW9uYXJ5IGFsbEtleXNdOwogICAgIE5TQXJyYXkgKnZhbHVlcyA9IFtkaWN0
aW9uYXJ5IGFsbFZhbHVlc107CiAKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQoc2l6ZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplKSk7CiAKICAgICBm
b3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgaWQga2V5ID0g
W2tleXMgb2JqZWN0QXRJbmRleDppXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvS2V5Y2hhaW5BdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9L
ZXljaGFpbkF0dHJpYnV0ZS5jcHAKaW5kZXggYjNkNjVjMmI3OGRlOGVmMGM5NzRiZWFkYWFmZTAz
MzQzYTMwYjhkOC4uZWIyODRiY2Y3ZjNjOTBlNDI2ODQ3OTA1OWY3M2IxOGU4ODQ2ZTg5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9LZXljaGFpbkF0dHJpYnV0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9LZXljaGFpbkF0dHJpYnV0ZS5jcHAKQEAg
LTUzLDggKzUzLDggQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFdlYktpdDo6S2V5Y2hhaW5BdHRyaWJ1
dGUmIGF0dHJpYnV0ZSkKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGF0dHJpYnV0ZS50YWcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGF0dHJp
YnV0ZS5kYXRhKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGF0
dHJpYnV0ZS50YWcpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oYXR0
cmlidXRlLmRhdGEpKTsKICAgICBpZiAoYXR0cmlidXRlLmRhdGEpCiAgICAgICAgIENvcmVJUEM6
OmVuY29kZShlbmNvZGVyLCBhdHRyaWJ1dGUuZGF0YS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbQppbmRleCA1
YWU3NzJjZGNhN2Q5YTFkOTFhZDQyYzQ0NGFkZDBmYmE3OGQwNjhkLi5kYjJiOTBlNzVkMDhhODFl
MjQ2OTgyZDNjNzU4ODNhMjBhMWQyYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KQEAgLTUyLDExICs1MiwxMSBAQCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJl
ZiBjZXJ0aWZpY2F0ZUNoYWluKQogdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBpZiAoIW1f
Y2VydGlmaWNhdGVDaGFpbikgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGZhbHNlKTsK
KyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGVuY29kZXItPmVuY29kZUJvb2wodHJ1ZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHRy
dWUpOwogICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hF
eHRlbnNpb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNp
b25NYWMubW0KaW5kZXggODY4N2E0MTRhZmQyN2U2N2QwMmZhNjQxODYyMmUyOTI1NjYzYjgxNy4u
MTA5ZDFlYjg4MThlMWUxZWZmODAxOTMyNGE3NDk2YzJlNzg3MDBhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQpAQCAtMTI4LDcgKzEy
OCw3IEBAIHNpemVfdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6c2l6ZSgpIGNvbnN0
CiAKIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUlu
dDY0KHNpemUoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pihz
aXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2l6ZTsgKytpKQogICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUobV9kYXRhW2ldKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcAppbmRleCBhYTFjNDU5MzJiMDYxYjg5
N2M1ZTk3ZTU4MzJjNzZlMjZmNTRiYTdhLi4yZmIyZjI4NDU4NzFlM2ZmMTM2NmI5MDY2NjRhN2Rm
YWE4MGRiMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1S
ZXF1ZXN0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVx
dWVzdERhdGEuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU2VjSXRlbVJlcXVlc3REYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogCiAgICAgQ29y
ZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fcXVlcnlEaWN0aW9uYXJ5LmdldCgpKTsKIAotICAgIGVu
Y29kZXItPmVuY29kZUJvb2wobV9hdHRyaWJ1dGVzVG9NYXRjaC5nZXQoKSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fYXR0cmlidXRlc1RvTWF0Y2gpKTsKICAgICBp
ZiAobV9hdHRyaWJ1dGVzVG9NYXRjaCkKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIs
IG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKaW5kZXggNzU4M2UwMmUxM2Q2NDhjMTBk
ZTFkOGE2NDE1MjVkNTNmMzM5NmRiMi4uMGNjOGYxMzQ3MWQ0YzFmYTIwNjZjYTk5MzU1MGQ3OWNi
Zjc3NjM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVz
cG9uc2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNw
b25zZURhdGEuY3BwCkBAIC00Myw4ICs0Myw4IEBAIFNlY0l0ZW1SZXNwb25zZURhdGE6OlNlY0l0
ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMgcmVzdWx0Q29kZSwgQ0ZUeXBlUmVmIHJlc3VsdE9iCiAK
IHZvaWQgU2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVJbnQ2NCgoaW50NjRfdClt
X3Jlc3VsdENvZGUpOwotICAgIGVuY29kZXItPmVuY29kZUJvb2wobV9yZXN1bHRPYmplY3QuZ2V0
KCkpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxpbnQ2NF90PihtX3Jlc3VsdENv
ZGUpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9yZXN1bHRPYmpl
Y3QuZ2V0KCkpKTsKICAgICBpZiAobV9yZXN1bHRPYmplY3QpCiAgICAgICAgIENvcmVJUEM6OmVu
Y29kZShlbmNvZGVyLCBtX3Jlc3VsdE9iamVjdC5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCmlu
ZGV4IDg3NmY4NmIyMWZlMGU5MjcwYjNmMmQ5ZmM3YjNhNjJhNDdhZGM1NGQuLmRjYmY5OTQ1OGM2
OTVhMjhkNzBhMTZiMmRjNGNlNzIyZTkwZjI2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCkBAIC0xMjcs
MTUgKzEyNywxNSBAQCB2b2lkIFNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90eXBlKTsKIAotICAgIGVuY29kZXItPmVuY29kZUJvb2wobV9rZXljaGFpbkl0
ZW0pOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRl
bSkpOwogICAgIGlmIChtX2tleWNoYWluSXRlbSkKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVu
Y29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZVVJbnQz
MihtX2tleWNoYWluQXR0cmlidXRlcy5zaXplKCkpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0
aWNfY2FzdDxpbnQzMl90PihtX2tleWNoYWluQXR0cmlidXRlcy5zaXplKCkpKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMCwgY291bnQgPSBtX2tleWNoYWluQXR0cmlidXRlcy5zaXplKCk7IGkgPCBj
b3VudDsgKytpKQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkF0
dHJpYnV0ZXNbaV0pOwogICAgIAotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChtX2l0ZW1DbGFz
cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2l0ZW1DbGFz
cykpOwogICAgIG1fZGF0YVJlZmVyZW5jZS5lbmNvZGUoZW5jb2Rlcik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VE
YXRhLmNwcAppbmRleCA3MGIyODRhN2Q5Y2E4MzljMGNhYWIzM2Y1ZTQ3ZTZiYjVlMGMwNTJiLi4y
NDdmODliNmFjOTlmODJmODcxZjc5M2Q4OTA2YTNiZTQ4NDk5YTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEu
Y3BwCkBAIC02NSwxNyArNjUsMTcgQEAgU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhOjpTZWNL
ZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMgcmVzdWx0Q29kZSkKIAogdm9pZCBTZWNL
ZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlSW50NjQoKGludDY0X3QpbV9y
ZXN1bHRDb2RlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIobV9pdGVtQ2xhc3MpOwotICAg
IGVuY29kZXItPmVuY29kZVVJbnQzMihtX2F0dHJpYnV0ZXMuc2l6ZSgpKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV9yZXN1bHRDb2RlKSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29k
ZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9hdHRyaWJ1dGVzLnNpemUoKSkpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IG1fYXR0cmlidXRlcy5zaXplKCk7IGkgPCBj
b3VudDsgKytpKQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9hdHRyaWJ1dGVz
W2ldKTsKIAotICAgIGVuY29kZXItPmVuY29kZUJvb2wobV9kYXRhLmdldCgpKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CiAgICAgaWYgKG1fZGF0YSkK
ICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fZGF0YS5nZXQoKSk7CiAKLSAgICBl
bmNvZGVyLT5lbmNvZGVCb29sKG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9rZXljaGFpbkl0ZW0pKTsKICAgICBpZiAobV9rZXlj
aGFpbkl0ZW0pCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2tleWNoYWluSXRl
bS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvQXJndW1l
bnRDb2RlcnNRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvQXJndW1lbnRDb2RlcnNR
dC5jcHAKaW5kZXggYTQzOWNhZmYxZTQ4OGUxMDJjNTUwYWQwNGYzNDZkNTk5NmRkMTg5Mi4uNjdk
YWQ0ODI5NmM2MTFiZDMxMDkwZmZkYTc1ZjQ2MjgxZTUyYzExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9xdC9Bcmd1bWVudENvZGVyc1F0LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyLCBjb25zdCBEcgogICAgIGVuY29kZXItPmVuY29kZSgodWludDY0X3QpZHJhZ0Rh
dGEuZmxhZ3MoKSk7CiAKICAgICBib29sIGhhc1BsYXRmb3JtRGF0YSA9IGRyYWdEYXRhLnBsYXRm
b3JtRGF0YSgpOwotICAgIGVuY29kZXItPmVuY29kZUJvb2woaGFzUGxhdGZvcm1EYXRhKTsKKyAg
ICBlbmNvZGVyLT5lbmNvZGUoaGFzUGxhdGZvcm1EYXRhKTsKICAgICBpZiAoIWhhc1BsYXRmb3Jt
RGF0YSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9R
dE5ldHdvcmtSZXBseURhdGEuY3BwCmluZGV4IGYxNDA0MjcyN2JmOGNmZjAzYjllN2FiMGQ0YzFj
MjJkYTA3MzE3YzAuLjkwZjY4ZTc4ZmI1OWVlYTRjNTc2MjRhYzY3N2VlN2ZmMzg4ZTQyN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIHZvaWQgUXROZXR3b3JrUmVwbHlEYXRhOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXItPmVuY29kZSht
X3VybFN0cmluZyk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fY29udGVudFR5cGUpOwotICAgIGVu
Y29kZXItPmVuY29kZVVJbnQ2NChtX2NvbnRlbnRMZW5ndGgpOworICAgIGVuY29kZXItPmVuY29k
ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9jb250ZW50TGVuZ3RoKSk7CiAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fcmVwbHlVdWlkKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobV9kYXRhSGFuZGxlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvLmNwcAppbmRleCBjN2JhYmEzZWVjZmJjMjk0NGU5NDE5NDI3NmE5ZDYxNWM0YjVi
ZjllLi4zODhiZTdhZDhkMTljMDhkY2JjNWZlNWJhYWVjYWVmZWE4MzUyOWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwCkBAIC01NCwxOCArNTQsMTggQEAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86On5QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbygpCiB2b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewogICAgIGlmICghbV9j
ZXJ0aWZpY2F0ZSkgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGZhbHNlKTsKKyAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IEdCeXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7CiAgICAgZ19vYmplY3RfZ2V0KEdfT0JK
RUNUKG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlmaWNhdGUiLCAmY2VydGlmaWNhdGVEYXRh
LCBOVUxMKTsKICAgICBpZiAoIWNlcnRpZmljYXRlRGF0YSkgewotICAgICAgICBlbmNvZGVyLT5l
bmNvZGVCb29sKGZhbHNlKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVuY29kZXItPmVuY29kZUJvb2wodHJ1ZSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKHRydWUpOwogICAgIEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNh
dGUgPSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKICAgICBlbmNvZGVyLT5lbmNvZGVWYXJp
YWJsZUxlbmd0aEJ5dGVBcnJheShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKGNlcnRpZmljYXRlLT5k
YXRhLCBjZXJ0aWZpY2F0ZS0+bGVuKSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihtX3Rsc0Vycm9ycykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dpbi9MYXllclRyZWVDb250ZXh0V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
aW4vTGF5ZXJUcmVlQ29udGV4dFdpbi5jcHAKaW5kZXggMmNkZjJiMzljZmNkNTE4Y2Q4ZjZkNWQ5
YWZhMWMyNWJlZWRiM2VjMi4uYWQwNWMxZDAzMmE0MDAwMzU5NWIwOTMxYjIzNGFkYmUxOGRkMjMx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9MYXllclRyZWVDb250ZXh0
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL0xheWVyVHJlZUNvbnRleHRX
aW4uY3BwCkBAIC00MSw3ICs0MSw3IEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXllclRyZWVDb250
ZXh0KCkKIAogdm9pZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVp
bnRlcnByZXRfY2FzdDx1aW50NjRfdD4od2luZG93KSk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29u
dGV4dDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVl
Q29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4v
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKaW5kZXggNGI4M2ZiZDUzMjgxODc0ODk5N2ZhMWZh
N2RjYWY0NDVmN2QzNjAxZC4uMDhjZDRlMmIzMzJiMDRiZGFhNGI5MTQ3YjU5MWRkN2MwYTNiMTc0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9QbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mby5jcHAKQEAgLTExMCwxMiArMTEwLDEyIEBAIHZvaWQgUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgLy8gU3BlY2lhbCBjYXNlIG5vIGNlcnRpZmljYXRlcwogICAgIGlmIChtX2NlcnRp
ZmljYXRlQ2hhaW4uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOworICAgICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIHVpbnQ2NF90IGxlbmd0aCA9IG1fY2VydGlmaWNhdGVDaGFpbi5z
aXplKCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0KGxlbmd0aCk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKGxlbmd0aCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KQogICAgICAgICBlbmNvZGVyLT5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShDb3JlSVBD
OjpEYXRhUmVmZXJlbmNlKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX2NlcnRpZmljYXRlQ2hhaW5b
aV0tPnBiQ2VydEVuY29kZWQpLCBtX2NlcnRpZmljYXRlQ2hhaW5baV0tPmNiQ2VydEVuY29kZWQp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vV2luZG93R2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHAKaW5kZXgg
ZThlNTIzMTNiYjRiZmEwZDk3MjY0ZDdkZDJhMDFkODFlN2EwMTUxMi4uNzNjYWEwNWRkZmJiYmFj
NDBkNDA2NjAyN2E1N2YxN2RjNGZkYjQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dp
bi9XaW5kb3dHZW9tZXRyeS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgV2luZG93R2VvbWV0cnk6Oldp
bmRvd0dlb21ldHJ5KCkKIAogdm9pZCBXaW5kb3dHZW9tZXRyeTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50
NjQocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4od2luZG93KSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHdpbmRvdykpOwogICAgIGVuY29kZXItPmVu
Y29kZSh2aXNpYmxlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoZnJhbWUpOwogICAgIGVuY29kZXIt
PmVuY29kZShjbGlwUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRW5jb2RlckFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0VuY29kZXJBZGFwdGVyLmNwcAppbmRleCA1NGY5MzcyZDE5OTYwZTUyYmNlOTgxYTlh
MGNkZTU2NGFjMjM4NWRjLi5iNzI2OWNhYTE3NjY3MzcwYzE0NTg2NTJhZmQ3Mjk3ZTQwY2I1YmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRW5jb2RlckFk
YXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FbmNvZGVy
QWRhcHRlci5jcHAKQEAgLTUyLDQyICs1Miw0MiBAQCB2b2lkIEVuY29kZXJBZGFwdGVyOjplbmNv
ZGVCeXRlcyhjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IHNpemUpCiAKIHZvaWQgRW5jb2Rl
ckFkYXB0ZXI6OmVuY29kZUJvb2woYm9vbCB2YWx1ZSkKIHsKLSAgICBtX2VuY29kZXItPmVuY29k
ZUJvb2wodmFsdWUpOworICAgIG1fZW5jb2Rlci0+ZW5jb2RlKHZhbHVlKTsKIH0KIAogdm9pZCBF
bmNvZGVyQWRhcHRlcjo6ZW5jb2RlVUludDE2KHVpbnQxNl90IHZhbHVlKQogewotICAgIG1fZW5j
b2Rlci0+ZW5jb2RlVUludDE2KHZhbHVlKTsKKyAgICBtX2VuY29kZXItPmVuY29kZSh2YWx1ZSk7
CiB9CiAKIHZvaWQgRW5jb2RlckFkYXB0ZXI6OmVuY29kZVVJbnQzMih1aW50MzJfdCB2YWx1ZSkK
IHsKLSAgICBtX2VuY29kZXItPmVuY29kZVVJbnQzMih2YWx1ZSk7CisgICAgbV9lbmNvZGVyLT5l
bmNvZGUodmFsdWUpOwogfQogCiB2b2lkIEVuY29kZXJBZGFwdGVyOjplbmNvZGVVSW50NjQodWlu
dDY0X3QgdmFsdWUpCiB7Ci0gICAgbV9lbmNvZGVyLT5lbmNvZGVVSW50NjQodmFsdWUpOworICAg
IG1fZW5jb2Rlci0+ZW5jb2RlKHZhbHVlKTsKIH0KIAogdm9pZCBFbmNvZGVyQWRhcHRlcjo6ZW5j
b2RlSW50MzIoaW50MzJfdCB2YWx1ZSkKIHsKLSAgICBtX2VuY29kZXItPmVuY29kZUludDMyKHZh
bHVlKTsKKyAgICBtX2VuY29kZXItPmVuY29kZSh2YWx1ZSk7CiB9CiAKIHZvaWQgRW5jb2RlckFk
YXB0ZXI6OmVuY29kZUludDY0KGludDY0X3QgdmFsdWUpCiB7Ci0gICAgbV9lbmNvZGVyLT5lbmNv
ZGVJbnQ2NCh2YWx1ZSk7CisgICAgbV9lbmNvZGVyLT5lbmNvZGUodmFsdWUpOwogfQogCiB2b2lk
IEVuY29kZXJBZGFwdGVyOjplbmNvZGVGbG9hdChmbG9hdCB2YWx1ZSkKIHsKLSAgICBtX2VuY29k
ZXItPmVuY29kZUZsb2F0KHZhbHVlKTsKKyAgICBtX2VuY29kZXItPmVuY29kZSh2YWx1ZSk7CiB9
CiAKIHZvaWQgRW5jb2RlckFkYXB0ZXI6OmVuY29kZURvdWJsZShkb3VibGUgdmFsdWUpCiB7Ci0g
ICAgbV9lbmNvZGVyLT5lbmNvZGVEb3VibGUodmFsdWUpOworICAgIG1fZW5jb2Rlci0+ZW5jb2Rl
KHZhbHVlKTsKIH0KIAogdm9pZCBFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlU3RyaW5nKGNvbnN0IFN0
cmluZyYgdmFsdWUpCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBFbmNvZGVyQWRhcHRlcjo6ZW5j
b2RlU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKICAgICAvLyBTcGVjaWFsIGNhc2UgdGhl
IG51bGwgc3RyaW5nLgogICAgIGlmICh2YWx1ZS5pc051bGwoKSkgewotICAgICAgICBtX2VuY29k
ZXItPmVuY29kZVVJbnQzMihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpOwor
ICAgICAgICBtX2VuY29kZXItPmVuY29kZShzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6
bWF4KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169769</attachid>
            <date>2012-10-20 10:57:32 -0700</date>
            <delta_ts>2012-10-20 14:21:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99865-20121020105612.patch</filename>
            <type>text/plain</type>
            <size>40455</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjMyM2Q4MTkzZmNhYmU2
YjEyMDJhYTI5YWM0NzEyM2U1ZGYzN2QyYS4uNmRkN2E3ZDFiODhiMjlhMWYxNGVmYzU3NGRlYThm
ZmNkNzExNmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEyLTEwLTE5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIDo6ZW5j
b2RlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBhbmQganVzdCB1c2Ugb3ZlcmxvYWRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg2NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2YgdGhl
IHZhcmlvdXMgZW5jb2RlIGZ1bmN0aW9ucyBhbmQganVzdCB1c2Ugb3ZlcmxvYWRpbmcgaW5zdGVh
ZC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuY3BwOgorICAg
ICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rl
ci5jcHA6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI6OmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oOgorICAg
ICAgICAoQXJndW1lbnRFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cjo6ZW5jb2RlRW51bSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlv
bldpbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNz
YWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOUElkZW50aWZpZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOUElkZW50aWZp
ZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZUVuY29kZXI6OmJhc2VFbmNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
IChDb3JlSVBDOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNN
YWMubW06CisgICAgICAgIChDb3JlSVBDOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
S2V5Y2hhaW5BdHRyaWJ1dGUuY3BwOgorICAgICAgICAoQ29yZUlQQzo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9x
dC9Bcmd1bWVudENvZGVyc1F0LmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UXROZXR3b3JrUmVwbHlEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9zb3VwL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL3dpbi9MYXllclRyZWVDb250
ZXh0V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvd2luL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldpbmRvd0dl
b21ldHJ5OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FbmNvZGVyQWRh
cHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVCb29sKToK
KyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZVVJbnQxNik6CisgICAgICAg
IChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVVSW50MzIpOgorICAgICAgICAoV2ViS2l0
OjpFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlVUludDY0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2Rl
ckFkYXB0ZXI6OmVuY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6
OmVuY29kZUludDY0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZUZs
b2F0KToKKyAgICAgICAgKFdlYktpdDo6RW5jb2RlckFkYXB0ZXI6OmVuY29kZURvdWJsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkVuY29kZXJBZGFwdGVyOjplbmNvZGVTdHJpbmcpOgorCiAyMDEyLTEw
LTE5ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRd
W1dUUl0gcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIgc2hvdWxkIG5vdCBiZSBzZXQgaWYgdGhlIHJl
YWwgcmVuZGVyIGxvb3AgaXMgYWN0aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDIzMmYzOGJiOTQ0YzFhMzFjNTY3ZTJm
ZTNiYTZlYjczZDM2NzljYTAuLmYwYzE3ZDM4ZThlMzgzMDMwMmU4NjJmNmFlZDVlMmRiMTgyZDA0
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgQ1N0cmluZyYgc3RyCiB7CiAg
ICAgLy8gU3BlY2lhbCBjYXNlIHRoZSBudWxsIHN0cmluZy4KICAgICBpZiAoc3RyaW5nLmlzTnVs
bCgpKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQzMl90Pjo6bWF4KCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RkOjpudW1lcmlj
X2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
OTEsMTQgKzkxLDE0IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluCiB7CiAgICAgLy8gU3BlY2lh
bCBjYXNlIHRoZSBudWxsIHN0cmluZy4KICAgICBpZiAoc3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6
bWF4KCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHVpbnQzMl90IGxl
bmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobGVuZ3RoKTsKICAg
ICBib29sIGlzOEJpdCA9IHN0cmluZy5pczhCaXQoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29s
KGlzOEJpdCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGlzOEJpdCk7CiAgICAgaWYgKGlzOEJpdCkK
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHN0cmluZy5jaGFyYWN0ZXJzOCgpKSwgbGVuZ3RoICogc2l6ZW9mKExD
aGFyKSwgX19hbGlnbm9mKExDaGFyKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGFmMTYzYmU2ZDliNjRjMzA5
ZDkxOWFkMWI3MzY1ODhlYjI2MzFjYmEuLmYxNmQ3YzkyZjQ1NTVjMDczY2I1YTA3YzVlYTZjMWQy
ZDlmMjBiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCB0ZW1wbGF0ZTxib29sIGZpeGVkU2l6ZUVs
ZW1lbnRzLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yQXJndW1lbnRDb2RlcjsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JBcmd1bWVudENvZGVyPGZhbHNlLCBUPiB7CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgVmVjdG9y
PFQ+JiB2ZWN0b3IpCiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQodmVjdG9y
LnNpemUoKSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4o
dmVjdG9yLnNpemUoKSkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5z
aXplKCk7ICsraSkKICAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh2ZWN0b3JbaV0pOwogICAg
IH0KQEAgLTEyOSw3ICsxMjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9y
QXJndW1lbnRDb2RlcjxmYWxzZSwgVD4gewogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFZl
Y3RvckFyZ3VtZW50Q29kZXI8dHJ1ZSwgVD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFZlY3RvcjxUPiYgdmVjdG9yKQogICAgIHsKLSAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0KHZlY3Rvci5zaXplKCkpOworICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZlY3Rvci5zaXplKCkpKTsKICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBfX2Fs
aWdub2YoVCkpOwogICAgIH0KICAgICAKQEAgLTE2NCw3ICsxNjQsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaQogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5j
b2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewotICAgICAgICBlbmNvZGVy
LT5lbmNvZGVVSW50NjQoaGFzaE1hcC5zaXplKCkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hNYXAuc2l6ZSgpKSk7CiAgICAgICAgIGZvciAodHlw
ZW5hbWUgSGFzaE1hcFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGFzaE1hcC5iZWdpbigpLCBl
bmQgPSBoYXNoTWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoKml0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAKaW5kZXggOWRmNTFlYzE5MWJmMGNlYjU4NTA0OTBk
ZWJmN2FiZDZlNGNhZWZjNi4uOTQ4MDExMzJmMDgyNDBjNDA5NTNiZmFkMjRmOTViZTViYWFhYzZk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudEVu
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRF
bmNvZGVyLmNwcApAQCAtMTAxLDYyICsxMDEsNjAgQEAgdm9pZCBBcmd1bWVudEVuY29kZXI6OmVu
Y29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgdW4K
IAogdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNv
bnN0IERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7Ci0gICAgLy8gRW5jb2RlIHRoZSBz
aXplLgotICAgIGVuY29kZVVJbnQ2NChzdGF0aWNfY2FzdDx1aW50NjRfdD4oZGF0YVJlZmVyZW5j
ZS5zaXplKCkpKTsKLQorICAgIGVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4oZGF0YVJlZmVy
ZW5jZS5zaXplKCkpKTsKICAgICBlbmNvZGVGaXhlZExlbmd0aERhdGEoZGF0YVJlZmVyZW5jZS5k
YXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpLCAxKTsKIH0KIAotdm9pZCBBcmd1bWVudEVuY29k
ZXI6OmVuY29kZUJvb2woYm9vbCBuKQordm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShib29s
IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7
CiAgICAgCiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KGJ1ZmZlcikgPSBuOwogfQogCi12
b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlVUludDE2KHVpbnQxNl90IG4pCit2b2lkIEFyZ3Vt
ZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQxNl90IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0g
Z3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CiAKICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50
MTZfdCo+KGJ1ZmZlcikgPSBuOwogfQogCi12b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlVUlu
dDMyKHVpbnQzMl90IG4pCit2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQzMl90IG4p
CiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CiAg
ICAgCiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihidWZmZXIpID0gbjsKIH0KIAot
dm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZVVJbnQ2NCh1aW50NjRfdCBuKQordm9pZCBBcmd1
bWVudEVuY29kZXI6OmVuY29kZSh1aW50NjRfdCBuKQogewogICAgIHVpbnQ4X3QqIGJ1ZmZlciA9
IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwogICAgIAogICAgICpyZWludGVycHJldF9jYXN0
PHVpbnQ2NF90Kj4oYnVmZmVyKSA9IG47CiB9CiAKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNv
ZGVJbnQzMihpbnQzMl90IG4pCit2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGludDMyX3Qg
bikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsK
ICAgICAKICAgICAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4oYnVmZmVyKSA9IG47CiB9CiAK
LXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGVJbnQ2NChpbnQ2NF90IG4pCit2b2lkIEFyZ3Vt
ZW50RW5jb2Rlcjo6ZW5jb2RlKGludDY0X3QgbikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBn
cm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKICAgICAKICAgICAqcmVpbnRlcnByZXRfY2FzdDxp
bnQ2NF90Kj4oYnVmZmVyKSA9IG47CiB9CiAKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGVG
bG9hdChmbG9hdCBuKQordm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShmbG9hdCBuKQogewog
ICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwogCiAgICAg
KnJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXIpID0gbjsKIH0KIAotdm9pZCBBcmd1bWVu
dEVuY29kZXI6OmVuY29kZURvdWJsZShkb3VibGUgbikKK3ZvaWQgQXJndW1lbnRFbmNvZGVyOjpl
bmNvZGUoZG91YmxlIG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2Yobiks
IHNpemVvZihuKSk7CiAKQEAgLTE3NSwxMyArMTczLDQgQEAgVmVjdG9yPEF0dGFjaG1lbnQ+IEFy
Z3VtZW50RW5jb2Rlcjo6cmVsZWFzZUF0dGFjaG1lbnRzKCkKICAgICByZXR1cm4gbmV3TGlzdDsK
IH0KIAotI2lmbmRlZiBOREVCVUcKLXZvaWQgQXJndW1lbnRFbmNvZGVyOjpkZWJ1ZygpCi17Ci0g
ICAgcHJpbnRmKCJBcmd1bWVudEVuY29kZXI6OmRlYnVnKClcbiIpOwotICAgIHByaW50ZigiTnVt
YmVyIG9mIEF0dGFjaG1lbnRzOiAlZFxuIiwgKGludCltX2F0dGFjaG1lbnRzLnNpemUoKSk7Ci0g
ICAgcHJpbnRmKCJTaXplIG9mIGJ1ZmZlcjogJWRcbiIsIChpbnQpbV9idWZmZXJTaXplKTsKLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudEVuY29kZXIuaAppbmRleCA5YmZlYTAzMDQyOTFjMjUy
ZjYzNmZhODZjYjhkNWE5MzNiMDZhYTg4Li41NDc4MDEzNGEzM2EzMTNjNzIxMTZiYTMyZmQ0ZWE5
N2Y0NmI4ZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Fy
Z3VtZW50RW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRFbmNvZGVyLmgKQEAgLTQ1LDIwICs0NSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNv
ZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgdW5zaWduZWQgYWxpZ25t
ZW50KTsKICAgICB2b2lkIGVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNvbnN0IERhdGFS
ZWZlcmVuY2UmKTsKIAotICAgIHZvaWQgZW5jb2RlQm9vbChib29sKTsKLSAgICB2b2lkIGVuY29k
ZVVJbnQxNih1aW50MTZfdCk7Ci0gICAgdm9pZCBlbmNvZGVVSW50MzIodWludDMyX3QpOwotICAg
IHZvaWQgZW5jb2RlVUludDY0KHVpbnQ2NF90KTsKLSAgICB2b2lkIGVuY29kZUludDMyKGludDMy
X3QpOwotICAgIHZvaWQgZW5jb2RlSW50NjQoaW50NjRfdCk7Ci0gICAgdm9pZCBlbmNvZGVGbG9h
dChmbG9hdCk7Ci0gICAgdm9pZCBlbmNvZGVEb3VibGUoZG91YmxlKTsKKyAgICB2b2lkIGVuY29k
ZShib29sKTsKKyAgICB2b2lkIGVuY29kZSh1aW50MTZfdCk7CisgICAgdm9pZCBlbmNvZGUodWlu
dDMyX3QpOworICAgIHZvaWQgZW5jb2RlKHVpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZShpbnQz
Ml90KTsKKyAgICB2b2lkIGVuY29kZShpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZShmbG9hdCk7
CisgICAgdm9pZCBlbmNvZGUoZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZv
aWQgZW5jb2RlRW51bShUIHQpCiAgICAgewogICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2Yo
VCkgPD0gc2l6ZW9mKHVpbnQ2NF90KSwgZW51bV90eXBlX211c3Rfbm90X2JlX2xhcmdlcl90aGFu
XzY0X2JpdHMpOwogCi0gICAgICAgIGVuY29kZVVJbnQ2NChzdGF0aWNfY2FzdDx1aW50NjRfdD4o
dCkpOworICAgICAgICBlbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHQpKTsKICAgICB9CiAg
ICAgCiAgICAgLy8gR2VuZXJpYyB0eXBlIGVuY29kZSBmdW5jdGlvbi4KQEAgLTczLDEwICs3Myw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEF0dGFjaG1lbnQoY29uc3QgQXR0YWNobWVudCYpOwog
ICAgIFZlY3RvcjxBdHRhY2htZW50PiByZWxlYXNlQXR0YWNobWVudHMoKTsKIAotI2lmbmRlZiBO
REVCVUcKLSAgICB2b2lkIGRlYnVnKCk7Ci0jZW5kaWYKLQogcHJvdGVjdGVkOgogICAgIEFyZ3Vt
ZW50RW5jb2RlcigpOwogCkBAIC05Miw0NiArODgsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxB
dHRhY2htZW50PiBtX2F0dGFjaG1lbnRzOwogfTsKIAotdGVtcGxhdGU8PiBpbmxpbmUgdm9pZCBB
cmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCBib29sJiBuKQotewotICAgIGVuY29kZUJvb2wo
bik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUo
Y29uc3QgdWludDE2X3QmIG4pCi17Ci0gICAgZW5jb2RlVUludDE2KG4pOwotfQotCi10ZW1wbGF0
ZTw+IGlubGluZSB2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVpbnQzMl90JiBu
KQotewotICAgIGVuY29kZVVJbnQzMihuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgdm9pZCBB
cmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCB1aW50NjRfdCYgbikKLXsKLSAgICBlbmNvZGVV
SW50NjQobik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIHZvaWQgQXJndW1lbnRFbmNvZGVyOjpl
bmNvZGUoY29uc3QgaW50MzJfdCYgbikKLXsKLSAgICBlbmNvZGVJbnQzMihuKTsKLX0KLQotdGVt
cGxhdGU8PiBpbmxpbmUgdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShjb25zdCBpbnQ2NF90
JiBuKQotewotICAgIGVuY29kZUludDY0KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSB2b2lk
IEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IGZsb2F0JiBuKQotewotICAgIGVuY29kZUZs
b2F0KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSB2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5j
b2RlKGNvbnN0IGRvdWJsZSYgbikKLXsKLSAgICBlbmNvZGVEb3VibGUobik7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIENvcmVJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50RW5jb2Rlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3Bw
CmluZGV4IGM5MWU3YzMzMTU0M2UzNWE2MzYwOGJjZTdlNDUxNmNjZmJjNWFiY2EuLjRlY2ZjMTdj
MGE4OTdkMDU4ODI0ZTY5OWUzYjFhYmEyM2QxZjFmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCkBAIC0yODgsNyAr
Mjg4LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIFBhc3NPd25QdHI8TWVzc2FnZUVuY28KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gV2UgcHV0IHRoZSBtZXNzYWdlIElEIGxhc3QuCi0gICAgZW5jb2Rlci0+ZW5jb2Rl
VUludDMyKG1lc3NhZ2VJRC50b0ludCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1lc3NhZ2VJRC50b0ludCgpKSk7CiAKICAgICAvLyBXcml0ZSB0aGUgb3V0
Z29pbmcgbWVzc2FnZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFj
L1NoYXJlZE1lbW9yeU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVk
TWVtb3J5TWFjLmNwcAppbmRleCBkYjJhMTg3NGI3MGU1Y2RhYzg0Zjc1Y2U3YjA2MDI1NDA3Mjdi
MWMxLi4zMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAogCiB2b2lk
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChtX3NpemUpOworICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9zaXplKSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KG1fcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKICAgICBtX3BvcnQgPSBNQUNIX1BPUlRfTlVMTDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggYzdlNjc3OThjYWZh
YjQ4Y2M2YmY0NTMyMmJlYWUyNzcyMjhmYzI5Mi4uMmFhMjhmOGMwYmQ4MmFhMDVlNzExOGNkN2Zj
NzY5MzMyZTQwNWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJl
ZE1lbW9yeVdpbi5jcHAKQEAgLTUzLDE2ICs1MywxNiBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjppc051bGwoKSBjb25zdAogCiB2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIt
PmVuY29kZVVJbnQ2NChtX3NpemUpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9zaXplKSk7CiAKICAgICAvLyBIYW5kIG9mZiBvd25lcnNoaXAgb2Ygb3VyIEhB
TkRMRSB0byB0aGUgcmVjZWl2aW5nIHByb2Nlc3MuIEl0IHdpbGwgY2xvc2UgaXQgZm9yIHVzLgog
ICAgIC8vIEZJWE1FOiBJZiB0aGUgcmVjZWl2aW5nIHByb2Nlc3MgY3Jhc2hlcyBiZWZvcmUgaXQg
cmVjZWl2ZXMgdGhlIG1lbW9yeSwgdGhlIG1lbW9yeSB3aWxsIGJlCiAgICAgLy8gbGVha2VkLiBT
ZWUgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDc1MDI+LgotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2
NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOworICAgIGVuY29kZXItPmVu
Y29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOwogICAgIG1faGFuZGxl
ID0gMDsKIAogICAgIC8vIFNlbmQgYWxvbmcgb3VyIFBJRCBzbyB0aGF0IHRoZSByZWNlaXZpbmcg
cHJvY2VzcyBjYW4gZHVwbGljYXRlIHRoZSBIQU5ETEUgZm9yIGl0cyBvd24gdXNlLgotICAgIGVu
Y29kZXItPmVuY29kZVVJbnQzMig6OkdldEN1cnJlbnRQcm9jZXNzSWQoKSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pig6OkdldEN1cnJlbnRQcm9jZXNzSWQoKSkp
OwogfQogCiBzdGF0aWMgYm9vbCBnZXREdXBsaWNhdGVkSGFuZGxlKEhBTkRMRSBzb3VyY2VIYW5k
bGUsIERXT1JEIHNvdXJjZVBJRCwgSEFORExFJiBkdXBsaWNhdGVkSGFuZGxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
Y2Q4YjgzYzJjM2ExMmM0MzVjODM2ZTVkNGE1YjUzMGI2YWY1MWRiYy4uYTIzNzI4OGI0NDMxZTg5
MjhlMGJmYTNmYTlmMGY1MmVkMWI1M2UzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgVHJhbnMKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKGZpbHRlcnMuc2l6ZSgpKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMuc2l6ZSgpKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbiogZmlsdGVyID0gZmlsdGVycy5hdChpKTsKICAgICAgICAgRmlsdGVy
T3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBmaWx0ZXItPmdldE9wZXJhdGlvblR5cGUo
KTsKQEAgLTExMiwxMyArMTEyLDEzIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwKICAgICAgICAg
Y2FzZSBGaWx0ZXJPcGVyYXRpb246OlNFUElBOgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6U0FUVVJBVEU6CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpIVUVfUk9UQVRFOgot
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRG91YmxlKHN0YXRpY19jYXN0PGNvbnN0IEJhc2lj
Q29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb24qPihmaWx0ZXIpLT5hbW91bnQoKSk7CisgICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxjb25z
dCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKS0+YW1vdW50KCkpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6SU5WRVJU
OgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6QlJJR0hUTkVTUzoKICAgICAgICAgY2Fz
ZSBGaWx0ZXJPcGVyYXRpb246OkNPTlRSQVNUOgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6T1BBQ0lUWToKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZURvdWJsZShzdGF0aWNfY2Fz
dDxjb25zdCBCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKS0+
YW1vdW50KCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGRvdWJs
ZT4oc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlv
bio+KGZpbHRlciktPmFtb3VudCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBGaWx0ZXJPcGVyYXRpb246OkJMVVI6CiAgICAgICAgICAgICBBcmd1bWVudENvZGVyPExlbmd0
aD46OmVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxjb25zdCBCbHVyRmlsdGVyT3BlcmF0aW9u
Kj4oZmlsdGVyKS0+c3RkRGV2aWF0aW9uKCkpOwpAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9X
OiB7CiAgICAgICAgICAgICBjb25zdCBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKiBzaGFkb3cg
PSBzdGF0aWNfY2FzdDxjb25zdCBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyKTsK
ICAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2Rlciwgc2hh
ZG93LT5sb2NhdGlvbigpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUludDMyKHNoYWRv
dy0+c3RkRGV2aWF0aW9uKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19j
YXN0PGludDMyX3Q+KHNoYWRvdy0+c3RkRGV2aWF0aW9uKCkpKTsKICAgICAgICAgICAgIEFyZ3Vt
ZW50Q29kZXI8Q29sb3I+OjplbmNvZGUoZW5jb2Rlciwgc2hhZG93LT5jb2xvcigpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyLAogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtaXhTZXR0aW5ncy5j
b21wb3NpdGVPcGVyYXRvcik7CiAKICAgICAgICAgICAgIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QgcGFyYW1ldGVycyA9IGN1c3RvbU9wZXJhdGlvbi0+cGFyYW1ldGVycygpOwotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4ocGFyYW1ldGVycy5zaXplKCkp
KTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+IHBh
cmFtZXRlciA9IHBhcmFtZXRlcnNbaV07CiAgICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHBhcmFtZXRlci0+bmFtZSgpKTsKQEAgLTE1NSwxNCArMTU1LDE0IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlciwKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmFtZXRlci0+cGFyYW1ldGVyVHlw
ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI6OkFSUkFZ
OiB7CiAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVyKiBhcnJh
eVBhcmFtZXRlciA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVyKj4ocGFy
YW1ldGVyLmdldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDMy
KGFycmF5UGFyYW1ldGVyLT5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGFycmF5UGFyYW1ldGVyLT5zaXplKCkpKTsKICAg
ICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBhcnJheVBhcmFtZXRlci0+
c2l6ZSgpOyArK2opCiAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoYXJy
YXlQYXJhbWV0ZXItPnZhbHVlQXQoaikpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXI6Ok5VTUJFUjogewogICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWx0ZXJOdW1iZXJQYXJh
bWV0ZXIqIG51Ym1lclBhcmFtZXRlciA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck51bWJlclBh
cmFtZXRlcio+KHBhcmFtZXRlci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZVVJbnQzMihudWJtZXJQYXJhbWV0ZXItPnNpemUoKSk7CisgICAgICAgICAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obnVibWVyUGFyYW1ldGVy
LT5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBu
dWJtZXJQYXJhbWV0ZXItPnNpemUoKTsgKytqKQogICAgICAgICAgICAgICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKG51Ym1lclBhcmFtZXRlci0+dmFsdWVBdChqKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwK
ICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3Bl
cmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
VUludDMyKHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpKSk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2Zvcm1PcGVyYXRpb25zLnNpemUoKTsgKytpKSB7
CiAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogb3BlcmF0aW9uID0gdHJhbnNmb3Jt
T3BlcmF0aW9ucy5hdChpKTsKICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShvcGVyYXRpb24t
PmdldE9wZXJhdGlvblR5cGUoKSk7CkBAIC01MTAsMTEgKzUxMCwxMSBAQCBib29sIEFyZ3VtZW50
Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFRyYW5zZgogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRv
a2VuPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQogewogI2lmIE9TKERBUldJTikKLSAgICBlbmNvZGVy
LT5lbmNvZGVVSW50MzIodG9rZW4uZnJvbnRCdWZmZXJIYW5kbGUpOwotICAgIGVuY29kZXItPmVu
Y29kZVVJbnQzMih0b2tlbi5iYWNrQnVmZmVySGFuZGxlKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRva2VuLmZyb250QnVmZmVySGFuZGxlKSk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b2tlbi5iYWNrQnVmZmVySGFuZGxl
KSk7CiAjZW5kaWYKICNpZiBPUyhMSU5VWCkKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIodG9r
ZW4uZnJvbnRCdWZmZXJIYW5kbGUpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4odG9rZW4uZnJvbnRCdWZmZXJIYW5kbGUpKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKaW5kZXggMGY5ZDA2Y2Ex
NmFmY2Y5OWU5ZTU3NDVkOTU0ZTMyNzNjOGVkOGE4Zi4uN2U2ZGYzYTVjYmZjOGM2N2M4NGQ3YjY3
ODU3ZmM3YzQ5ZTE1N2E3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rp
b25hcnlQb3B1cEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5
UG9wdXBJbmZvLmNwcApAQCAtNDIsNyArNDIsNyBAQCB2b2lkIERpY3Rpb25hcnlQb3B1cEluZm86
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAKICNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIGJvb2wgaGFkT3B0aW9ucyA9IG9wdGlvbnM7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbCho
YWRPcHRpb25zKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoaGFkT3B0aW9ucyk7CiAgICAgaWYgKGhh
ZE9wdGlvbnMpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBvcHRpb25zLmdldCgp
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJ
ZGVudGlmaWVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50
aWZpZXJEYXRhLmNwcAppbmRleCA5NDlhYWQ3YzIxNDlhNDE0ZDlmYTgyMjZlZWNkMzYyYjk5NWIx
MmM3Li43NDcxNzI1MDRhNWYwYzdmNTY1MTA1ZWUyN2E4YmE1YWY3YzdhZTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcApAQCAt
NzMsNyArNzMsNyBAQCB2b2lkIE5QSWRlbnRpZmllckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgaWYgKG1faXNTdHJpbmcpCiAgICAgICAg
IGVuY29kZXItPmVuY29kZShtX3N0cmluZyk7CiAgICAgZWxzZQotICAgICAgICBlbmNvZGVyLT5l
bmNvZGVJbnQzMihtX251bWJlcik7CisgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2Fz
dDxpbnQzMl90PihtX251bWJlcikpOwogfQogCiBib29sIE5QSWRlbnRpZmllckRhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5QSWRlbnRpZmllckRhdGEmIHJl
c3VsdCkKQEAgLTg0LDcgKzg0LDcgQEAgYm9vbCBOUElkZW50aWZpZXJEYXRhOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBOUElkZW50aWZpZXJEYXQKICAgICBpZiAo
cmVzdWx0Lm1faXNTdHJpbmcpCiAgICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1fc3RyaW5nKTsKIAotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGVJbnQzMihyZXN1bHQubV9u
dW1iZXIpOworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
cmVzdWx0Lm1fbnVtYmVyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCAyZWM1YmI0ZDUyYjIwNzUxZmRi
NTdlZDY2MjgwZWE5MDdiZDM5YjUwLi45ZDhhYzVjNmI4ZjcyZGEwZjhiMDZmNDdhY2NkNjBiNWVl
NWM1OGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2Rl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAt
NzAsMTIgKzcwLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBBUElPYmplY3Q6OlR5cGUmIHR5cGUpIGNvbnN0IAogICAg
IHsKICAgICAgICAgaWYgKCFtX3Jvb3QpIHsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVVJ
bnQzMihBUElPYmplY3Q6OlR5cGVOdWxsKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDx1aW50MzJfdD4oQVBJT2JqZWN0OjpUeXBlTnVsbCkpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICB0eXBlID0gbV9yb290LT50eXBlKCk7
Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVVJbnQzMih0eXBlKTsKKyAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlKSk7CiAKICAgICAgICAgc3dpdGNoICh0
eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQXJyYXk6IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZmExY2ZmYWRh
ODE0YTMxNzk4ZDBjODdlOGRhOTgwYmIzZjAzZGU0MS4uOTU3MzEzNTg3YzAzYTJiODNiOTgwMGJl
MDIwNWQ1MmE5ZDU1YjkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTMyNiwxMSArMzI2LDExIEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxDdXJzb3I+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBDdXJzb3Im
IGN1cnNvCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChjdXJzb3IuaW1hZ2UoKS0+aXNOdWxs
KCkpIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChmYWxzZSk7IC8vIFRoZXJlIGlzIG5v
IHZhbGlkIGltYWdlIGJlaW5nIGVuY29kZWQuCisgICAgICAgIGVuY29kZXItPmVuY29kZShmYWxz
ZSk7IC8vIFRoZXJlIGlzIG5vIHZhbGlkIGltYWdlIGJlaW5nIGVuY29kZWQuCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKHRydWUpOworICAgIGVuY29k
ZXItPmVuY29kZSh0cnVlKTsKICAgICBlbmNvZGVJbWFnZShlbmNvZGVyLCBjdXJzb3IuaW1hZ2Uo
KSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGN1cnNvci5ob3RTcG90KCkpOwogfQpAQCAtNjQ2LDEx
ICs2NDYsMTEgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdpbmRvd0ZlYXR1cmVzPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2luZG93RmVhdHUKIHZvaWQgQXJndW1lbnRDb2RlcjxD
b2xvcj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IENvbG9yJiBjb2xv
cikKIHsKICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGVCb29sKGZhbHNlKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGVuY29kZXItPmVuY29kZUJvb2wodHJ1ZSk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlKHRydWUpOwogICAgIGVuY29kZXItPmVuY29kZShjb2xvci5yZ2IoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCBlMTVlNTMzODJhNDMyZDMwN2ZlYTk3MjE5YjUxMzNlZTU0MzNi
MzIwLi41ZGVhOWEyN2M0NzA2MDY3MDU1M2YwYmZiN2FhMGQxOGY4NDUzMjM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb24KICAgICBlbmNv
ZGVyLT5lbmNvZGUoaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIFVTRShDRlVS
TFNUT1JBR0VTRVNTSU9OUykKICAgICBDRkRhdGFSZWYgc3RvcmFnZVNlc3Npb24gPSBzZXJpYWxp
emVkRGVmYXVsdFN0b3JhZ2VTZXNzaW9uLmdldCgpOwotICAgIGVuY29kZXItPmVuY29kZUJvb2wo
c3RvcmFnZVNlc3Npb24pOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihz
dG9yYWdlU2Vzc2lvbikpOwogICAgIGlmIChzdG9yYWdlU2Vzc2lvbikKICAgICAgICAgQ29yZUlQ
Qzo6ZW5jb2RlKGVuY29kZXIsIHN0b3JhZ2VTZXNzaW9uKTsKICNlbmRpZiAvLyBVU0UoQ0ZVUkxT
VE9SQUdFU0VTU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJn
dW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5jcHAKaW5kZXggMzU1ODBjNWNlNDc0ZWVkOTMxYmZmNTVmZjU2N2E1ZWY4MmM4OTc0MC4u
NzI2MWFiZGE2ODFmODFmMWZjMzFmZTg4NjgyNDAxNDk3ZGJhZjgzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtMjQ3LDcgKzI0Nyw3IEBA
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgQ0ZBcnJheVJlZiBhcnJheSkK
IAogICAgIENGQXJyYXlHZXRWYWx1ZXMoYXJyYXksIENGUmFuZ2VNYWtlKDAsIHNpemUpLCB2YWx1
ZXMuZGF0YSgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChzaXplKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUpKTsKICAgICBmb3IgKENGSW5k
ZXggaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgQVNTRVJUKHZhbHVlc1tpXSk7CiAK
QEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFJldGFpblB0cjxDRkFycmF5UmVmPiYgcmVzdWx0KQogCiB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIsIENGQm9vbGVhblJlZiBib29sZWFuKQogewotICAgIGVuY29kZXItPmVu
Y29kZUJvb2woQ0ZCb29sZWFuR2V0VmFsdWUoYm9vbGVhbikpOworICAgIGVuY29kZXItPmVuY29k
ZShzdGF0aWNfY2FzdDxib29sPihDRkJvb2xlYW5HZXRWYWx1ZShib29sZWFuKSkpOwogfQogCiBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRkJvb2xlYW5S
ZWY+JiByZXN1bHQpCkBAIC0zMTAsNyArMzEwLDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiYgcmVzdWx0KQogCiB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIENGRGF0ZVJlZiBkYXRlKQogewotICAgIGVuY29k
ZXItPmVuY29kZURvdWJsZShDRkRhdGVHZXRBYnNvbHV0ZVRpbWUoZGF0ZSkpOworICAgIGVuY29k
ZXItPmVuY29kZShzdGF0aWNfY2FzdDxkb3VibGU+KENGRGF0ZUdldEFic29sdXRlVGltZShkYXRl
KSkpOwogfQogCiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0
cjxDRkRhdGVSZWY+JiByZXN1bHQpCkBAIC0zMzEsNyArMzMxLDcgQEAgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSkKICAgICAK
ICAgICBDRkRpY3Rpb25hcnlHZXRLZXlzQW5kVmFsdWVzKGRpY3Rpb25hcnksIGtleXMuZGF0YSgp
LCB2YWx1ZXMuZGF0YSgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChzaXplKTsKKyAg
ICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUpKTsKIAogICAgIGZv
ciAoQ0ZJbmRleCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBBU1NFUlQoa2V5c1tp
XSk7CkBAIC00OTUsNyArNDk1LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+JiByZXN1bHQpCiB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIsIENGVVJMUmVmIHVybCkKIHsKICAgICBDRlVSTFJlZiBiYXNlVVJM
ID0gQ0ZVUkxHZXRCYXNlVVJMKHVybCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChiYXNlVVJM
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oYmFzZVVSTCkpOwogICAg
IGlmIChiYXNlVVJMKQogICAgICAgICBlbmNvZGUoZW5jb2RlciwgYmFzZVVSTCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDdlMDZh
YTM4OWI5YmUxYmQ3ZWYyZTUxOGVhZjI1OWM5NzQzNDlmZGEuLmVjNmQzOGJlNDEwODdmNDI3N2E1
Njg5ODI4MDg4NWZlZjljYzNiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9B
cmd1bWVudENvZGVyc01hYy5tbQpAQCAtMTk2LDExICsxOTYsMTEgQEAgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKICAgICAg
ICAgcG9zaXRpb24gPSBOU01heFJhbmdlKGVmZmVjdGl2ZVJhbmdlKTsKICAgICB9CiAKLSAgICBl
bmNvZGVyLT5lbmNvZGVVSW50NjQocmFuZ2VzLnNpemUoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2Rl
KHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYW5nZXMuc2l6ZSgpKSk7CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHJhbmdlcy5zaXplKCk7ICsraSkgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGVVSW50NjQocmFuZ2VzW2ldLmZpcnN0LmxvY2F0aW9uKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlVUludDY0KHJhbmdlc1tpXS5maXJzdC5sZW5ndGgpOworICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJhbmdlc1tpXS5maXJzdC5sb2NhdGlvbikpOworICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJhbmdlc1tpXS5maXJz
dC5sZW5ndGgpKTsKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHJhbmdlc1tpXS5z
ZWNvbmQuZ2V0KCkpOwogICAgIH0KIH0KQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIsIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKICAgICBO
U0FycmF5ICprZXlzID0gW2RpY3Rpb25hcnkgYWxsS2V5c107CiAgICAgTlNBcnJheSAqdmFsdWVz
ID0gW2RpY3Rpb25hcnkgYWxsVmFsdWVzXTsKIAotICAgIGVuY29kZXItPmVuY29kZVVJbnQ2NChz
aXplKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUpKTsK
IAogICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBp
ZCBrZXkgPSBba2V5cyBvYmplY3RBdEluZGV4OmldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9LZXljaGFpbkF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0tleWNoYWluQXR0cmlidXRlLmNwcAppbmRleCBiM2Q2NWMyYjc4ZGU4ZWYwYzk3NGJl
YWRhYWZlMDMzNDNhMzBiOGQ4Li5lYjI4NGJjZjdmM2M5MGU0MjY4NDc5MDU5ZjczYjE4ZTg4NDZl
ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0tleWNoYWluQXR0cmli
dXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0tleWNoYWluQXR0cmlidXRl
LmNwcApAQCAtNTMsOCArNTMsOCBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViS2l0OjpLZXljaGFp
bkF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewotICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihzdGF0
aWNfY2FzdDx1aW50MzJfdD4oYXR0cmlidXRlLnRhZykpOwotICAgIGVuY29kZXItPmVuY29kZUJv
b2woYXR0cmlidXRlLmRhdGEpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50
MzJfdD4oYXR0cmlidXRlLnRhZykpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxi
b29sPihhdHRyaWJ1dGUuZGF0YSkpOwogICAgIGlmIChhdHRyaWJ1dGUuZGF0YSkKICAgICAgICAg
Q29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIGF0dHJpYnV0ZS5kYXRhLmdldCgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1t
CmluZGV4IDVhZTc3MmNkY2E3ZDlhMWQ5MWFkNDJjNDQ0YWRkMGZiYTc4ZDA2OGQuLmRiMmI5MGU3
NWQwOGE4MWUyNDY5ODJkM2M3NTg4M2EyMGExZDJhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbQpAQCAtNTIsMTEgKzUy
LDExIEBAIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhD
RkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pCiB2b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewogICAg
IGlmICghbV9jZXJ0aWZpY2F0ZUNoYWluKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZUJvb2wo
ZmFsc2UpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2UpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbCh0cnVlKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGUodHJ1ZSk7CiAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fY2VydGlmaWNhdGVD
aGFpbi5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJv
eEV4dGVuc2lvbk1hYy5tbQppbmRleCA4Njg3YTQxNGFmZDI3ZTY3ZDAyZmE2NDE4NjIyZTI5MjU2
NjNiODE3Li4xMDlkMWViODgxOGUxZTFlZmY4MDE5MzI0YTc0OTZjMmU3ODcwMGE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC0x
MjgsNyArMTI4LDcgQEAgc2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpzaXpl
KCkgY29uc3QKIAogdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5l
bmNvZGVVSW50NjQoc2l6ZSgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHNpemUoKSkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zaXplOyArK2kp
CiAgICAgICAgIGVuY29kZXItPmVuY29kZShtX2RhdGFbaV0pOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwCmluZGV4IGFhMWM0NTkz
MmIwNjFiODk3YzVlOTdlNTgzMmM3NmUyNmY1NGJhN2EuLjJmYjJmMjg0NTg3MWUzZmYxMzY2Yjkw
NjY2NGE3ZGZhYTgwZGIxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2VjSXRlbVJlcXVlc3REYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXF1ZXN0RGF0YS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBTZWNJdGVtUmVxdWVz
dERhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAK
ICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9xdWVyeURpY3Rpb25hcnkuZ2V0KCkpOwog
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChtX2F0dHJpYnV0ZXNUb01hdGNoLmdldCgpKTsKKyAg
ICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9hdHRyaWJ1dGVzVG9NYXRjaCkp
OwogICAgIGlmIChtX2F0dHJpYnV0ZXNUb01hdGNoKQogICAgICAgICBDb3JlSVBDOjplbmNvZGUo
ZW5jb2RlciwgbV9hdHRyaWJ1dGVzVG9NYXRjaC5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcAppbmRleCA3NTgzZTAyZTEz
ZDY0OGMxMGRlMWQ4YTY0MTUyNWQ1M2YzMzk2ZGIyLi4wY2M4ZjEzNDcxZDRjMWZhMjA2NmNhOTkz
NTUwZDc5Y2JmNzc2MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXNwb25zZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVJlc3BvbnNlRGF0YS5jcHAKQEAgLTQzLDggKzQzLDggQEAgU2VjSXRlbVJlc3BvbnNlRGF0
YTo6U2VjSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cyByZXN1bHRDb2RlLCBDRlR5cGVSZWYgcmVz
dWx0T2IKIAogdm9pZCBTZWNJdGVtUmVzcG9uc2VEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZUludDY0KChp
bnQ2NF90KW1fcmVzdWx0Q29kZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChtX3Jlc3VsdE9i
amVjdC5nZXQoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGludDY0X3Q+KG1f
cmVzdWx0Q29kZSkpOworICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX3Jl
c3VsdE9iamVjdC5nZXQoKSkpOwogICAgIGlmIChtX3Jlc3VsdE9iamVjdCkKICAgICAgICAgQ29y
ZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fcmVzdWx0T2JqZWN0LmdldCgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0
YS5jcHAKaW5kZXggODc2Zjg2YjIxZmUwZTkyNzBiM2YyZDlmYzdiM2E2MmE0N2FkYzU0ZC4uZGNi
Zjk5NDU4YzY5NWEyOGQ3MGExNmIyZGM0Y2U3MjJlOTBmMjZhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAK
QEAgLTEyNywxNSArMTI3LDE1IEBAIHZvaWQgU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChtX2tl
eWNoYWluSXRlbSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fa2V5
Y2hhaW5JdGVtKSk7CiAgICAgaWYgKG1fa2V5Y2hhaW5JdGVtKQogICAgICAgICBDb3JlSVBDOjpl
bmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkpOwogCi0gICAgZW5jb2Rlci0+ZW5j
b2RlVUludDMyKG1fa2V5Y2hhaW5BdHRyaWJ1dGVzLnNpemUoKSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fa2V5Y2hhaW5BdHRyaWJ1dGVzLnNpemUoKSkpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IG1fa2V5Y2hhaW5BdHRyaWJ1dGVzLnNpemUo
KTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2tl
eWNoYWluQXR0cmlidXRlc1tpXSk7CiAgICAgCi0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0KG1f
aXRlbUNsYXNzKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1f
aXRlbUNsYXNzKSk7CiAgICAgbV9kYXRhUmVmZXJlbmNlLmVuY29kZShlbmNvZGVyKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNw
b25zZURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1S
ZXNwb25zZURhdGEuY3BwCmluZGV4IDcwYjI4NGE3ZDljYTgzOWMwY2FhYjMzZjVlNDdlNmJiNWUw
YzA1MmIuLjI0N2Y4OWI2YWM5OWY4MmY4NzFmNzkzZDg5MDZhM2JlNDg0OTlhMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlc3Bv
bnNlRGF0YS5jcHAKQEAgLTY1LDE3ICs2NSwxNyBAQCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURh
dGE6OlNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cyByZXN1bHRDb2RlKQogCiB2
b2lkIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVJbnQ2NCgoaW50
NjRfdCltX3Jlc3VsdENvZGUpOwotICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihtX2l0ZW1DbGFz
cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKG1fYXR0cmlidXRlcy5zaXplKCkpOworICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxpbnQ2NF90PihtX3Jlc3VsdENvZGUpKTsKKyAg
ICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1faXRlbUNsYXNzKSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2F0dHJpYnV0ZXMuc2l6
ZSgpKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gbV9hdHRyaWJ1dGVzLnNpemUo
KTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2F0
dHJpYnV0ZXNbaV0pOwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChtX2RhdGEuZ2V0KCkpOwor
ICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX2RhdGEpKTsKICAgICBpZiAo
bV9kYXRhKQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9kYXRhLmdldCgpKTsK
IAotICAgIGVuY29kZXItPmVuY29kZUJvb2wobV9rZXljaGFpbkl0ZW0uZ2V0KCkpOworICAgIGVu
Y29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOwogICAgIGlm
IChtX2tleWNoYWluSXRlbSkKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5
Y2hhaW5JdGVtLmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9x
dC9Bcmd1bWVudENvZGVyc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9Bcmd1bWVu
dENvZGVyc1F0LmNwcAppbmRleCBhNDM5Y2FmZjFlNDg4ZTEwMmM1NTBhZDA0ZjM0NmQ1OTk2ZGQx
ODkyLi42N2RhZDQ4Mjk2YzYxMWJkMzEwOTBmZmRhNzVmNDYyODFlNTJjMTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvQXJndW1lbnRDb2RlcnNRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT46OmVuY29kZShBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IERyCiAgICAgZW5jb2Rlci0+ZW5jb2RlKCh1aW50NjRf
dClkcmFnRGF0YS5mbGFncygpKTsKIAogICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhID0gZHJhZ0Rh
dGEucGxhdGZvcm1EYXRhKCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChoYXNQbGF0Zm9ybURh
dGEpOworICAgIGVuY29kZXItPmVuY29kZShoYXNQbGF0Zm9ybURhdGEpOwogICAgIGlmICghaGFz
UGxhdGZvcm1EYXRhKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0YS5jcHAKaW5kZXggZjE0MDQyNzI3YmY4Y2ZmMDNiOWU3
YWIwZDRjMWMyMmRhMDczMTdjMC4uOTBmNjhlNzhmYjU5ZWVhNGM1NzYyNGFjNjc3ZWU3ZmYzODhl
NDI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0
YS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBRdE5ldHdvcmtSZXBseURhdGE6OmVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdXJsU3RyaW5nKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobV9jb250ZW50VHlwZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUludDY0KG1fY29udGVudExlbmd0aCk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2NvbnRlbnRMZW5ndGgpKTsKICAgICBl
bmNvZGVyLT5lbmNvZGUobV9yZXBseVV1aWQpOwogICAgIGVuY29kZXItPmVuY29kZShtX2RhdGFI
YW5kbGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uY3BwCmluZGV4IGM3YmFiYTNlZWNmYmMyOTQ0ZTk0MTk0Mjc2YTlk
NjE1YzRiNWJmOWUuLjM4OGJlN2FkOGQxOWMwOGRjYmM1ZmU1YmFhZWNhZWZlYTgzNTI5YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5jcHAKQEAgLTU0LDE4ICs1NCwxOCBAQCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6
flBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkKIHZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2NlcnRpZmljYXRlKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZUJvb2woZmFsc2Up
OworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgR0J5dGVBcnJheSogY2VydGlmaWNhdGVEYXRhID0gMDsKICAgICBnX29iamVjdF9n
ZXQoR19PQkpFQ1QobV9jZXJ0aWZpY2F0ZS5nZXQoKSksICJjZXJ0aWZpY2F0ZSIsICZjZXJ0aWZp
Y2F0ZURhdGEsIE5VTEwpOwogICAgIGlmICghY2VydGlmaWNhdGVEYXRhKSB7Ci0gICAgICAgIGVu
Y29kZXItPmVuY29kZUJvb2woZmFsc2UpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2Up
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZW5jb2Rlci0+ZW5jb2RlQm9vbCh0cnVl
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUodHJ1ZSk7CiAgICAgR1JlZlB0cjxHQnl0ZUFycmF5PiBj
ZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEpOwogICAgIGVuY29kZXItPmVu
Y29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlm
aWNhdGUtPmRhdGEsIGNlcnRpZmljYXRlLT5sZW4pKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KG1fdGxzRXJyb3JzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd2luL0xheWVyVHJlZUNvbnRleHRXaW4uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL3dpbi9MYXllclRyZWVDb250ZXh0V2luLmNwcAppbmRleCAyY2RmMmIzOWNmY2Q1MThj
ZDhmNmQ1ZDlhZmExYzI1YmVlZGIzZWMyLi5hZDA1YzFkMDMyYTQwMDAzNTk1YjA5MzFiMjM0YWRi
ZTE4ZGQyMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL0xheWVyVHJl
ZUNvbnRleHRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vTGF5ZXJUcmVl
Q29udGV4dFdpbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVy
VHJlZUNvbnRleHQoKQogCiB2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVUlu
dDY0KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHdpbmRvdykpOworICAgIGVuY29kZXItPmVu
Y29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpKTsKIH0KIAogYm9vbCBMYXll
clRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBM
YXllclRyZWVDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd2luL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcAppbmRleCA0YjgzZmJkNTMyODE4NzQ4
OTk3ZmExZmE3ZGNhZjQ0NWY3ZDM2MDFkLi4wOGNkNGUyYjMzMmIwNGJkYWE0YjkxNDdiNTkxZGQ3
YzBhM2IxNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmNwcApAQCAtMTEwLDEyICsxMTAsMTIgQEAgdm9pZCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKIHsKICAgICAvLyBTcGVjaWFsIGNhc2Ugbm8gY2VydGlmaWNhdGVzCiAgICAgaWYg
KG1fY2VydGlmaWNhdGVDaGFpbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
VUludDY0KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7CisgICAgICAgIGVu
Y29kZXItPmVuY29kZShzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgdWludDY0X3QgbGVuZ3RoID0gbV9jZXJ0aWZpY2F0
ZUNoYWluLnNpemUoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQobGVuZ3RoKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUobGVuZ3RoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVu
Z3RoOyArK2kpCiAgICAgICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5
KENvcmVJUEM6OkRhdGFSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fY2VydGlmaWNh
dGVDaGFpbltpXS0+cGJDZXJ0RW5jb2RlZCksIG1fY2VydGlmaWNhdGVDaGFpbltpXS0+Y2JDZXJ0
RW5jb2RlZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dH
ZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5LmNw
cAppbmRleCBlOGU1MjMxM2JiNGJmYTBkOTcyNjRkN2RkMmEwMWQ4MWU3YTAxNTEyLi43M2NhYTA1
ZGRmYmJiYWM0MGQ0MDY2MDI3YTU3ZjE3ZGM0ZmRiNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5LmNwcApAQCAtMzgsNyArMzgsNyBAQCBXaW5kb3dHZW9t
ZXRyeTo6V2luZG93R2VvbWV0cnkoKQogCiB2b2lkIFdpbmRvd0dlb21ldHJ5OjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZVVJbnQ2NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4od2luZG93KSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKHZpc2libGUpOwogICAgIGVuY29kZXItPmVuY29kZShmcmFtZSk7CiAgICAg
ZW5jb2Rlci0+ZW5jb2RlKGNsaXBSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9FbmNvZGVyQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRW5jb2RlckFkYXB0ZXIuY3BwCmluZGV4IDU0ZjkzNzJkMTk5NjBlNTJi
Y2U5ODFhOWEwY2RlNTY0YWMyMzg1ZGMuLmI3MjY5Y2FhMTc2NjczNzBjMTQ1ODY1MmFmZDcyOTdl
NDBjYjViZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9F
bmNvZGVyQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0VuY29kZXJBZGFwdGVyLmNwcApAQCAtNTIsNDIgKzUyLDQyIEBAIHZvaWQgRW5jb2RlckFkYXB0
ZXI6OmVuY29kZUJ5dGVzKGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3Qgc2l6ZSkKIAogdm9p
ZCBFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlQm9vbChib29sIHZhbHVlKQogewotICAgIG1fZW5jb2Rl
ci0+ZW5jb2RlQm9vbCh2YWx1ZSk7CisgICAgbV9lbmNvZGVyLT5lbmNvZGUodmFsdWUpOwogfQog
CiB2b2lkIEVuY29kZXJBZGFwdGVyOjplbmNvZGVVSW50MTYodWludDE2X3QgdmFsdWUpCiB7Ci0g
ICAgbV9lbmNvZGVyLT5lbmNvZGVVSW50MTYodmFsdWUpOworICAgIG1fZW5jb2Rlci0+ZW5jb2Rl
KHZhbHVlKTsKIH0KIAogdm9pZCBFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlVUludDMyKHVpbnQzMl90
IHZhbHVlKQogewotICAgIG1fZW5jb2Rlci0+ZW5jb2RlVUludDMyKHZhbHVlKTsKKyAgICBtX2Vu
Y29kZXItPmVuY29kZSh2YWx1ZSk7CiB9CiAKIHZvaWQgRW5jb2RlckFkYXB0ZXI6OmVuY29kZVVJ
bnQ2NCh1aW50NjRfdCB2YWx1ZSkKIHsKLSAgICBtX2VuY29kZXItPmVuY29kZVVJbnQ2NCh2YWx1
ZSk7CisgICAgbV9lbmNvZGVyLT5lbmNvZGUodmFsdWUpOwogfQogCiB2b2lkIEVuY29kZXJBZGFw
dGVyOjplbmNvZGVJbnQzMihpbnQzMl90IHZhbHVlKQogewotICAgIG1fZW5jb2Rlci0+ZW5jb2Rl
SW50MzIodmFsdWUpOworICAgIG1fZW5jb2Rlci0+ZW5jb2RlKHZhbHVlKTsKIH0KIAogdm9pZCBF
bmNvZGVyQWRhcHRlcjo6ZW5jb2RlSW50NjQoaW50NjRfdCB2YWx1ZSkKIHsKLSAgICBtX2VuY29k
ZXItPmVuY29kZUludDY0KHZhbHVlKTsKKyAgICBtX2VuY29kZXItPmVuY29kZSh2YWx1ZSk7CiB9
CiAKIHZvaWQgRW5jb2RlckFkYXB0ZXI6OmVuY29kZUZsb2F0KGZsb2F0IHZhbHVlKQogewotICAg
IG1fZW5jb2Rlci0+ZW5jb2RlRmxvYXQodmFsdWUpOworICAgIG1fZW5jb2Rlci0+ZW5jb2RlKHZh
bHVlKTsKIH0KIAogdm9pZCBFbmNvZGVyQWRhcHRlcjo6ZW5jb2RlRG91YmxlKGRvdWJsZSB2YWx1
ZSkKIHsKLSAgICBtX2VuY29kZXItPmVuY29kZURvdWJsZSh2YWx1ZSk7CisgICAgbV9lbmNvZGVy
LT5lbmNvZGUodmFsdWUpOwogfQogCiB2b2lkIEVuY29kZXJBZGFwdGVyOjplbmNvZGVTdHJpbmco
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIEVuY29kZXJBZGFw
dGVyOjplbmNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogICAgIC8vIFNwZWNpYWwg
Y2FzZSB0aGUgbnVsbCBzdHJpbmcuCiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7Ci0gICAgICAg
IG1fZW5jb2Rlci0+ZW5jb2RlVUludDMyKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+Ojpt
YXgoKSk7CisgICAgICAgIG1fZW5jb2Rlci0+ZW5jb2RlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDMyX3Q+OjptYXgoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>
<flag name="review"
          id="183178"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>