<?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>157936</bug_id>
          
          <creation_ts>2016-05-19 17:23:44 -0700</creation_ts>
          <short_desc>[JSC] Improve int-&gt;float conversion in FTL</short_desc>
          <delta_ts>2016-05-19 19:43:07 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195051</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-19 17:23:44 -0700</bug_when>
    <thetext>[JSC] Improve int-&gt;float conversion in FTL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195054</commentid>
    <comment_count>1</comment_count>
      <attachid>279458</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-19 17:29:30 -0700</bug_when>
    <thetext>Created attachment 279458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195074</commentid>
    <comment_count>2</comment_count>
      <attachid>279464</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-19 19:14:20 -0700</bug_when>
    <thetext>Created attachment 279464
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195081</commentid>
    <comment_count>3</comment_count>
      <attachid>279464</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 19:43:02 -0700</bug_when>
    <thetext>Comment on attachment 279464
Patch for landing

Clearing flags on attachment: 279464

Committed r201208: &lt;http://trac.webkit.org/changeset/201208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195082</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 19:43:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279458</attachid>
            <date>2016-05-19 17:29:30 -0700</date>
            <delta_ts>2016-05-19 19:14:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157936-20160519173030.patch</filename>
            <type>text/plain</type>
            <size>29164</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzRmNTc0ODIyZWM0YzRjZmRmNGI2ZWIxYTQ3NWIwOTc0YzQ1YjgwLi4xZTU0N2ZhZWE1MDkxMTYx
YzNlNjNiZjFiODQ4MjAxNTQ1MjUxYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NCBAQAorMjAxNi0wNS0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbXByb3ZlIGludC0+ZmxvYXQgY29udmVyc2lvbiBpbiBG
VEwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBp
bnRlZ2VyIC0+IGZsb2F0aW5nIHBvaW50IGxvd2VyaW5nIHdhcyB2ZXJ5IGJhcmVib25lLgorCisg
ICAgICAgIEZvciBleGFtcGxlLCBjb252ZXJ0aW5nIGEgY29uc3RhbnQgaW50ZWdlciB0byBkb3Vi
bGUKKyAgICAgICAgd2FzIGRvaW5nOgorICAgICAgICAgICAgbW92ICNjb25zdCwgJWVheAorICAg
ICAgICAgICAgeG9yICV4bW0wLCAleG1tMAorICAgICAgICAgICAgY3Z0c2kyc2QgJWVheCwgJXht
bTAKKworICAgICAgICBDb252ZXJzaW9uIGZyb20gaW50ZWdlciB0byBmbG9hdCB3YXMgYWxzbyBt
aXNzaW5nLgorICAgICAgICBXZSB3ZXJlIGFsd2F5cyBjb252ZXJ0aW5nIHRvIGRvdWJsZSB0aGVu
IHJvdW5kaW5nIHRoZSBkb3VibGUKKyAgICAgICAgdG8gZmxvYXQuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHRoZSBiYXNpY3M6CisgICAgICAgIC1Db25zdGFudCBmb2xkaW5nLgorICAgICAg
ICAtSW50ZWdlciB0byBGbG9hdCBvcGNvZGUuCisgICAgICAgIC1SZWR1Y2luZyBpbnQtPmRvdWJs
ZSB0byBpbnQtPmZsb2F0IHdoZW4gdXNlZCBieSBEb3VibGVUb0Zsb2F0LgorCisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpjb252ZXJ0SW50MzJUb0Zsb2F0KToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZfNjQ6OmNvbnZlcnRJbnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZfNjQ6OmNvbnZlcnRJbnQ2NFRvRmxvYXQpOgorICAgICAgICAqIGFzc2VtYmxlci9Y
ODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjdnRzaTJzc19ycik6
CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3Z0c2kyc3NxX3JyKToKKyAgICAgICAgKEpT
Qzo6WDg2QXNzZW1ibGVyOjpjdnRzaTJzZHFfbXIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJs
ZXI6OmN2dHNpMnNzcV9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3Z0c2kyc3Nf
bXIpOgorICAgICAgICAqIGIzL0IzQ29uc3QzMlZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkNvbnN0MzJWYWx1ZTo6aVRvRENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJW
YWx1ZTo6aVRvRkNvbnN0YW50KToKKyAgICAgICAgKiBiMy9CM0NvbnN0MzJWYWx1ZS5oOgorICAg
ICAgICAqIGIzL0IzQ29uc3Q2NFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRW
YWx1ZTo6aVRvRENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6aVRv
RkNvbnN0YW50KToKKyAgICAgICAgKiBiMy9CM0NvbnN0NjRWYWx1ZS5oOgorICAgICAgICAqIGIz
L0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxv
d2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNSZWR1Y2VE
b3VibGVUb0Zsb2F0LmNwcDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAg
ICAgICAgKiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAg
ICAgICAgKEpTQzo6QjM6OlZhbHVlOjppVG9EQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6
VmFsdWU6OmlUb0ZDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6aXNSb3VuZGVk
KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6
OlZhbHVlOjprZXkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAg
ICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlS2V5LmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OlZhbHVlS2V5OjptYXRlcmlhbGl6ZSk6CisgICAgICAgICogYjMvYWlyL0FpckZp
eFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjppbnQ2
NE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9ENjRBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdElUb0Y2NEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDMyQXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GMzJBcmcpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdElUb0Q2NE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjY0TWVtKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Yz
Mk1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDY0SW1tKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RJVG9GNjRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0QzMkltbSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMySW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJ
VG9EUmVkdWNlZFRvSVRvRjY0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EUmVkdWNl
ZFRvSVRvRjMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnJ1bik6CisKIDIwMTYtMDUtMTkgIFNh
YW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgYXJyb3cgZnVuY3Rpb24g
bGV4aWNhbCBlbnZpcm9ubWVudCBzaG91bGQgcmV1c2UgdGhlIHNhbWUgZW52aXJvbm1lbnQgYXMg
dGhlIGZ1bmN0aW9uJ3MgbGV4aWNhbCBlbnZpcm9ubWVudCB3aGVyZSBwb3NzaWJsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCmluZGV4IDM0MjlmMjNiZDY1YjUwZTYxN2I3NzkyNDA0YjgwZmMyMjlhYWNlZDMu
LmNkZWNiNjQ4MWE0MDExYjAwYTQzMGE5NDZiNzBlZjY1N2MxZGZlMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uLmgKQEAgLTE1NDMsNiArMTU0MywxOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVy
LmN2dHNpMnNkX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkZXN0KTsKICAgICB9CiAKKyAgICB2
b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7CisgICAgICAgIG1fYXNz
ZW1ibGVyLmN2dHNpMnNzX3JyKHNyYywgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBjb252ZXJ0
SW50MzJUb0Zsb2F0KEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOworICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJz
c19tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVzdCk7CisgICAgfQorCiAgICAgSnVtcCBicmFu
Y2hEb3VibGUoRG91YmxlQ29uZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBsZWZ0LCBGUFJlZ2lz
dGVySUQgcmlnaHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZfNjQuaAppbmRleCBkZmRiZTIzY2EwNjYwMjcyYjY5NWYyZGRjZWQxNTAwN2JjM2ZmMGFjLi5i
OWY1MjY0YzU4ZGQ3MmNlNDdjNjk1NzI2MzU3MTI5MjQxNWQ1NDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBA
IC0xMjMzLDYgKzEyMzMsMjEgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJz
ZHFfcnIoc3JjLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQ2NFRvRG91Ymxl
KEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1i
bGVyLmN2dHNpMnNkcV9tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBjb252ZXJ0SW50NjRUb0Zsb2F0KFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNzcV9ycihzcmMsIGRlc3Qp
OworICAgIH0KKworICAgIHZvaWQgY29udmVydEludDY0VG9GbG9hdChBZGRyZXNzIHNyYywgRlBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJzc3FfbXIo
c3JjLm9mZnNldCwgc3JjLmJhc2UsIGRlc3QpOworICAgIH0KKwogICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggYmJm
MWNlNjhiYTc1Y2Y1MjhjYWI5MjJlY2JhZmNhYTVhNTA5NDM4OS4uMmU0OGY3MTIxMWNhNTllNzQ4
Y2M0YTdiY2U1YmQzNGNhMWE4NDQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0yMTcyLDEyICsyMTcyLDM2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9DVlRTSTJTRF9Wc2RFZCwgKFJlZ2lzdGVy
SUQpZHN0LCBzcmMpOwogICAgIH0KIAorICAgIHZvaWQgY3Z0c2kyc3NfcnIoUmVnaXN0ZXJJRCBz
cmMsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4
KFBSRV9TU0VfRjMpOworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNE
X1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIHNyYyk7CisgICAgfQorCiAjaWYgQ1BVKFg4Nl82NCkK
ICAgICB2b2lkIGN2dHNpMnNkcV9ycihSZWdpc3RlcklEIHNyYywgWE1NUmVnaXN0ZXJJRCBkc3Qp
CiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NTRV9GMik7CiAgICAgICAg
IG1fZm9ybWF0dGVyLnR3b0J5dGVPcDY0KE9QMl9DVlRTSTJTRF9Wc2RFZCwgKFJlZ2lzdGVySUQp
ZHN0LCBzcmMpOwogICAgIH0KKworICAgIHZvaWQgY3Z0c2kyc3NxX3JyKFJlZ2lzdGVySUQgc3Jj
LCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQ
UkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0NWVFNJMlNE
X1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIHNyYyk7CisgICAgfQorCisgICAgdm9pZCBjdnRzaTJz
ZHFfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAg
ICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YyKTsKKyAgICAgICAgbV9m
b3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3Qs
IGJhc2UsIG9mZnNldCk7CisgICAgfQorCisgICAgdm9pZCBjdnRzaTJzc3FfbXIoaW50IG9mZnNl
dCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1f
Zm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0
ZU9wNjQoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7
CisgICAgfQogI2VuZGlmCiAKICAgICB2b2lkIGN2dHNpMnNkX21yKGludCBvZmZzZXQsIFJlZ2lz
dGVySUQgYmFzZSwgWE1NUmVnaXN0ZXJJRCBkc3QpCkBAIC0yMTg2LDYgKzIyMTAsMTIgQEAgcHVi
bGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNEX1ZzZEVkLCAo
UmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCisgICAgdm9pZCBjdnRzaTJz
c19tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAg
IHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMpOworICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIGJh
c2UsIG9mZnNldCk7CisgICAgfQorCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBjdnRzaTJz
ZF9tcihjb25zdCB2b2lkKiBhZGRyZXNzLCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNwcAppbmRleCBjNDI5YzU1N2I0
MzFjYWNlZmE3NjQ3NTJlOWUwNTZiMzExMTRkNmU3Li41YWMyMmJmYzkwNDczNTc3N2I2ODVlNTM5
ODY5NDRjZDk3ZTM5MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b25zdDMyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJW
YWx1ZS5jcHAKQEAgLTE2Niw2ICsxNjYsMTYgQEAgVmFsdWUqIENvbnN0MzJWYWx1ZTo6Yml0d2lz
ZUNhc3RDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0CiAgICAgcmV0dXJuIHByb2MuYWRk
PENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIGJpdHdpc2VfY2FzdDxmbG9hdD4obV92YWx1ZSkp
OwogfQogCitWYWx1ZSogQ29uc3QzMlZhbHVlOjppVG9EQ29uc3RhbnQoUHJvY2VkdXJlJiBwcm9j
KSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxDb25zdERvdWJsZVZhbHVlPihvcmlnaW4o
KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ZhbHVlKSk7Cit9CisKK1ZhbHVlKiBDb25zdDMyVmFs
dWU6OmlUb0ZDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBy
b2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIHN0YXRpY19jYXN0PGZsb2F0PihtX3Zh
bHVlKSk7Cit9CisKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6ZXF1YWxDb25zdGFudChjb25zdCBW
YWx1ZSogb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKaW5kZXggZDVhMGZmZTgxMzgyZmU4
ODdkNGIzOGE3Yzk0NWFmNjcyZjU0MzE2MC4uMTRlOTUwNDM0ODRjZmNkZWE5ZDE3YmI2YWNlZTIx
MWRkYzcyNzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Qz
MlZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgK
QEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIFZhbHVlKiBzU2hyQ29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogelNo
ckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgVmFsdWUqIGlUb0RDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsK
KyAgICBWYWx1ZSogaVRvRkNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgVHJpU3RhdGUgZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFRyaVN0YXRlIG5vdEVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnN0NjRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUu
Y3BwCmluZGV4IGJlN2U0NjgyNzE5ZDFiOTlhZTI5ZTA4Njg4NzUyYzViODZlODA0ZjguLjVjODlm
NmNkZjk2YjYwNzkyMTNhZjQyYTAyYTEzOTAwMWQxZjc1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcApAQCAtMTY2LDYgKzE2NiwxNiBAQCBWYWx1ZSog
Q29uc3Q2NFZhbHVlOjpiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QK
ICAgICByZXR1cm4gcHJvYy5hZGQ8Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIGJpdHdpc2Vf
Y2FzdDxkb3VibGU+KG1fdmFsdWUpKTsKIH0KIAorVmFsdWUqIENvbnN0NjRWYWx1ZTo6aVRvRENv
bnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvYy5hZGQ8Q29u
c3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIHN0YXRpY19jYXN0PGRvdWJsZT4obV92YWx1ZSkpOwor
fQorCitWYWx1ZSogQ29uc3Q2NFZhbHVlOjppVG9GQ29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jKSBj
b25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxDb25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBz
dGF0aWNfY2FzdDxmbG9hdD4obV92YWx1ZSkpOworfQorCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6
OmVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogewogICAgIGlmICghb3Ro
ZXItPmhhc0ludDY0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b25zdDY0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5o
CmluZGV4IGJmNWE0ZTI0Y2U1MmQ2NjYzMmU3ZjhmOWQ3OThkODdjMDZkMWRjOWYuLmZhYjk2MjZi
NWI0ZTk4ZGQ3Y2JhNDhjM2VmMDM5YmZkMjU3ZGU3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICBWYWx1
ZSogc1NockNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgVmFsdWUqIHpTaHJDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZhbHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFBy
b2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZhbHVlKiBpVG9EQ29uc3RhbnQoUHJvY2Vk
dXJlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIGlUb0ZDb25zdGFudChQcm9jZWR1cmUm
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKICAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50
KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGE1NTE2M2ViMjc4OWM3NDZhMTBhMjdlNWQwODc1
ZDk0YWNiMWI0ZDcuLmVhN2VlMDcwMDI5MTFhY2Y0YTQxOTcyNzAwMzZmYzc2MTczMGM4YmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC0yMTUwLDYgKzIx
NTAsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAg
ICAgIGNhc2UgSVRvRjogeworICAgICAgICAgICAgYXBwZW5kVW5PcDxDb252ZXJ0SW50MzJUb0Zs
b2F0LCBDb252ZXJ0SW50NjRUb0Zsb2F0PihtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIEIzOjpDQ2FsbDogewogICAgICAg
ICAgICAgQ0NhbGxWYWx1ZSogY0NhbGwgPSBtX3ZhbHVlLT5hczxDQ2FsbFZhbHVlPigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAppbmRleCBhZTBiOTQ4OGRmZjg0OTUwZWVk
ZDg4ZTk0NmFlYmRiOGNlNzMxOGRlLi4yMDcyMjFkYzA5MjVjOTBhNjVhZGNjMmY5NTdhMTRmZmMz
NGUwNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKQEAgLTE4OCw2ICsx
ODgsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29k
ZSkKICAgICBjYXNlIElUb0Q6CiAgICAgICAgIG91dC5wcmludCgiSVRvRCIpOwogICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBJVG9GOgorICAgICAgICBvdXQucHJpbnQoIklUb0YiKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgRmxvYXRUb0RvdWJsZToKICAgICAgICAgb3V0LnByaW50KCJG
bG9hdFRvRG91YmxlIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bj
b2RlLmgKaW5kZXggNzZiOTFiNjI0YzVmOTA0NjRmZDBjMGI2NjBkM2YwMGI5YjU5MjE2Yi4uMzM4
ZWRlOGQ2ZjBmZGRhMjJlNTRmN2I0ZWRiYWRlMjk3MDZkYjZjMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgKQEAgLTExMSwxMCArMTExLDExIEBAIGVudW0gT3Bjb2RlIDogaW50MTZf
dCB7CiAgICAgWkV4dDMyLAogICAgIC8vIFRha2VzIEludDY0IGFuZCByZXR1cm5zIEludDMyOgog
ICAgIFRydW5jLAotICAgIC8vIFRha2VzIGludHMgYW5kIHJldHVybnMgRG91YmxlLiBOb3RlIHRo
YXQgd2UgZG9uJ3QgY3VycmVudGx5IHByb3ZpZGUgdGhlIG9wcG9zaXRlIG9wZXJhdGlvbiwKKyAg
ICAvLyBUYWtlcyBpbnRzIGFuZCByZXR1cm5zIGZsb2F0aW5nIHBvaW50IHZhbHVlLiBOb3RlIHRo
YXQgd2UgZG9uJ3QgY3VycmVudGx5IHByb3ZpZGUgdGhlIG9wcG9zaXRlIG9wZXJhdGlvbiwKICAg
ICAvLyBiZWNhdXNlIGRvdWJsZS10by1pbnQgY29udmVyc2lvbnMgaGF2ZSB3ZWlyZGx5IGRpZmZl
cmVudCBzZW1hbnRpY3Mgb24gZGlmZmVyZW50IHBsYXRmb3Jtcy4gVXNlCiAgICAgLy8gYSBwYXRj
aHBvaW50IGlmIHlvdSBuZWVkIHRvIGRvIHRoYXQuCiAgICAgSVRvRCwKKyAgICBJVG9GLAogICAg
IC8vIENvbnZlcnQgYmV0d2VlbiBkb3VibGUgYW5kIGZsb2F0LgogICAgIEZsb2F0VG9Eb3VibGUs
CiAgICAgRG91YmxlVG9GbG9hdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKaW5kZXggNGUzY2YzN2Y4NTIyMDVmNTJjMmQyOWFhMzA1
YjcyNWQyMDkyYjY5Zi4uNGM3MjFjODIwNjQzMTdhNjQ2MjFhZTk3Zjk4OTg4NTk5MjU0MWFkMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9h
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9h
dC5jcHAKQEAgLTMxMSw2ICszMTEsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgY2FzZSBJVG9EOiB7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBpVG9GID0g
aW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oaW5kZXgsIElUb0YsIHZhbHVlLT5vcmlnaW4oKSwg
dmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnNldFR5cGUoRmxv
YXQpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShpVG9G
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9jb252ZXJ0ZWRWYWx1ZS5hZGQodmFsdWUpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgY2FzZSBGbG9hdFRvRG91YmxlOgogICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGhhcHBl
bnMgaWYgd2Ugcm91bmQgdHdpY2UuCiAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGljYWxseSwg
dGhpcyBpcyBpbmRpcmVjdCB0aHJvdWdoIFBoaS1VcHNpbG9ucy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCA0MzYzYjllMmMyNWVjNzgzMGRm
ZjlkYTUxYjFkNTMxMTMzNmUyYTA4Li4yYjQ5YzlmMGU1MTIyMTI4MjZlZWFkZmIyOTlhOTY1OTc2
YWYwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGgu
Y3BwCkBAIC0xMzI0LDYgKzEzMjQsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgSVRvRDoKKyAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogSVRvRChjb25zdGFudCkKKyAgICAgICAgICAgIC8vIEludG8gdGhpczogQ29uc3REb3Vi
bGUoY29uc3RhbnQpCisgICAgICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+
Y2hpbGQoMCktPmlUb0RDb25zdGFudChtX3Byb2MpKSB7CisgICAgICAgICAgICAgICAgcmVwbGFj
ZVdpdGhOZXdWYWx1ZShjb25zdGFudCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIElUb0Y6CisgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IElUb0YoY29uc3RhbnQpCisgICAgICAgICAgICAvLyBJbnRvIHRo
aXM6IENvbnN0RmxvYXQoY29uc3RhbnQpCisgICAgICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50
ID0gbV92YWx1ZS0+Y2hpbGQoMCktPmlUb0ZDb25zdGFudChtX3Byb2MpKSB7CisgICAgICAgICAg
ICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShjb25zdGFudCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIEZs
b2F0VG9Eb3VibGU6CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEZsb2F0VG9Eb3VibGUoY29u
c3RhbnQpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IENvbnN0RG91YmxlKGNvbnN0YW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCmluZGV4IDhiMDNkMmFhZWFlMTVk
NmY1NmZlYzY2NWM1MzM0Y2U5Nzc3ZGNhZTIuLjA1NjRhODNjNTE0OWY4NmZlNTcwZWM4YTU4NzU2
N2Q0YWU0NDA4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAg
LTI1Miw2ICsyNTIsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50
KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IERvdWJsZSwgKCJBdCAiLCAqdmFsdWUpKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSVRvRjoKKyAgICAgICAg
ICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlw
ZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpID09IEZsb2F0LCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBGbG9hdFRvRG91YmxlOgogICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gRmxvYXQsICgiQXQg
IiwgKnZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggZWUyMzgw
OGI1YjNhODUzNGRmZDBlMmVhNmY1ZDY4MjM5YWVmMzAzOC4uOTZjNzVjNGNmNDg1YjM4ZmY0NmEx
OTkwYjhjZGU4ZThiMDJiMzBjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApA
QCAtMjY3LDYgKzI2NywxNiBAQCBWYWx1ZSogVmFsdWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJv
Y2VkdXJlJikgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorVmFsdWUqIFZhbHVlOjpp
VG9EQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworVmFsdWUqIFZhbHVlOjppVG9GQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwogVmFsdWUqIFZhbHVlOjpkb3VibGVUb0Zsb2F0Q29uc3RhbnQo
UHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTM2OCw2ICszNzgs
NyBAQCBib29sIFZhbHVlOjppc1JvdW5kZWQoKSBjb25zdAogICAgIGNhc2UgRmxvb3I6CiAgICAg
Y2FzZSBDZWlsOgogICAgIGNhc2UgSVRvRDoKKyAgICBjYXNlIElUb0Y6CiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgY2FzZSBDb25zdERvdWJsZTogewpAQCAtNDcwLDYgKzQ4MSw3IEBAIEVm
ZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIGNhc2UgWkV4dDMyOgogICAgIGNhc2Ug
VHJ1bmM6CiAgICAgY2FzZSBJVG9EOgorICAgIGNhc2UgSVRvRjoKICAgICBjYXNlIEZsb2F0VG9E
b3VibGU6CiAgICAgY2FzZSBEb3VibGVUb0Zsb2F0OgogICAgIGNhc2UgRXF1YWw6CkBAIC01NTMs
NiArNTY1LDcgQEAgVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0CiAgICAgY2FzZSBDbHo6CiAg
ICAgY2FzZSBUcnVuYzoKICAgICBjYXNlIElUb0Q6CisgICAgY2FzZSBJVG9GOgogICAgIGNhc2Ug
RmxvYXRUb0RvdWJsZToKICAgICBjYXNlIERvdWJsZVRvRmxvYXQ6CiAgICAgY2FzZSBDaGVjazoK
QEAgLTY5MCw2ICs3MDMsNyBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZh
bHVlKiBmaXJzdENoaWxkLCBWYWx1ZSogc2Vjb25kQ2hpbGQpCiAgICAgY2FzZSBJVG9EOgogICAg
ICAgICByZXR1cm4gRG91YmxlOwogICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKKyAgICBjYXNlIElU
b0Y6CiAgICAgICAgIHJldHVybiBGbG9hdDsKICAgICBjYXNlIEJpdHdpc2VDYXN0OgogICAgICAg
ICBzd2l0Y2ggKGZpcnN0Q2hpbGQtPnR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmgKaW5kZXggOTgxZjAwN2FmODhmNGYyOGI0ZTZlZmNlMWQxMWY0ZTZjZjJmNjcxNi4uNzUzNDA4
MmZhZWY1Y2UxNTdlYTZhYTczNDUzMmI5MDkxODdhMTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5oCkBAIC0xMzMsNiArMTMzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgVmFsdWUq
IHNTaHJDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAg
IHZpcnR1YWwgVmFsdWUqIHpTaHJDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2Vk
dXJlJikgY29uc3Q7CisgICAgdmlydHVhbCBWYWx1ZSogaVRvRENvbnN0YW50KFByb2NlZHVyZSYp
IGNvbnN0OworICAgIHZpcnR1YWwgVmFsdWUqIGlUb0ZDb25zdGFudChQcm9jZWR1cmUmKSBjb25z
dDsKICAgICB2aXJ0dWFsIFZhbHVlKiBkb3VibGVUb0Zsb2F0Q29uc3RhbnQoUHJvY2VkdXJlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCBWYWx1ZSogZmxvYXRUb0RvdWJsZUNvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVLZXkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVLZXkuY3BwCmluZGV4IDM3MGZjYTBi
ODliOWIyNGI4NjZmZWJiNjJhNzIxNmExNjhjZWQ4ZmMuLmU3ZjNmNjQxNjI0NjgzZWNkZjAyYzVl
OTdhM2U3Zjk2MzU5ODQyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlS2V5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZUtleS5j
cHAKQEAgLTY4LDYgKzY4LDcgQEAgVmFsdWUqIFZhbHVlS2V5OjptYXRlcmlhbGl6ZShQcm9jZWR1
cmUmIHByb2MsIE9yaWdpbiBvcmlnaW4pIGNvbnN0CiAgICAgY2FzZSBDbHo6CiAgICAgY2FzZSBU
cnVuYzoKICAgICBjYXNlIElUb0Q6CisgICAgY2FzZSBJVG9GOgogICAgIGNhc2UgRmxvYXRUb0Rv
dWJsZToKICAgICBjYXNlIERvdWJsZVRvRmxvYXQ6CiAgICAgY2FzZSBDaGVjazoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3Rh
bGxzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4UGFydGlhbFJlZ2lz
dGVyU3RhbGxzLmNwcAppbmRleCBjMzY0MGQ2MGY5OTQxNjNlNzg4OTk0NTFiNjYxNDBmNDVmZTBh
YTM5Li5lZDdiODBhMGM4YjQ2YWEyNGNiYWM2ZDk3YmUzOWRhZDZkMjE3Y2ZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxs
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVn
aXN0ZXJTdGFsbHMuY3BwCkBAIC01MCw2ICs1MCw4IEBAIGJvb2wgaGFzUGFydGlhbFhtbVJlZ1Vw
ZGF0ZShjb25zdCBJbnN0JiBpbnN0KQogICAgIGNhc2UgQ29udmVydEZsb2F0VG9Eb3VibGU6CiAg
ICAgY2FzZSBDb252ZXJ0SW50MzJUb0RvdWJsZToKICAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91
YmxlOgorICAgIGNhc2UgQ29udmVydEludDMyVG9GbG9hdDoKKyAgICBjYXNlIENvbnZlcnRJbnQ2
NFRvRmxvYXQ6CiAgICAgY2FzZSBTcXJ0RG91YmxlOgogICAgIGNhc2UgU3FydEZsb2F0OgogICAg
IGNhc2UgQ2VpbERvdWJsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCmluZGV4IGNkY2M0N2VkNzM3YTljNDMyYTFhNzM5Y2JlOTg1NjA0N2Y5MzE0
MTQuLmYwNDMzYmEzNWY5MTFlNjBmZTA5NjAzMDZhMWQ1MWQxYWQ3OWQ4NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNDgwLDYgKzQ4
MCwxNSBAQCBDb252ZXJ0SW50MzJUb0RvdWJsZSBVOkc6MzIsIEQ6Rjo2NAogCiA2NDogQ29udmVy
dEludDY0VG9Eb3VibGUgVTpHOjY0LCBEOkY6NjQKICAgICBUbXAsIFRtcAorICAgIHg4Nl82NDog
QWRkciwgVG1wCisKK0NvbnZlcnRJbnQzMlRvRmxvYXQgVTpHOjMyLCBEOkY6MzIKKyAgICBUbXAs
IFRtcAorICAgIHg4NjogQWRkciwgVG1wCisKKzY0OiBDb252ZXJ0SW50NjRUb0Zsb2F0IFU6Rzo2
NCwgRDpGOjMyCisgICAgVG1wLCBUbXAKKyAgICB4ODZfNjQ6IEFkZHIsIFRtcAogCiBDb3VudExl
YWRpbmdaZXJvczMyIFU6RzozMiwgWkQ6RzozMgogICAgIFRtcCwgVG1wCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCmluZGV4IDU5ZDc0NjJjNWZjZTk5ZDk0MTM3M2U5YjhkNzY3MThkMDhi
NDg0NjMuLjBiNmQ2YWM3NTI2ZTRiYWViMGM5MmZkNzY0ZjIyYzcyMjJiMTE0OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTAsNiArMTUwLDcgQEAgVmVjdG9yPE9wZXJh
bmQ8RmxvYXRUeXBlPj4gZmxvYXRpbmdQb2ludE9wZXJhbmRzKCkKIHN0YXRpYyBWZWN0b3I8SW50
NjRPcGVyYW5kPiBpbnQ2NE9wZXJhbmRzKCkKIHsKICAgICBWZWN0b3I8SW50NjRPcGVyYW5kPiBv
cGVyYW5kczsKKyAgICBvcGVyYW5kcy5hcHBlbmQoeyAiMCIsIDAgfSk7CiAgICAgb3BlcmFuZHMu
YXBwZW5kKHsgIjEiLCAxIH0pOwogICAgIG9wZXJhbmRzLmFwcGVuZCh7ICItMSIsIC0xIH0pOwog
ICAgIG9wZXJhbmRzLmFwcGVuZCh7ICI0MiIsIDQyIH0pOwpAQCAtNDc1NSw2ICs0NzU2LDIwMSBA
QCB2b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVlKQogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+
KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CiAKK3ZvaWQgdGVzdElUb0Q2NEFyZygp
Cit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIFZhbHVlKiBz
cmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IHNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNEb3VibGUpOworCisgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
KyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQorICAgICAgICBDSEVD
Syhpc0lkZW50aWNhbChpbnZva2U8ZG91YmxlPigqY29kZSwgdGVzdFZhbHVlLnZhbHVlKSwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPih0ZXN0VmFsdWUudmFsdWUpKSk7Cit9CisKK3ZvaWQgdGVzdElUb0Y2
NEFyZygpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIFZh
bHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmln
aW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CisgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKKyAgICAgICAg
Q0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgdGVzdFZhbHVlLnZhbHVlKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SVRv
RDMyQXJnKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBW
YWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBzcmMpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CisgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1
ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFZhbHVlLnZhbHVlKSkpOworfQorCit2b2lkIHRl
c3RJVG9GMzJBcmcoKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwor
ICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9G
LCBPcmlnaW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CisgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKKyAg
ICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgdGVzdFZhbHVlLnZh
bHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1ZSkpKTsKK30KKwordm9pZCB0
ZXN0SVRvRDY0TWVtKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUq
IHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgbG9hZGVkU3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOworICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZh
bHVlIDogaW50NjRPcGVyYW5kcygpKSB7CisgICAgICAgIGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFs
dWUudmFsdWU7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxkb3VibGU+KCpjb2Rl
LCAmaW5NZW1vcnlWYWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFZhbHVlLnZhbHVlKSkp
OworICAgICAgICBDSEVDSyhpbk1lbW9yeVZhbHVlID09IHRlc3RWYWx1ZS52YWx1ZSk7CisgICAg
fQorfQorCit2b2lkIHRlc3RJVG9GNjRNZW0oKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNz
KTsKKyAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisKKyAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKKyAgICBmb3Ig
KGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKSB7CisgICAgICAgIGluTWVtb3J5VmFs
dWUgPSB0ZXN0VmFsdWUudmFsdWU7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxm
bG9hdD4oKmNvZGUsICZpbk1lbW9yeVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1
ZS52YWx1ZSkpKTsKKyAgICAgICAgQ0hFQ0soaW5NZW1vcnlWYWx1ZSA9PSB0ZXN0VmFsdWUudmFs
dWUpOworICAgIH0KK30KKwordm9pZCB0ZXN0SVRvRDMyTWVtKCkKK3sKKyAgICBQcm9jZWR1cmUg
cHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKKyAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisK
KyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDMyX3QgaW5NZW1vcnlWYWx1
ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAg
IGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFsdWUudmFsdWU7CisgICAgICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGludm9rZTxkb3VibGU+KCpjb2RlLCAmaW5NZW1vcnlWYWx1ZSksIHN0YXRpY19jYXN0PGRv
dWJsZT4odGVzdFZhbHVlLnZhbHVlKSkpOworICAgICAgICBDSEVDSyhpbk1lbW9yeVZhbHVlID09
IHRlc3RWYWx1ZS52YWx1ZSk7CisgICAgfQorfQorCit2b2lkIHRlc3RJVG9GMzJNZW0oKQorewor
ICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgTWVtb3J5VmFs
dWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
SW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7CisgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNGbG9hdCk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDMyX3Qg
aW5NZW1vcnlWYWx1ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygp
KSB7CisgICAgICAgIGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFsdWUudmFsdWU7CisgICAgICAgIENI
RUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsICZpbk1lbW9yeVZhbHVlKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1ZSkpKTsKKyAgICAgICAgQ0hFQ0soaW5NZW1v
cnlWYWx1ZSA9PSB0ZXN0VmFsdWUudmFsdWUpOworICAgIH0KK30KKwordm9pZCB0ZXN0SVRvRDY0
SW1tKGludDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKKyAgICBWYWx1ZSogc3Jj
QXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkp
KTsKK30KKwordm9pZCB0ZXN0SVRvRjY0SW1tKGludDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBW
YWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHZhbHVlKTsKKyAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQp
OworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0
aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7Cit9CisKK3ZvaWQgdGVzdElUb0QzMkltbShpbnQzMl90
IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQ
b2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7Cit9CisKK3Zv
aWQgdGVzdElUb0YzMkltbShpbnQzMl90IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9jOwor
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIHNyYyA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7Cisg
ICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRiwgT3JpZ2luKCksIHNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCkKK3sK
KyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOworICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIHNyY0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3Jj
KTsKKyAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwor
CisgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVl
IDogaW50NjRPcGVyYW5kcygpKQorICAgICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8Zmxv
YXQ+KCpjb2RlLCB0ZXN0VmFsdWUudmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odGVzdFZhbHVl
LnZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCkKK3sKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogc3JjQXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwor
ICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91
YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisKKyAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBp
bnQzMk9wZXJhbmRzKCkpCisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4o
KmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFs
dWUpKSk7Cit9CisKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwpAQCAtMTI1NDAsNiArMTI3MzYsMjEgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmls
dGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0RnJvdW5kQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8
ZG91YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVzdEZyb3VuZE1lbSwgZmxvYXRpbmdQb2ludE9w
ZXJhbmRzPGRvdWJsZT4oKSk7CiAKKyAgICBSVU4odGVzdElUb0Q2NEFyZygpKTsKKyAgICBSVU4o
dGVzdElUb0Y2NEFyZygpKTsKKyAgICBSVU4odGVzdElUb0QzMkFyZygpKTsKKyAgICBSVU4odGVz
dElUb0YzMkFyZygpKTsKKyAgICBSVU4odGVzdElUb0Q2NE1lbSgpKTsKKyAgICBSVU4odGVzdElU
b0Y2NE1lbSgpKTsKKyAgICBSVU4odGVzdElUb0QzMk1lbSgpKTsKKyAgICBSVU4odGVzdElUb0Yz
Mk1lbSgpKTsKKyAgICBSVU5fVU5BUlkodGVzdElUb0Q2NEltbSwgaW50NjRPcGVyYW5kcygpKTsK
KyAgICBSVU5fVU5BUlkodGVzdElUb0Y2NEltbSwgaW50NjRPcGVyYW5kcygpKTsKKyAgICBSVU5f
VU5BUlkodGVzdElUb0QzMkltbSwgaW50MzJPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVz
dElUb0YzMkltbSwgaW50MzJPcGVyYW5kcygpKTsKKyAgICBSVU4odGVzdElUb0RSZWR1Y2VkVG9J
VG9GNjRBcmcoKSk7CisgICAgUlVOKHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCkpOworCiAg
ICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7
CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50UHRyKDQ5KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279464</attachid>
            <date>2016-05-19 19:14:20 -0700</date>
            <delta_ts>2016-05-19 19:43:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157936-20160519191520.patch</filename>
            <type>text/plain</type>
            <size>30160</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODRhZjMzNWYxYTI0N2JkYzY2Y2ExZmVkYWI4YzM1MTA5MzIzYzVhLi5jZDNkYTk3MjFmMmVkMGM1
ZDA0Y2UwZTc2NGM5MDEwZDYwNjMxYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NSBAQAorMjAxNi0wNS0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbXByb3ZlIGludC0+ZmxvYXQgY29udmVyc2lvbiBpbiBG
VEwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFRoZSBpbnRl
Z2VyIC0+IGZsb2F0aW5nIHBvaW50IGxvd2VyaW5nIHdhcyB2ZXJ5IGJhcmVib25lLgorCisgICAg
ICAgIEZvciBleGFtcGxlLCBjb252ZXJ0aW5nIGEgY29uc3RhbnQgaW50ZWdlciB0byBkb3VibGUK
KyAgICAgICAgd2FzIGRvaW5nOgorICAgICAgICAgICAgbW92ICNjb25zdCwgJWVheAorICAgICAg
ICAgICAgeG9yICV4bW0wLCAleG1tMAorICAgICAgICAgICAgY3Z0c2kyc2QgJWVheCwgJXhtbTAK
KworICAgICAgICBDb252ZXJzaW9uIGZyb20gaW50ZWdlciB0byBmbG9hdCB3YXMgYWxzbyBtaXNz
aW5nLgorICAgICAgICBXZSB3ZXJlIGFsd2F5cyBjb252ZXJ0aW5nIHRvIGRvdWJsZSB0aGVuIHJv
dW5kaW5nIHRoZSBkb3VibGUKKyAgICAgICAgdG8gZmxvYXQuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIHRoZSBiYXNpY3M6CisgICAgICAgIC1Db25zdGFudCBmb2xkaW5nLgorICAgICAgICAt
SW50ZWdlciB0byBGbG9hdCBvcGNvZGUuCisgICAgICAgIC1SZWR1Y2luZyBpbnQtPmRvdWJsZSB0
byBpbnQtPmZsb2F0IHdoZW4gdXNlZCBieSBEb3VibGVUb0Zsb2F0LgorCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjpjb252ZXJ0SW50MzJUb0Zsb2F0KToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJY
ODZfNjQ6OmNvbnZlcnRJbnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZfNjQ6OmNvbnZlcnRJbnQ2NFRvRmxvYXQpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZB
c3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjdnRzaTJzc19ycik6Cisg
ICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3Z0c2kyc3NxX3JyKToKKyAgICAgICAgKEpTQzo6
WDg2QXNzZW1ibGVyOjpjdnRzaTJzZHFfbXIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6
OmN2dHNpMnNzcV9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3Z0c2kyc3NfbXIp
OgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgICog
YjMvQjNDb25zdDMyVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjpp
VG9EQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjppVG9GQ29uc3Rh
bnQpOgorICAgICAgICAqIGIzL0IzQ29uc3QzMlZhbHVlLmg6CisgICAgICAgICogYjMvQjNDb25z
dDY0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjppVG9EQ29uc3Rh
bnQpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjppVG9GQ29uc3RhbnQpOgorICAg
ICAgICAqIGIzL0IzQ29uc3Q2NFZhbHVlLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIpOgorICAgICAgICAq
IGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvQjNPcGNvZGUuaDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3Bw
OgorICAgICAgICAqIGIzL0IzUmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFs
aWRhdGUuY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
VmFsdWU6OmlUb0RDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6aVRvRkNvbnN0
YW50KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjppc1JvdW5kZWQpOgorICAgICAgICAoSlND
OjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmtleSk6Cisg
ICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6dHlwZUZvcik6CisgICAgICAgICogYjMvQjNWYWx1ZS5o
OgorICAgICAgICAqIGIzL0IzVmFsdWVLZXkuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVL
ZXk6Om1hdGVyaWFsaXplKToKKyAgICAgICAgKiBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVy
U3RhbGxzLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAg
ICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OmludDY0T3BlcmFuZHMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdElUb0Q2NEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRv
RjY0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJBcmcpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdElUb0YzMkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDY0TWVtKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GNjRNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dElUb0QzMk1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMyTWVtKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RJVG9ENjRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2NElt
bSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDMySW1tKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RJVG9GMzJJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0RSZWR1Y2VkVG9JVG9G
NjRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcpOgor
ICAgICAgICAoSlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNS0xOCAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRzo6TElDTVBoYXNlIHNob3VsZG4ndCBob2lzdCB0
eXBlIGNoZWNrcyB1bmxlc3MgaXQga25vd3MgdGhhdCB0aGUgY2hlY2sgd2lsbCBzdWNjZWVkIGF0
IHRoZSBsb29wIHByZS1oZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggMjBmNmQwMWQwNTIyOTdiNDA2NzU4
MTZmNjJlM2E0M2IwZDQzOTAyNi4uN2Q5NDY3NGJlNDIxMjE5NmZjMWVjNzcxMzM3Nzc1ZmQ1MmVj
YjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0LmgKQEAgLTE2MDcsMTEgKzE2MDcsMjEgQEAgcHVibGljOgogICAgICAg
ICBsb2FkMzIoYWRkcmVzcy5tX3B0ciwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52
YWxpZGF0ZSgpKTsKICAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUoZGF0YVRlbXBSZWdpc3Rl
ciwgZGVzdCk7CiAgICAgfQorCisgICAgdm9pZCBjb252ZXJ0SW50MzJUb0Zsb2F0KFJlZ2lzdGVy
SUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnNj
dnRmPDMyLCAzMj4oZGVzdCwgc3JjKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb252ZXJ0SW50
NjRUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5zY3Z0Zjw2NCwgNjQ+KGRlc3QsIHNyYyk7CiAgICAgfQorCisgICAg
dm9pZCBjb252ZXJ0SW50NjRUb0Zsb2F0KFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnNjdnRmPDMyLCA2ND4oZGVzdCwgc3JjKTsK
KyAgICB9CiAgICAgCiAgICAgdm9pZCBkaXZEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDM0MjlmMjNiZDY1YjUw
ZTYxN2I3NzkyNDA0YjgwZmMyMjlhYWNlZDMuLmNkZWNiNjQ4MWE0MDExYjAwYTQzMGE5NDZiNzBl
ZjY1N2MxZGZlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTE1NDMsNiArMTU0MywxOCBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNkX21yKHNyYy5vZmZzZXQsIHNyYy5i
YXNlLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0
ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzU1NF
MlByZXNlbnQoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNzX3JyKHNyYywgZGVzdCk7
CisgICAgfQorCisgICAgdm9pZCBjb252ZXJ0SW50MzJUb0Zsb2F0KEFkZHJlc3Mgc3JjLCBGUFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwor
ICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJzc19tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVz
dCk7CisgICAgfQorCiAgICAgSnVtcCBicmFuY2hEb3VibGUoRG91YmxlQ29uZGl0aW9uIGNvbmQs
IEZQUmVnaXN0ZXJJRCBsZWZ0LCBGUFJlZ2lzdGVySUQgcmlnaHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBkZmRiZTIzY2EwNjYwMjcy
YjY5NWYyZGRjZWQxNTAwN2JjM2ZmMGFjLi5iOWY1MjY0YzU4ZGQ3MmNlNDdjNjk1NzI2MzU3MTI5
MjQxNWQ1NDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0xMjMzLDYgKzEyMzMsMjEgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJzZHFfcnIoc3JjLCBkZXN0KTsKICAgICB9CiAKKyAg
ICB2b2lkIGNvbnZlcnRJbnQ2NFRvRG91YmxlKEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNkcV9tcihzcmMub2Zmc2V0LCBz
cmMuYmFzZSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBjb252ZXJ0SW50NjRUb0Zsb2F0KFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1i
bGVyLmN2dHNpMnNzcV9ycihzcmMsIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgY29udmVydElu
dDY0VG9GbG9hdChBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5jdnRzaTJzc3FfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRlc3QpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJu
IHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRT
cXJ0KCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggYmJmMWNlNjhiYTc1Y2Y1MjhjYWI5MjJlY2JhZmNhYTVh
NTA5NDM4OS4uMmU0OGY3MTIxMWNhNTllNzQ4Y2M0YTdiY2U1YmQzNGNhMWE4NDQ3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0yMTcy
LDEyICsyMTcyLDM2IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9Q
Ml9DVlRTSTJTRF9Wc2RFZCwgKFJlZ2lzdGVySUQpZHN0LCBzcmMpOwogICAgIH0KIAorICAgIHZv
aWQgY3Z0c2kyc3NfcnIoUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsK
KyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMpOworICAgICAgICBtX2Zvcm1h
dHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIHNyYyk7
CisgICAgfQorCiAjaWYgQ1BVKFg4Nl82NCkKICAgICB2b2lkIGN2dHNpMnNkcV9ycihSZWdpc3Rl
cklEIHNyYywgWE1NUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5w
cmVmaXgoUFJFX1NTRV9GMik7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcDY0KE9QMl9D
VlRTSTJTRF9Wc2RFZCwgKFJlZ2lzdGVySUQpZHN0LCBzcmMpOwogICAgIH0KKworICAgIHZvaWQg
Y3Z0c2kyc3NxX3JyKFJlZ2lzdGVySUQgc3JjLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudHdvQnl0ZU9wNjQoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIHNyYyk7
CisgICAgfQorCisgICAgdm9pZCBjdnRzaTJzZHFfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBi
YXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZp
eChQUkVfU1NFX0YyKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0NWVFNJ
MlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCisgICAg
dm9pZCBjdnRzaTJzc3FfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3Rl
cklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsK
KyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVn
aXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CisgICAgfQogI2VuZGlmCiAKICAgICB2b2lkIGN2
dHNpMnNkX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgWE1NUmVnaXN0ZXJJRCBkc3Qp
CkBAIC0yMTg2LDYgKzIyMTAsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29C
eXRlT3AoT1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7
CiAgICAgfQogCisgICAgdm9pZCBjdnRzaTJzc19tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJh
c2UsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4
KFBSRV9TU0VfRjMpOworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNE
X1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCiAjaWYgIUNQ
VShYODZfNjQpCiAgICAgdm9pZCBjdnRzaTJzZF9tcihjb25zdCB2b2lkKiBhZGRyZXNzLCBYTU1S
ZWdpc3RlcklEIGRzdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdDMyVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Qz
MlZhbHVlLmNwcAppbmRleCBjNDI5YzU1N2I0MzFjYWNlZmE3NjQ3NTJlOWUwNTZiMzExMTRkNmU3
Li41YWMyMmJmYzkwNDczNTc3N2I2ODVlNTM5ODY5NDRjZDk3ZTM5MWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5jcHAKQEAgLTE2Niw2ICsxNjYsMTYgQEAg
VmFsdWUqIENvbnN0MzJWYWx1ZTo6Yml0d2lzZUNhc3RDb25zdGFudChQcm9jZWR1cmUmIHByb2Mp
IGNvbnN0CiAgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIGJp
dHdpc2VfY2FzdDxmbG9hdD4obV92YWx1ZSkpOwogfQogCitWYWx1ZSogQ29uc3QzMlZhbHVlOjpp
VG9EQ29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFk
ZDxDb25zdERvdWJsZVZhbHVlPihvcmlnaW4oKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ZhbHVl
KSk7Cit9CisKK1ZhbHVlKiBDb25zdDMyVmFsdWU6OmlUb0ZDb25zdGFudChQcm9jZWR1cmUmIHBy
b2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2lu
KCksIHN0YXRpY19jYXN0PGZsb2F0PihtX3ZhbHVlKSk7Cit9CisKIFRyaVN0YXRlIENvbnN0MzJW
YWx1ZTo6ZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYg
KCFvdGhlci0+aGFzSW50MzIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbnN0MzJWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZh
bHVlLmgKaW5kZXggZDVhMGZmZTgxMzgyZmU4ODdkNGIzOGE3Yzk0NWFmNjcyZjU0MzE2MC4uMTRl
OTUwNDM0ODRjZmNkZWE5ZDE3YmI2YWNlZTIxMWRkYzcyNzAyZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAg
IFZhbHVlKiBzU2hyQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBvdmVycmlkZTsKICAgICBWYWx1ZSogelNockNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIGlUb0RDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBWYWx1ZSogaVRvRkNvbnN0YW50KFByb2Nl
ZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVHJpU3RhdGUgZXF1YWxDb25zdGFudChjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwogICAgIFRyaVN0YXRlIG5vdEVxdWFsQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCmluZGV4IGJlN2U0NjgyNzE5ZDFiOTlhZTI5
ZTA4Njg4NzUyYzViODZlODA0ZjguLjVjODlmNmNkZjk2YjYwNzkyMTNhZjQyYTAyYTEzOTAwMWQx
Zjc1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcApA
QCAtMTY2LDYgKzE2NiwxNiBAQCBWYWx1ZSogQ29uc3Q2NFZhbHVlOjpiaXR3aXNlQ2FzdENvbnN0
YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QKICAgICByZXR1cm4gcHJvYy5hZGQ8Q29uc3REb3Vi
bGVWYWx1ZT4ob3JpZ2luKCksIGJpdHdpc2VfY2FzdDxkb3VibGU+KG1fdmFsdWUpKTsKIH0KIAor
VmFsdWUqIENvbnN0NjRWYWx1ZTo6aVRvRENvbnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QK
K3sKKyAgICByZXR1cm4gcHJvYy5hZGQ8Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIHN0YXRp
Y19jYXN0PGRvdWJsZT4obV92YWx1ZSkpOworfQorCitWYWx1ZSogQ29uc3Q2NFZhbHVlOjppVG9G
Q29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxD
b25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBzdGF0aWNfY2FzdDxmbG9hdD4obV92YWx1ZSkpOwor
fQorCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdAogewogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCmluZGV4IGJmNWE0ZTI0Y2U1MmQ2NjYzMmU3Zjhm
OWQ3OThkODdjMDZkMWRjOWYuLmZhYjk2MjZiNWI0ZTk4ZGQ3Y2JhNDhjM2VmMDM5YmZkMjU3ZGU3
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCkBAIC01OCw2
ICs1OCw4IEBAIHB1YmxpYzoKICAgICBWYWx1ZSogc1NockNvbnN0YW50KFByb2NlZHVyZSYsIGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFsdWUqIHpTaHJDb25zdGFu
dChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZh
bHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IFZhbHVlKiBpVG9EQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFs
dWUqIGlUb0ZDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFRyaVN0
YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKICAg
ICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWly
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGE1
NTE2M2ViMjc4OWM3NDZhMTBhMjdlNWQwODc1ZDk0YWNiMWI0ZDcuLmVhN2VlMDcwMDI5MTFhY2Y0
YTQxOTcyNzAwMzZmYzc2MTczMGM4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwCkBAIC0yMTUwLDYgKzIxNTAsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgSVRvRjogeworICAgICAgICAgICAg
YXBwZW5kVW5PcDxDb252ZXJ0SW50MzJUb0Zsb2F0LCBDb252ZXJ0SW50NjRUb0Zsb2F0PihtX3Zh
bHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIEIzOjpDQ2FsbDogewogICAgICAgICAgICAgQ0NhbGxWYWx1ZSogY0NhbGwgPSBtX3Zh
bHVlLT5hczxDQ2FsbFZhbHVlPigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNw
cAppbmRleCBhZTBiOTQ4OGRmZjg0OTUwZWVkZDg4ZTk0NmFlYmRiOGNlNzMxOGRlLi4yMDcyMjFk
YzA5MjVjOTBhNjVhZGNjMmY5NTdhMTRmZmMzNGUwNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wY29kZS5jcHAKQEAgLTE4OCw2ICsxODgsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJp
bnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAgICBjYXNlIElUb0Q6CiAgICAgICAgIG91
dC5wcmludCgiSVRvRCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBJVG9GOgorICAgICAg
ICBvdXQucHJpbnQoIklUb0YiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRmxvYXRUb0Rv
dWJsZToKICAgICAgICAgb3V0LnByaW50KCJGbG9hdFRvRG91YmxlIik7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKaW5kZXggNzZiOTFiNjI0YzVmOTA0NjRm
ZDBjMGI2NjBkM2YwMGI5YjU5MjE2Yi4uMzM4ZWRlOGQ2ZjBmZGRhMjJlNTRmN2I0ZWRiYWRlMjk3
MDZkYjZjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKQEAgLTExMSwxMCArMTEx
LDExIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgWkV4dDMyLAogICAgIC8vIFRha2Vz
IEludDY0IGFuZCByZXR1cm5zIEludDMyOgogICAgIFRydW5jLAotICAgIC8vIFRha2VzIGludHMg
YW5kIHJldHVybnMgRG91YmxlLiBOb3RlIHRoYXQgd2UgZG9uJ3QgY3VycmVudGx5IHByb3ZpZGUg
dGhlIG9wcG9zaXRlIG9wZXJhdGlvbiwKKyAgICAvLyBUYWtlcyBpbnRzIGFuZCByZXR1cm5zIGZs
b2F0aW5nIHBvaW50IHZhbHVlLiBOb3RlIHRoYXQgd2UgZG9uJ3QgY3VycmVudGx5IHByb3ZpZGUg
dGhlIG9wcG9zaXRlIG9wZXJhdGlvbiwKICAgICAvLyBiZWNhdXNlIGRvdWJsZS10by1pbnQgY29u
dmVyc2lvbnMgaGF2ZSB3ZWlyZGx5IGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gZGlmZmVyZW50IHBs
YXRmb3Jtcy4gVXNlCiAgICAgLy8gYSBwYXRjaHBvaW50IGlmIHlvdSBuZWVkIHRvIGRvIHRoYXQu
CiAgICAgSVRvRCwKKyAgICBJVG9GLAogICAgIC8vIENvbnZlcnQgYmV0d2VlbiBkb3VibGUgYW5k
IGZsb2F0LgogICAgIEZsb2F0VG9Eb3VibGUsCiAgICAgRG91YmxlVG9GbG9hdCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKaW5kZXgg
NGUzY2YzN2Y4NTIyMDVmNTJjMmQyOWFhMzA1YjcyNWQyMDkyYjY5Zi4uNGM3MjFjODIwNjQzMTdh
NjQ2MjFhZTk3Zjk4OTg4NTk5MjU0MWFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKQEAgLTMxMSw2ICszMTEsMTMgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBJVG9EOiB7CisgICAgICAg
ICAgICAgICAgICAgIFZhbHVlKiBpVG9GID0gaW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oaW5k
ZXgsIElUb0YsIHZhbHVlLT5vcmlnaW4oKSwgdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUtPnNldFR5cGUoRmxvYXQpOworICAgICAgICAgICAgICAgICAgICB2YWx1
ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShpVG9GKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jb252
ZXJ0ZWRWYWx1ZS5hZGQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSBGbG9hdFRvRG91YmxlOgogICAgICAg
ICAgICAgICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2Ugcm91bmQgdHdpY2UuCiAgICAgICAg
ICAgICAgICAgICAgIC8vIFR5cGljYWxseSwgdGhpcyBpcyBpbmRpcmVjdCB0aHJvdWdoIFBoaS1V
cHNpbG9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNw
cAppbmRleCA0MzYzYjllMmMyNWVjNzgzMGRmZjlkYTUxYjFkNTMxMTMzNmUyYTA4Li4yYjQ5Yzlm
MGU1MTIyMTI4MjZlZWFkZmIyOTlhOTY1OTc2YWYwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBAIC0xMzI0LDYgKzEzMjQsMjQgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2Ug
SVRvRDoKKyAgICAgICAgICAgIC8vIFR1cm4gdGhpczogSVRvRChjb25zdGFudCkKKyAgICAgICAg
ICAgIC8vIEludG8gdGhpczogQ29uc3REb3VibGUoY29uc3RhbnQpCisgICAgICAgICAgICBpZiAo
VmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+Y2hpbGQoMCktPmlUb0RDb25zdGFudChtX3Byb2Mp
KSB7CisgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShjb25zdGFudCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIElUb0Y6CisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IElUb0YoY29uc3Rh
bnQpCisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IENvbnN0RmxvYXQoY29uc3RhbnQpCisgICAg
ICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+Y2hpbGQoMCktPmlUb0ZDb25z
dGFudChtX3Byb2MpKSB7CisgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShjb25z
dGFudCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKwogICAgICAgICBjYXNlIEZsb2F0VG9Eb3VibGU6CiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IEZsb2F0VG9Eb3VibGUoY29uc3RhbnQpCiAgICAgICAgICAgICAvLyBJbnRvIHRo
aXM6IENvbnN0RG91YmxlKGNvbnN0YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRh
dGUuY3BwCmluZGV4IDhiMDNkMmFhZWFlMTVkNmY1NmZlYzY2NWM1MzM0Y2U5Nzc3ZGNhZTIuLjA1
NjRhODNjNTE0OWY4NmZlNTcwZWM4YTU4NzU2N2Q0YWU0NDA4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAgLTI1Miw2ICsyNTIsMTEgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJB
dCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IERvdWJsZSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgSVRvRjoKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hp
bGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRF
KGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IEZsb2F0LCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBGbG9hdFRvRG91
YmxlOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEs
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPmNoaWxk
KDApLT50eXBlKCkgPT0gRmxvYXQsICgiQXQgIiwgKnZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5jcHAKaW5kZXggZWUyMzgwOGI1YjNhODUzNGRmZDBlMmVhNmY1ZDY4MjM5YWVm
MzAzOC4uOTZjNzVjNGNmNDg1YjM4ZmY0NmExOTkwYjhjZGU4ZThiMDJiMzBjYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApAQCAtMjY3LDYgKzI2NywxNiBAQCBWYWx1ZSogVmFs
dWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorVmFsdWUqIFZhbHVlOjppVG9EQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworVmFsdWUqIFZhbHVlOjppVG9GQ29uc3RhbnQo
UHJvY2VkdXJlJikgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogVmFsdWUqIFZh
bHVlOjpkb3VibGVUb0Zsb2F0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTM2OCw2ICszNzgsNyBAQCBib29sIFZhbHVlOjppc1JvdW5kZWQoKSBj
b25zdAogICAgIGNhc2UgRmxvb3I6CiAgICAgY2FzZSBDZWlsOgogICAgIGNhc2UgSVRvRDoKKyAg
ICBjYXNlIElUb0Y6CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBDb25zdERvdWJs
ZTogewpAQCAtNDcwLDYgKzQ4MSw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAog
ICAgIGNhc2UgWkV4dDMyOgogICAgIGNhc2UgVHJ1bmM6CiAgICAgY2FzZSBJVG9EOgorICAgIGNh
c2UgSVRvRjoKICAgICBjYXNlIEZsb2F0VG9Eb3VibGU6CiAgICAgY2FzZSBEb3VibGVUb0Zsb2F0
OgogICAgIGNhc2UgRXF1YWw6CkBAIC01NTMsNiArNTY1LDcgQEAgVmFsdWVLZXkgVmFsdWU6Omtl
eSgpIGNvbnN0CiAgICAgY2FzZSBDbHo6CiAgICAgY2FzZSBUcnVuYzoKICAgICBjYXNlIElUb0Q6
CisgICAgY2FzZSBJVG9GOgogICAgIGNhc2UgRmxvYXRUb0RvdWJsZToKICAgICBjYXNlIERvdWJs
ZVRvRmxvYXQ6CiAgICAgY2FzZSBDaGVjazoKQEAgLTY5MCw2ICs3MDMsNyBAQCBUeXBlIFZhbHVl
Ojp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlKiBmaXJzdENoaWxkLCBWYWx1ZSogc2Vjb25k
Q2hpbGQpCiAgICAgY2FzZSBJVG9EOgogICAgICAgICByZXR1cm4gRG91YmxlOwogICAgIGNhc2Ug
RG91YmxlVG9GbG9hdDoKKyAgICBjYXNlIElUb0Y6CiAgICAgICAgIHJldHVybiBGbG9hdDsKICAg
ICBjYXNlIEJpdHdpc2VDYXN0OgogICAgICAgICBzd2l0Y2ggKGZpcnN0Q2hpbGQtPnR5cGUoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKaW5kZXggOTgxZjAwN2FmODhmNGYyOGI0ZTZl
ZmNlMWQxMWY0ZTZjZjJmNjcxNi4uNzUzNDA4MmZhZWY1Y2UxNTdlYTZhYTczNDUzMmI5MDkxODdh
MTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCkBAIC0xMzMsNiArMTMzLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgVmFsdWUqIHNTaHJDb25zdGFudChQcm9jZWR1cmUmLCBjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIHpTaHJDb25zdGFudChQ
cm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUq
IGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Q7CisgICAgdmlydHVhbCBWYWx1
ZSogaVRvRENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OworICAgIHZpcnR1YWwgVmFsdWUqIGlU
b0ZDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdDsKICAgICB2aXJ0dWFsIFZhbHVlKiBkb3VibGVU
b0Zsb2F0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Q7CiAgICAgdmlydHVhbCBWYWx1ZSogZmxv
YXRUb0RvdWJsZUNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUq
IGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWVLZXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWVLZXkuY3BwCmluZGV4IDM3MGZjYTBiODliOWIyNGI4NjZmZWJiNjJhNzIxNmExNjhjZWQ4
ZmMuLmU3ZjNmNjQxNjI0NjgzZWNkZjAyYzVlOTdhM2U3Zjk2MzU5ODQyZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlS2V5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZUtleS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAgVmFsdWUqIFZh
bHVlS2V5OjptYXRlcmlhbGl6ZShQcm9jZWR1cmUmIHByb2MsIE9yaWdpbiBvcmlnaW4pIGNvbnN0
CiAgICAgY2FzZSBDbHo6CiAgICAgY2FzZSBUcnVuYzoKICAgICBjYXNlIElUb0Q6CisgICAgY2Fz
ZSBJVG9GOgogICAgIGNhc2UgRmxvYXRUb0RvdWJsZToKICAgICBjYXNlIERvdWJsZVRvRmxvYXQ6
CiAgICAgY2FzZSBDaGVjazoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcAppbmRleCBjMzY0MGQ2MGY5
OTQxNjNlNzg4OTk0NTFiNjYxNDBmNDVmZTBhYTM5Li5lZDdiODBhMGM4YjQ2YWEyNGNiYWM2ZDk3
YmUzOWRhZDZkMjE3Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwCkBAIC01MCw2ICs1MCw4
IEBAIGJvb2wgaGFzUGFydGlhbFhtbVJlZ1VwZGF0ZShjb25zdCBJbnN0JiBpbnN0KQogICAgIGNh
c2UgQ29udmVydEZsb2F0VG9Eb3VibGU6CiAgICAgY2FzZSBDb252ZXJ0SW50MzJUb0RvdWJsZToK
ICAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91YmxlOgorICAgIGNhc2UgQ29udmVydEludDMyVG9G
bG9hdDoKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRmxvYXQ6CiAgICAgY2FzZSBTcXJ0RG91Ymxl
OgogICAgIGNhc2UgU3FydEZsb2F0OgogICAgIGNhc2UgQ2VpbERvdWJsZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGNkY2M0N2VkNzM3
YTljNDMyYTFhNzM5Y2JlOTg1NjA0N2Y5MzE0MTQuLmYwNDMzYmEzNWY5MTFlNjBmZTA5NjAzMDZh
MWQ1MWQxYWQ3OWQ4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJP
cGNvZGUub3Bjb2RlcwpAQCAtNDgwLDYgKzQ4MCwxNSBAQCBDb252ZXJ0SW50MzJUb0RvdWJsZSBV
Okc6MzIsIEQ6Rjo2NAogCiA2NDogQ29udmVydEludDY0VG9Eb3VibGUgVTpHOjY0LCBEOkY6NjQK
ICAgICBUbXAsIFRtcAorICAgIHg4Nl82NDogQWRkciwgVG1wCisKK0NvbnZlcnRJbnQzMlRvRmxv
YXQgVTpHOjMyLCBEOkY6MzIKKyAgICBUbXAsIFRtcAorICAgIHg4NjogQWRkciwgVG1wCisKKzY0
OiBDb252ZXJ0SW50NjRUb0Zsb2F0IFU6Rzo2NCwgRDpGOjMyCisgICAgVG1wLCBUbXAKKyAgICB4
ODZfNjQ6IEFkZHIsIFRtcAogCiBDb3VudExlYWRpbmdaZXJvczMyIFU6RzozMiwgWkQ6RzozMgog
ICAgIFRtcCwgVG1wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IDU5ZDc0NjJj
NWZjZTk5ZDk0MTM3M2U5YjhkNzY3MThkMDhiNDg0NjMuLjBiNmQ2YWM3NTI2ZTRiYWViMGM5MmZk
NzY0ZjIyYzcyMjJiMTE0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0x
NTAsNiArMTUwLDcgQEAgVmVjdG9yPE9wZXJhbmQ8RmxvYXRUeXBlPj4gZmxvYXRpbmdQb2ludE9w
ZXJhbmRzKCkKIHN0YXRpYyBWZWN0b3I8SW50NjRPcGVyYW5kPiBpbnQ2NE9wZXJhbmRzKCkKIHsK
ICAgICBWZWN0b3I8SW50NjRPcGVyYW5kPiBvcGVyYW5kczsKKyAgICBvcGVyYW5kcy5hcHBlbmQo
eyAiMCIsIDAgfSk7CiAgICAgb3BlcmFuZHMuYXBwZW5kKHsgIjEiLCAxIH0pOwogICAgIG9wZXJh
bmRzLmFwcGVuZCh7ICItMSIsIC0xIH0pOwogICAgIG9wZXJhbmRzLmFwcGVuZCh7ICI0MiIsIDQy
IH0pOwpAQCAtNDc1NSw2ICs0NzU2LDIwMSBAQCB2b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZh
bHVlKQogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAm
dmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7
CiB9CiAKK3ZvaWQgdGVzdElUb0Q2NEFyZygpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogc3JjID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworCisgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQorICAgICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZG91YmxlPigq
Y29kZSwgdGVzdFZhbHVlLnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0VmFsdWUudmFs
dWUpKSk7Cit9CisKK3ZvaWQgdGVzdElUb0Y2NEFyZygpCit7CisgICAgUHJvY2VkdXJlIHByb2M7
CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogc3Jj
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKwor
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CisgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6
IGludDY0T3BlcmFuZHMoKSkKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0
PigqY29kZSwgdGVzdFZhbHVlLnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52
YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SVRvRDMyQXJnKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJv
YzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBz
cmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsK
KworICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CisgICAgZm9yIChhdXRvIHRlc3RWYWx1
ZSA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRv
dWJsZT4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFZh
bHVlLnZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJVG9GMzJBcmcoKQoreworICAgIFByb2NlZHVy
ZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFs
dWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAor
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKKyAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0
KTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CisgICAgZm9yIChhdXRvIHRlc3RW
YWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tl
PGZsb2F0PigqY29kZSwgdGVzdFZhbHVlLnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RW
YWx1ZS52YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SVRvRDY0TWVtKCkKK3sKKyAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRT
cmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmln
aW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7
CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDY0X3QgaW5NZW1vcnlW
YWx1ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKSB7CisgICAg
ICAgIGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFsdWUudmFsdWU7CisgICAgICAgIENIRUNLKGlzSWRl
bnRpY2FsKGludm9rZTxkb3VibGU+KCpjb2RlLCAmaW5NZW1vcnlWYWx1ZSksIHN0YXRpY19jYXN0
PGRvdWJsZT4odGVzdFZhbHVlLnZhbHVlKSkpOworICAgICAgICBDSEVDSyhpbk1lbW9yeVZhbHVl
ID09IHRlc3RWYWx1ZS52YWx1ZSk7CisgICAgfQorfQorCit2b2lkIHRlc3RJVG9GNjRNZW0oKQor
eworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgTWVtb3J5
VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNGbG9hdCk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDY0
X3QgaW5NZW1vcnlWYWx1ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5k
cygpKSB7CisgICAgICAgIGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFsdWUudmFsdWU7CisgICAgICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsICZpbk1lbW9yeVZhbHVlKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1ZSkpKTsKKyAgICAgICAgQ0hFQ0soaW5N
ZW1vcnlWYWx1ZSA9PSB0ZXN0VmFsdWUudmFsdWUpOworICAgIH0KK30KKwordm9pZCB0ZXN0SVRv
RDMyTWVtKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHNyY0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9h
ZGVkU3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OworICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDog
aW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGluTWVtb3J5VmFsdWUgPSB0ZXN0VmFsdWUudmFs
dWU7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxkb3VibGU+KCpjb2RlLCAmaW5N
ZW1vcnlWYWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFZhbHVlLnZhbHVlKSkpOworICAg
ICAgICBDSEVDSyhpbk1lbW9yeVZhbHVlID09IHRlc3RWYWx1ZS52YWx1ZSk7CisgICAgfQorfQor
Cit2b2lkIHRlc3RJVG9GMzJNZW0oKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAg
ICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwg
T3JpZ2luKCksIGxvYWRlZFNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisKKyAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOworICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKKyAgICBmb3IgKGF1dG8g
dGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGluTWVtb3J5VmFsdWUgPSB0
ZXN0VmFsdWUudmFsdWU7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4o
KmNvZGUsICZpbk1lbW9yeVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1
ZSkpKTsKKyAgICAgICAgQ0hFQ0soaW5NZW1vcnlWYWx1ZSA9PSB0ZXN0VmFsdWUudmFsdWUpOwor
ICAgIH0KK30KKwordm9pZCB0ZXN0SVRvRDY0SW1tKGludDY0X3QgdmFsdWUpCit7CisgICAgUHJv
Y2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHZhbHVlKTsKKyAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKKyAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9p
bnQpOworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SVRvRjY0SW1tKGlu
dDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKKyAgICBWYWx1ZSogc3JjQXNGbG9h
dGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwg
c3JjKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7Cit9CisK
K3ZvaWQgdGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9j
OworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIHNy
YyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7
CisgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpKSk7Cit9CisKK3ZvaWQgdGVzdElUb0YzMkltbShpbnQzMl90IHZhbHVl
KQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7CisgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNGbG9hdGluZ1BvaW50KTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZs
b2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJ
VG9EUmVkdWNlZFRvSVRvRjY0QXJnKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKKyAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNB
c0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworCisgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKKyAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQorICAgICAgICBD
SEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCB0ZXN0VmFsdWUudmFsdWUpLCBz
dGF0aWNfY2FzdDxmbG9hdD4odGVzdFZhbHVlLnZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJVG9E
UmVkdWNlZFRvSVRvRjMyQXJnKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKKyAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOworICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwor
ICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCisgICAgICAgIENIRUNL
KGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0YXRp
Y19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFsdWUpKSk7Cit9CisKIHZvaWQgdGVzdFN0b3JlMzIo
aW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTI1NDAsNiArMTI3MzYsMjEg
QEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0RnJvdW5k
QXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVz
dEZyb3VuZE1lbSwgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7CiAKKyAgICBSVU4o
dGVzdElUb0Q2NEFyZygpKTsKKyAgICBSVU4odGVzdElUb0Y2NEFyZygpKTsKKyAgICBSVU4odGVz
dElUb0QzMkFyZygpKTsKKyAgICBSVU4odGVzdElUb0YzMkFyZygpKTsKKyAgICBSVU4odGVzdElU
b0Q2NE1lbSgpKTsKKyAgICBSVU4odGVzdElUb0Y2NE1lbSgpKTsKKyAgICBSVU4odGVzdElUb0Qz
Mk1lbSgpKTsKKyAgICBSVU4odGVzdElUb0YzMk1lbSgpKTsKKyAgICBSVU5fVU5BUlkodGVzdElU
b0Q2NEltbSwgaW50NjRPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVzdElUb0Y2NEltbSwg
aW50NjRPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVzdElUb0QzMkltbSwgaW50MzJPcGVy
YW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVzdElUb0YzMkltbSwgaW50MzJPcGVyYW5kcygpKTsK
KyAgICBSVU4odGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKSk7CisgICAgUlVOKHRlc3RJVG9E
UmVkdWNlZFRvSVRvRjMyQXJnKCkpOworCiAgICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7CiAgICAg
UlVOKHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50UHRy
KDQ5KSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>