<?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>38294</bug_id>
          
          <creation_ts>2010-04-28 17:09:48 -0700</creation_ts>
          <short_desc>Add fast paths for Math.pow and Math.sqrt</short_desc>
          <delta_ts>2010-04-28 23:41:27 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>38308</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>218700</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-28 17:09:48 -0700</bug_when>
    <thetext>Add fast paths for Math.pow and Math.sqrt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218705</commentid>
    <comment_count>1</comment_count>
      <attachid>54640</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-28 17:23:26 -0700</bug_when>
    <thetext>Created attachment 54640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218707</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-28 17:29:03 -0700</bug_when>
    <thetext>Attachment 54640 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/assembler/X86Assembler.h:1397:  movsd_mr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/assembler/X86Assembler.h:1465:  sqrtsd_rr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218782</commentid>
    <comment_count>3</comment_count>
      <attachid>54640</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-28 20:52:20 -0700</bug_when>
    <thetext>Comment on attachment 54640
Patch

Have you tested USE(JSVALUE32)? – we shouldn&apos;t break this.

One thought that might help a little on x86-64, you could plant these values:...
&gt; +static const double oneConstant = 1.0;
&gt; +static const double negativeHalfConstant = -0.5;
...somewhere in the JIT code buffers, then these could be loaded with a PC-relative memory access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218784</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-28 20:57:47 -0700</bug_when>
    <thetext>Committed r58469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218796</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-28 21:24:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58469 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218809</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-28 21:38:24 -0700</bug_when>
    <thetext>Fix landed in r58475.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218859</commentid>
    <comment_count>7</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-04-28 23:41:27 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=26987

Maybe we could revive this work as well. I have already tried to play around fast path for Math but they were rejected at that time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54640</attachid>
            <date>2010-04-28 17:23:26 -0700</date>
            <delta_ts>2010-04-28 20:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38294-20100428172324.patch</filename>
            <type>text/plain</type>
            <size>30820</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1MzRlMGZlMzM3NzhkOTcyODgxODZiMzQ5YWRmYmRlOGIxNjY5YzUzLi45
NDllNjQzM2QxZDgxYjZhOGMxNmUyNGNlOGNkNjMxZWU0MmRhOGI1IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzAgQEAKKzIwMTAtMDQtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZmFz
dCBwYXRocyBmb3IgTWF0aC5wb3cgYW5kIE1hdGguc3FydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgyOTQKKworICAgICAgICBBZGQgc3BlY2lhbGl6
ZWQgdGh1bmtzIGZvciBNYXRoLnBvdyBhbmQgTWF0aC5zcXJ0LgorICAgICAgICBUaGlzIHJlcXVp
cmVzIGFkZGluZyBhIHNxcnREb3VibGUgZnVuY3Rpb24gdG8gdGhlIE1hY3JvQXNzZW1ibGVyCisg
ICAgICAgIGFuZCBzcXJ0c2QgdG8gdGhlIHg4NiBhc3NlbWJsZXIuCisKKyAgICAgICAgTWF0aC5w
b3cgaXMgc2xpZ2h0bHkgbW9yZSBjb21wbGljYXRlZCwgaW4gdGhhdCB3ZSBoYXZlCisgICAgICAg
IHRvIGltcGxlbWVudCBleHBvbmVudGlhdGlvbiBvdXJzZWx2ZXMgcmF0aGVyIHRoYW4gcmVseWlu
ZworICAgICAgICBvbiBoYXJkd2FyZSBzdXBwb3J0LiAgVGhlIGlubGluZSBleHBvbmVudGlhdGlv
biBpcyByZXN0cmljdGVkCisgICAgICAgIHRvIHBvc2l0aXZlIGludGVnZXIgZXhwb25lbnRzIG9u
IGEgbnVtZXJpYyBiYXNlLiAgRXhwb25lbnRpYXRpb24KKyAgICAgICAgaXMgZmluYWxseSBwZXJm
b3JtZWQgdGhyb3VnaCB0aGUgIkV4cG9uZW50aWF0aW9uIGJ5IFNxdWFyaW5nIgorICAgICAgICBh
bGdvcml0aG0uCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5o
OgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNzZW1ibGVyOjpJbW1QdHI6OkltbVB0cik6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlckFSTTo6c3FydERvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNGbG9hdGluZ1BvaW50U3FydCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OnNxcnREb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Njo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNxcnREb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
Nl82NDo6bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0Ojpz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6KToKKyAgICAgICAgKEpTQzo6WDg2
QXNzZW1ibGVyOjptb3ZzZF9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6c3FydHNk
X3JyKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpYODZJbnN0cnVjdGlvbkZvcm1hdHRl
cjo6dHdvQnl0ZU9wKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpYODZJbnN0cnVjdGlv
bkZvcm1hdHRlcjo6bWVtb3J5TW9kUk0pOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsVGh1bmspOgorICAgICAgICAq
IGppdC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1p
dExvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdEp1bXBJZklt
bWVkaWF0ZU51bWJlcik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjplbWl0SnVtcElm
Tm90SW1tZWRpYXRlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNJbnRlcmZhY2VKSVQ6OmVtaXRM
b2FkSW50MzIpOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6CisgICAgICAg
IChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OmxvYWREb3VibGVBcmd1bWVudCk6CisgICAgICAg
IChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OmxvYWRJbnQzMkFyZ3VtZW50KToKKyAgICAgICAg
KEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSlNWYWx1ZSk6CisgICAgICAgIChKU0M6
OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVybkRvdWJsZSk6CisgICAgICAgIChKU0M6OlNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZpbmFsaXplKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcDoKKyAgICAgICAgKEpTQzo6c3FydFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6
cG93VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuaDoKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0
YWJsZTo6TmF0aXZlRXhlY3V0YWJsZSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6SlNGdW5jdGlvbik6CisKIDIwMTAtMDQtMjgg
IFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPiwgS2VudCBIYW5zZW4g
PGtlbnQuaGFuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyLmggYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oCmluZGV4IGY5NmUzNGE4YWM3NzlmNTc2OTc1YWE5MzNjYzE5NjQyNDUyMjRiNDEuLjFjN2Yy
Njk1Y2JkNWEyYmJkNWI0YzI5YjMwNGM0NjgzOTNmYmY2YmYgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTYwLDcgKzE2MCw3
IEBAIHB1YmxpYzoKICAgICAvLyBpbiBhIGNsYXNzIHJlcXVpcmluZyBleHBsaWNpdCBjb25zdHJ1
Y3Rpb24gaW4gb3JkZXIgdG8gZGlmZmVyZW50aWF0ZQogICAgIC8vIGZyb20gcG9pbnRlcnMgdXNl
ZCBhcyBhYnNvbHV0ZSBhZGRyZXNzZXMgdG8gbWVtb3J5IG9wZXJhdGlvbnMKICAgICBzdHJ1Y3Qg
SW1tUHRyIHsKLSAgICAgICAgZXhwbGljaXQgSW1tUHRyKHZvaWQqIHZhbHVlKQorICAgICAgICBl
eHBsaWNpdCBJbW1QdHIoY29uc3Qgdm9pZCogdmFsdWUpCiAgICAgICAgICAgICA6IG1fdmFsdWUo
dmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTcwLDcgKzE3MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX3ZhbHVlKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZvaWQqIG1fdmFsdWU7CisgICAgICAgIGNvbnN0IHZvaWQq
IG1fdmFsdWU7CiAgICAgfTsKIAogICAgIC8vIEltbTMyOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAppbmRleCAzMzg5ZmE2MDA1ZGYxOTNiN2NlM2Y0MDEz
ZTMxZjczMzk3ZDliNWZlLi40NDhiYzE0NjVlYjMxNDM4ODAyMGRkNGQwMTVmYjE2ZGZkOTI5ZmQ2
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0u
aAorKysgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAt
NzUxLDEyICs3NTEsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CisgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3Nl
bWJsZXIuZG91YmxlVHJhbnNmZXIodHJ1ZSwgZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9m
ZnNldCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91YmxlKHZvaWQqIGFkZHJlc3MsIEZQUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShjb25zdCB2b2lkKiBhZGRyZXNzLCBG
UFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0o
QVJNUmVnaXN0ZXJzOjpTMCwgKEFSTVdvcmQpYWRkcmVzcyk7CiAgICAgICAgIG1fYXNzZW1ibGVy
LmZkdHJfdSh0cnVlLCBkZXN0LCBBUk1SZWdpc3RlcnM6OlMwLCAwKTsKQEAgLTgxMiw2ICs4MTcs
MTEgQEAgcHVibGljOgogICAgICAgICBtdWxEb3VibGUoQVJNUmVnaXN0ZXJzOjpTRDAsIGRlc3Qp
OwogICAgIH0KIAorICAgIHZvaWQgc3FydERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJ
RCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwogICAgIHZv
aWQgY29udmVydEludDMyVG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuZm1zcl9yKGRlc3QsIHNyYyk7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCAzZDA4ZjBl
NzNhZjgzNWQ0ZDVjYjVmMGQ5Y2QzNDQ1ODQ1NjYzZjM3Li4zYzU4YjkzZDBlNGJkMWZiZjNlNjgx
ZDhlZTE0NWUyMWI3ZTNjZTU3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmgKQEAgLTQ5NCw2ICs0OTQsMTEgQEAgcHVibGljOgogICAgIC8vIElu
IHNob3J0LCBGSVhNRTouCiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2lu
dFNxcnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAg
IHZvaWQgbG9hZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewogICAgICAgICBSZWdpc3RlcklEIGJhc2UgPSBhZGRyZXNzLmJhc2U7CkBAIC01
NTcsNiArNTYyLDExIEBAIHB1YmxpYzoKICAgICAgICAgbXVsRG91YmxlKGZwVGVtcFJlZ2lzdGVy
LCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIHNxcnREb3VibGUoRlBSZWdpc3RlcklELCBGUFJl
Z2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
ICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIs
IHNyYyk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODYuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCmlu
ZGV4IDAzNjY1NDFjMzNlN2VjNjQ2NDlmNDFjZWNmMzUyMThlNmM1YWUwNzkuLjA5MTg5OTYzMDIw
MjJlMjExZGI2OWRhNmEyY2QwOGY4MmYxNDVkNmIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9hc3NlbWJsZXIubW92bF9tcihhZGRyZXNzLCBkZXN0KTsKICAgICB9CiAKLSAgICB2b2lk
IGxvYWREb3VibGUodm9pZCogYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBs
b2FkRG91YmxlKGNvbnN0IHZvaWQqIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1v
dnNkX21yKGFkZHJlc3MsIGRlc3QpOwpAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTU0UyUHJlc2Vu
dDsgfQogICAgIC8vIFNlZSBjb21tZW50IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRz
RmxvYXRpbmdQb2ludFRydW5jYXRlKCkKICAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRy
dW5jYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pc1NTRTJQcmVzZW50OyB9CisgICAgYm9vbCBzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QgeyByZXR1cm4gbV9pc1NTRTJQcmVzZW50OyB9
CiAKIHByaXZhdGU6CiAgICAgY29uc3QgYm9vbCBtX2lzU1NFMlByZXNlbnQ7CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDI3
YzJmMTVkNTcwYWFmOTQ5MGUyM2ZkMDc4YmFmZDZiN2RlY2YwMDEuLjk1MjI1MTExZGE4ZDBiN2M0
MDkzYjc5ZmRhM2YzODQ4ZGM0YzcxZjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0zMDEsNiArMzAxLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIueG9ybF9tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVz
dCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgc3FydERvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBG
UFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3FydHNkX3JyKHNy
YywgZHN0KTsKKyAgICB9CiAKICAgICAvLyBNZW1vcnkgYWNjZXNzIG9wZXJhdGlvbnM6CiAgICAg
Ly8KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
Nl82NC5oIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgK
aW5kZXggMzM5ZWFhNDM3YTNlMWNiNmQxN2U1YjRhNTQwZjRmNThhZmYzYTU0ZS4uMTY4YzkzZjY1
MGQxZDUwMWUyMDg3YTU3MDE0NTg0ZTczNGI2MTBjMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91YmxlKHZvaWQqIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShjb25zdCB2b2lkKiBhZGRy
ZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1vdmUoSW1tUHRyKGFkZHJl
c3MpLCBzY3JhdGNoUmVnaXN0ZXIpOwogICAgICAgICBsb2FkRG91YmxlKHNjcmF0Y2hSZWdpc3Rl
ciwgZGVzdCk7CkBAIC00MjcsNiArNDI3LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNG
bG9hdGluZ1BvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIFNlZSBjb21tZW50
IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkK
ICAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAppbmRleCAxNGEwMmY3MTQxODVmNzVm
NjI5MjRkMjhjYTllNjM0Y2I0MDEwMDAzLi5jODMzYmJjMDA2OGFkMmRlNjdhYjE3MmQ4OTY1NjQ5
NTlhYjA1NmNjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0x
NjcsNiArMTY3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgT1AyX01VTFNEX1ZzZFdzZCAgICA9IDB4
NTksCiAgICAgICAgIE9QMl9TVUJTRF9Wc2RXc2QgICAgPSAweDVDLAogICAgICAgICBPUDJfRElW
U0RfVnNkV3NkICAgID0gMHg1RSwKKyAgICAgICAgT1AyX1NRUlRTRF9Wc2RXc2QgICA9IDB4NTEs
CiAgICAgICAgIE9QMl9YT1JQRF9WcGRXcGQgICAgPSAweDU3LAogICAgICAgICBPUDJfTU9WRF9W
ZEVkICAgICAgID0gMHg2RSwKICAgICAgICAgT1AyX01PVkRfRWRWZCAgICAgICA9IDB4N0UsCkBA
IC0xMzkzLDcgKzEzOTQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAjaWYgIUNQVShYODZfNjQpCi0g
ICAgdm9pZCBtb3ZzZF9tcih2b2lkKiBhZGRyZXNzLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB2
b2lkIG1vdnNkX21yKGNvbnN0IHZvaWQqIGFkZHJlc3MsIFhNTVJlZ2lzdGVySUQgZHN0KQogICAg
IHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwogICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3AoT1AyX01PVlNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCBhZGRy
ZXNzKTsKQEAgLTE0NjEsNiArMTQ2MiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
LnR3b0J5dGVPcChPUDJfWE9SUERfVnBkV3BkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklE
KXNyYyk7CiAgICAgfQogCisgICAgdm9pZCBzcXJ0c2RfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhN
TVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9T
U0VfRjIpOworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX1NRUlRTRF9Wc2RXc2Qs
IChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpc3JjKTsKKyAgICB9CisKICAgICAvLyBNaXNj
IGluc3RydWN0aW9uczoKIAogICAgIHZvaWQgaW50MygpCkBAIC0xNzQ2LDcgKzE3NTMsNyBAQCBw
cml2YXRlOgogICAgICAgICB9CiAKICNpZiAhQ1BVKFg4Nl82NCkKLSAgICAgICAgdm9pZCB0d29C
eXRlT3AoVHdvQnl0ZU9wY29kZUlEIG9wY29kZSwgaW50IHJlZywgdm9pZCogYWRkcmVzcykKKyAg
ICAgICAgdm9pZCB0d29CeXRlT3AoVHdvQnl0ZU9wY29kZUlEIG9wY29kZSwgaW50IHJlZywgY29u
c3Qgdm9pZCogYWRkcmVzcykKICAgICAgICAgewogICAgICAgICAgICAgbV9idWZmZXIuZW5zdXJl
U3BhY2UobWF4SW5zdHJ1Y3Rpb25TaXplKTsKICAgICAgICAgICAgIG1fYnVmZmVyLnB1dEJ5dGVV
bmNoZWNrZWQoT1BfMkJZVEVfRVNDQVBFKTsKQEAgLTIwNTcsNyArMjA2NCw3IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KIAogI2lmICFDUFUoWDg2XzY0KQotICAgICAgICB2b2lkIG1lbW9yeU1vZFJN
KGludCByZWcsIHZvaWQqIGFkZHJlc3MpCisgICAgICAgIHZvaWQgbWVtb3J5TW9kUk0oaW50IHJl
ZywgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICAgICAgewogICAgICAgICAgICAgLy8gbm9CYXNl
ICsgTW9kUm1NZW1vcnlOb0Rpc3AgbWVhbnMgbm9CYXNlICsgTW9kUm1NZW1vcnlEaXNwMzIhCiAg
ICAgICAgICAgICBwdXRNb2RSbShNb2RSbU1lbW9yeU5vRGlzcCwgcmVnLCBub0Jhc2UpOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUgYi9KYXZhU2NyaXB0Q29y
ZS9jcmVhdGVfaGFzaF90YWJsZQppbmRleCBmMDkxYWI5YzYwOWQyZmE1ODFjNWFkODUxMzg3MGU3
ZDEwNjg2ODFkLi42MDc4Zjk3NGY3YjBlOGFiOWE1ZTY1ZDAxODM1NjljZDU1NGM4YWIxIDEwMDc1
NQotLS0gYS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQorKysgYi9KYXZhU2NyaXB0
Q29yZS9jcmVhdGVfaGFzaF90YWJsZQpAQCAtMjc4LDYgKzI3OCwxMiBAQCBzdWIgb3V0cHV0KCkg
ewogICAgICAgICBpZiAoJGtleSBlcSAiY2hhckF0IikgewogICAgICAgICAgICAgJHRodW5rR2Vu
ZXJhdG9yID0gImNoYXJBdFRodW5rR2VuZXJhdG9yIjsKICAgICAgICAgfQorICAgICAgICBpZiAo
JGtleSBlcSAic3FydCIpIHsKKyAgICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJzcXJ0VGh1
bmtHZW5lcmF0b3IiOworICAgICAgICB9CisgICAgICAgIGlmICgka2V5IGVxICJwb3ciKSB7Cisg
ICAgICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAicG93VGh1bmtHZW5lcmF0b3IiOworICAgICAg
ICB9CiAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAkYXR0cnNbJGldLCAoaW50cHRyX3Qp
IiAuICRjYXN0U3RyIC4gIigkZmlyc3RWYWx1ZSksIChpbnRwdHJfdCkkc2Vjb25kVmFsdWUgVEhV
TktfR0VORVJBVE9SKCR0aHVua0dlbmVyYXRvcikgfSxcbiI7CiAgICAgICAgICRpKys7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCmluZGV4IDhlOGFlZGM3YWE2YWE0MGQxMmQ0OTFmMTBjMzY2NTY1MTU2NDIzY2Uu
LjIyZTdhYmFkY2U1ODgzOTBhN2QyN2U5MWU1Y2Y0MDI1YTgyNzZlZmIgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAg
LTQyNCw4ICs0MjQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0SnVtcFNs
b3dDYXNlSWZOb3RKU0NlbGwoUmVnaXN0ZXJJRCk7CiAgICAgICAgIHZvaWQgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SlNDZWxsKFJlZ2lzdGVySUQsIGludCBWUmVnKTsKICNpZiBVU0UoSlNWQUxVRTY0
KQotICAgICAgICBKSVQ6Okp1bXAgZW1pdEp1bXBJZkltbWVkaWF0ZU51bWJlcihSZWdpc3RlcklE
KTsKLSAgICAgICAgSklUOjpKdW1wIGVtaXRKdW1wSWZOb3RJbW1lZGlhdGVOdW1iZXIoUmVnaXN0
ZXJJRCk7CiAjZWxzZQogICAgICAgICBKSVQ6Okp1bXAgZW1pdEp1bXBJZkltbWVkaWF0ZU51bWJl
cihSZWdpc3RlcklEIHJlZykKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZU1ldGhvZHMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRo
b2RzLmgKaW5kZXggY2ExMjcwZjQ2OGZhYWVjYjI4YTFmYzAwZTBkNmRjZWVhN2VkNmU3OS4uMzdl
YTc0MWU3YzgyMGVlMzNlMWI3YjZhYWEzNmYwODE0YWQ2N2M5MiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lTWV0aG9kcy5oCkBAIC03MjIsMTQgKzcyMiw2IEBAIEFMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OmVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChSZWdpc3RlcklEIHJlZywgaW50IHZS
ZWcpCiB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotQUxXQVlTX0lOTElORSBKSVQ6Okp1bXAgSklU
OjplbWl0SnVtcElmSW1tZWRpYXRlTnVtYmVyKFJlZ2lzdGVySUQgcmVnKQotewotICAgIHJldHVy
biBicmFuY2hUZXN0UHRyKE5vblplcm8sIHJlZywgdGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLX0K
LUFMV0FZU19JTkxJTkUgSklUOjpKdW1wIEpJVDo6ZW1pdEp1bXBJZk5vdEltbWVkaWF0ZU51bWJl
cihSZWdpc3RlcklEIHJlZykKLXsKLSAgICByZXR1cm4gYnJhbmNoVGVzdFB0cihaZXJvLCByZWcs
IHRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7Ci19CiAKIGlubGluZSB2b2lkIEpJVDo6ZW1pdExvYWRE
b3VibGUodW5zaWduZWQgaW5kZXgsIEZQUmVnaXN0ZXJJRCB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAppbmRleCAwZGQ2YTQwNGJmZjM2YmZkZmEwYjUxZGQ2YTZhNTVlYzU1OTA2
NDE1Li5lYjA5ZWVhYTNiYWFjMjY0NDQ0OTVjODcwZjk1MGU5MjY4NmE3Y2QwIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCkBAIC00MDAsNyArNDAwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1
dGFibGUKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBmaW5hbENvZGUubV9leGVjdXRhYmxlUG9vbDsK
IAogICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5hbENv
ZGUsIHZpcnR1YWxDYWxsQmVnaW4pOwotICAgIHRyYW1wb2xpbmVzLT5jdGlOYXRpdmVDYWxsVGh1
bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVDYWxsVGh1bmspOworICAgIHRyYW1w
b2xpbmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSBhZG9wdFJlZihuZXcgTmF0aXZlRXhlY3V0YWJs
ZShKSVRDb2RlKEpJVENvZGU6Okhvc3RGdW5jdGlvbih0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBu
YXRpdmVDYWxsVGh1bmspKSkpKTsKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BST1BFUlRZX0FD
Q0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1w
b2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKICNlbHNlCkBAIC0xOTM3LDcg
KzE5MzcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMo
UmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZQogCiAgICAgdHJhbXBvbGluZXMtPmN0
aVZpcnR1YWxDYWxsTGluayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlu
a0JlZ2luKTsKICAgICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQo
ZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2luKTsKLSAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZl
Q2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKKyAg
ICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5rID0gYWRvcHRSZWYobmV3IE5hdGl2ZUV4
ZWN1dGFibGUoSklUQ29kZShKSVRDb2RlOjpIb3N0RnVuY3Rpb24odHJhbXBvbGluZUF0KGZpbmFs
Q29kZSwgbmF0aXZlQ2FsbFRodW5rKSkpKSk7CiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9NT0Qp
CiAgICAgdHJhbXBvbGluZXMtPmN0aVNvZnRNb2R1bG8gPSB0cmFtcG9saW5lQXQoZmluYWxDb2Rl
LCBzb2Z0TW9kQmVnaW4pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDRmZjZjOTgz
ODg1NDU4NzE0ZTU1ZjA0YmIwZDIwOTg2MjgzMzQyZjAuLmZlNGJjZmI4YmVjZmJlNGU2NjNlY2Iz
MWY1YjViOTRjZWVlZjZhYmMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCkBAIC03OSw3ICs3OSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5n
TGVuZ3RoVHJhbXBvbGluZTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1
YWxDYWxsTGluazsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxs
OwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rOworICAg
ICAgICBSZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4gY3RpTmF0aXZlQ2FsbFRodW5rOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU29mdE1vZHVsbzsKICAgICB9OwogCkBAIC0yNzUs
NyArMjc1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0
dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVy
ZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxD
YWxsOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1bmso
KSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbFRodW5rOyB9Cisg
ICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGN0aU5hdGl2ZUNhbGxUaHVuaygpIHsgcmV0dXJuIG1f
dHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsVGh1bmsuZ2V0KCk7IH0KICAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVNvZnRNb2R1bG8oKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpU29mdE1vZHVsbzsgfQogCiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUq
IHNwZWNpYWxpemVkVGh1bmsoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRv
ciBnZW5lcmF0b3IpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNl
SklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA3NGZjMGU0
ZGE4OWY2OTE0N2UxMWYwZjQ3NzVlNGFkOWU1YzQ5NWU0Li5jYWYxYWM1YTZiZmZjYzMyYzg4MGNk
MTkyOWUzNjVkNzZlZTgzMDQ3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRl
cmZhY2VKSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAt
NjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVn
aXN0ZXJJRCBmcFJlZ1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOwogICAgICAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7CiAgICAgICAgIHN0
YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QzID0gWDg2UmVnaXN0ZXJzOjp4
bW0zOwogI2VsaWYgQ1BVKFg4NikKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0
dXJuVmFsdWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwpA
QCAtODYsNiArODcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQ
UmVnaXN0ZXJJRCBmcFJlZ1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOwogICAgICAgICBzdGF0aWMg
Y29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsK
KyAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QzID0gWDg2UmVnaXN0ZXJz
Ojp4bW0zOwogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwogICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IEFSTVJlZ2lzdGVy
czo6cjA7CkBAIC0xMDIsNiArMTA0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRp
YyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IEFSTVJlZ2lzdGVyczo6ZDA7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6ZDE7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IEFSTVJlZ2lzdGVyczo6
ZDI7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMyA9IEFSTVJlZ2lz
dGVyczo6ZDM7CiAjZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKQogICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk1S
ZWdpc3RlcnM6OnIwOwpAQCAtMTI2LDYgKzEyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOwog
ICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBBUk1SZWdpc3RlcnM6
OmQxOwogICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBBUk1SZWdp
c3RlcnM6OmQyOworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDMgPSBB
Uk1SZWdpc3RlcnM6OmQzOwogI2VsaWYgQ1BVKE1JUFMpCiAgICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjp2MDsKICAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBNSVBTUmVn
aXN0ZXJzOjp2MDsKQEAgLTE0OCwyMSArMTUyLDI5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjpmNDsK
ICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gTUlQU1JlZ2lzdGVy
czo6ZjY7CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IE1JUFNS
ZWdpc3RlcnM6OmY4OworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIg
PSBNSVBTUmVnaXN0ZXJzOjpmMTA7CiAjZWxzZQogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBv
biB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgogCiAgICAgICAgIGlubGluZSBKdW1wIGVtaXRMb2Fk
SlNDZWxsKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIHBheWxvYWQp
OwogICAgICAgICBpbmxpbmUgSnVtcCBlbWl0TG9hZEludDMyKHVuc2lnbmVkIHZpcnR1YWxSZWdp
c3RlckluZGV4LCBSZWdpc3RlcklEIGRzdCk7CisgICAgICAgIGlubGluZSBKdW1wIGVtaXRMb2Fk
RG91YmxlKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBGUFJlZ2lzdGVySUQgZHN0LCBS
ZWdpc3RlcklEIHNjcmF0Y2gpOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgaW5s
aW5lIEp1bXAgZW1pdEp1bXBJZk5vdEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRl
eCk7CiAgICAgICAgIGlubGluZSBBZGRyZXNzIHRhZ0Zvcih1bnNpZ25lZCBpbmRleCwgUmVnaXN0
ZXJJRCBiYXNlID0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxV
RTMyKSB8fCBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKdW1wIGVtaXRKdW1wSWZJbW1lZGlhdGVO
dW1iZXIoUmVnaXN0ZXJJRCByZWcpOworICAgICAgICBKdW1wIGVtaXRKdW1wSWZOb3RJbW1lZGlh
dGVOdW1iZXIoUmVnaXN0ZXJJRCByZWcpOworI2VuZGlmCisKICAgICAgICAgaW5saW5lIEFkZHJl
c3MgcGF5bG9hZEZvcih1bnNpZ25lZCBpbmRleCwgUmVnaXN0ZXJJRCBiYXNlID0gY2FsbEZyYW1l
UmVnaXN0ZXIpOwogICAgICAgICBpbmxpbmUgQWRkcmVzcyBhZGRyZXNzRm9yKHVuc2lnbmVkIGlu
ZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgfTsKLSAgICAK
KwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1w
IEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJ
bmRleCwgUmVnaXN0ZXJJRCBwYXlsb2FkKQogICAgIHsKQEAgLTE5MCw5ICsyMDIsMzEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAoaW5kZXgg
KiBzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5w
YXlsb2FkKSk7CiAgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50
ZXJmYWNlSklUOjplbWl0TG9hZERvdWJsZSh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwg
RlBSZWdpc3RlcklEIGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKQorICAgIHsKKyAgICAgICAgbG9h
ZFB0cih0YWdGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgpLCBzY3JhdGNoKTsKKyAgICAgICAgSnVt
cCBpc0RvdWJsZSA9IGJyYW5jaDMyKEJlbG93LCBzY3JhdGNoLCBJbW0zMihKU1ZhbHVlOjpMb3dl
c3RUYWcpKTsKKyAgICAgICAgSnVtcCBub3RJbnQgPSBicmFuY2gzMihOb3RFcXVhbCwgc2NyYXRj
aCwgSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICAgICAgbG9hZFB0cihwYXlsb2FkRm9y
KHZpcnR1YWxSZWdpc3RlckluZGV4KSwgc2NyYXRjaCk7CisgICAgICAgIGNvbnZlcnRJbnQzMlRv
RG91YmxlKHNjcmF0Y2gsIGRzdCk7CisgICAgICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKKyAgICAg
ICAgaXNEb3VibGUubGluayh0aGlzKTsKKyAgICAgICAgbG9hZERvdWJsZShhZGRyZXNzRm9yKHZp
cnR1YWxSZWdpc3RlckluZGV4KSwgZHN0KTsKKyAgICAgICAgZG9uZS5saW5rKHRoaXMpOworICAg
ICAgICByZXR1cm4gbm90SW50OworICAgIH0gICAgCiAjZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgQUxXQVlTX0lOTElORSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJ
VDo6ZW1pdEp1bXBJZkltbWVkaWF0ZU51bWJlcihSZWdpc3RlcklEIHJlZykKKyAgICB7CisgICAg
ICAgIHJldHVybiBicmFuY2hUZXN0UHRyKE5vblplcm8sIHJlZywgdGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKKyAgICB9CisgICAgQUxXQVlTX0lOTElORSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0lu
dGVyZmFjZUpJVDo6ZW1pdEp1bXBJZk5vdEltbWVkaWF0ZU51bWJlcihSZWdpc3RlcklEIHJlZykK
KyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0UHRyKFplcm8sIHJlZywgdGFnVHlwZU51
bWJlclJlZ2lzdGVyKTsKKyAgICB9CiAgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpT
SW50ZXJmYWNlSklUOjplbWl0TG9hZEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRl
eCwgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBsb2FkUHRyKGFkZHJlc3NGb3Iodmly
dHVhbFJlZ2lzdGVySW5kZXgpLCBkc3QpOwpAQCAtMjA2LDYgKzI0MCwyMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgemVyb0V4dGVuZDMyVG9QdHIoZHN0LCBkc3QpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0lu
dGVyZmFjZUpJVDo6ZW1pdExvYWREb3VibGUodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgs
IEZQUmVnaXN0ZXJJRCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKKyAgICB7CisgICAgICAgIGxv
YWRQdHIoYWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCksIHNjcmF0Y2gpOworICAgICAg
ICBKdW1wIG5vdE51bWJlciA9IGVtaXRKdW1wSWZOb3RJbW1lZGlhdGVOdW1iZXIoc2NyYXRjaCk7
CisgICAgICAgIEp1bXAgbm90SW50ID0gYnJhbmNoUHRyKEJlbG93LCBzY3JhdGNoLCB0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIpOworICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoLCBk
c3QpOworICAgICAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CisgICAgICAgIG5vdEludC5saW5rKHRo
aXMpOworICAgICAgICBhZGRQdHIodGFnVHlwZU51bWJlclJlZ2lzdGVyLCBzY3JhdGNoKTsKKyAg
ICAgICAgbW92ZVB0clRvRG91YmxlKHNjcmF0Y2gsIGRzdCk7CisgICAgICAgIGRvbmUubGluayh0
aGlzKTsKKyAgICAgICAgcmV0dXJuIG5vdE51bWJlcjsKKyAgICB9CisKICNlbmRpZgogCiAjaWYg
VVNFKEpTVkFMVUUzMikKQEAgLTIyMSw3ICsyNzAsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEp1bXAgcmVzdWx0ID0gYnJhbmNoVGVzdDMyKFplcm8sIGRzdCwgSW1tMzIoSlNJbW1lZGlh
dGU6OlRhZ1R5cGVOdW1iZXIpKTsKICAgICAgICAgcnNoaWZ0MzIoSW1tMzIoSlNJbW1lZGlhdGU6
OkludGVnZXJQYXlsb2FkU2hpZnQpLCBkc3QpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0gICAgCisgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJm
YWNlSklUOjplbWl0TG9hZERvdWJsZSh1bnNpZ25lZCwgRlBSZWdpc3RlcklELCBSZWdpc3RlcklE
KQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBq
dW1wKCk7CisgICAgfQogI2VuZGlmCiAKICNpZiAhVVNFKEpTVkFMVUUzMl82NCkKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggYi9KYXZhU2NyaXB0
Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCmluZGV4IDVmODhhYzRiMjY1ZTFjYTgxM2I1
YjE0MDMxMzcwZTFmMWIxMDAwNmIuLmU0MTQxMWQwZDgyMDQxZGI5OTQ4NTUyMGMyZTA4MGE1OTdk
MmZlY2YgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklU
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaApAQCAtNDYs
NiArNDYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBtX2ZhaWx1cmVzLmFwcGVu
ZChicmFuY2gzMihOb3RFcXVhbCwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJG
aWxlOjpBcmd1bWVudENvdW50ICogKGludClzaXplb2YoUmVnaXN0ZXIpKSwgSW1tMzIoZXhwZWN0
ZWRBcmdDb3VudCArIDEpKSk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIHZvaWQgbG9h
ZERvdWJsZUFyZ3VtZW50KGludCBhcmd1bWVudCwgRlBSZWdpc3RlcklEIGRzdCwgUmVnaXN0ZXJJ
RCBzY3JhdGNoKQorICAgICAgICB7CisgICAgICAgICAgICB1bnNpZ25lZCBzcmMgPSBhcmd1bWVu
dFRvVmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50KTsKKyAgICAgICAgICAgIG1fZmFpbHVyZXMuYXBw
ZW5kKGVtaXRMb2FkRG91YmxlKHNyYywgZHN0LCBzY3JhdGNoKSk7CisgICAgICAgIH0KKyAgICAg
ICAgCiAgICAgICAgIHZvaWQgbG9hZENlbGxBcmd1bWVudChpbnQgYXJndW1lbnQsIFJlZ2lzdGVy
SUQgZHN0KQogICAgICAgICB7CiAgICAgICAgICAgICB1bnNpZ25lZCBzcmMgPSBhcmd1bWVudFRv
VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50KTsKQEAgLTU5LDE3ICs2NSw1MCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgICAgIG1fZmFpbHVyZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihOb25aZXJv
LCBBZGRyZXNzKGRzdCwgT0JKRUNUX09GRlNFVE9GKEpTU3RyaW5nLCBtX2ZpYmVyQ291bnQpKSkp
OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIGxvYWRJbnQzMkFyZ3VtZW50KGlu
dCBhcmd1bWVudCwgUmVnaXN0ZXJJRCBkc3QpCisgICAgICAgIHZvaWQgbG9hZEludDMyQXJndW1l
bnQoaW50IGFyZ3VtZW50LCBSZWdpc3RlcklEIGRzdCwgSnVtcCYgZmFpbFRhcmdldCkKICAgICAg
ICAgewogICAgICAgICAgICAgdW5zaWduZWQgc3JjID0gYXJndW1lbnRUb1ZpcnR1YWxSZWdpc3Rl
cihhcmd1bWVudCk7Ci0gICAgICAgICAgICBtX2ZhaWx1cmVzLmFwcGVuZChlbWl0TG9hZEludDMy
KHNyYywgZHN0KSk7CisgICAgICAgICAgICBmYWlsVGFyZ2V0ID0gZW1pdExvYWRJbnQzMihzcmMs
IGRzdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgbG9hZEludDMyQXJndW1l
bnQoaW50IGFyZ3VtZW50LCBSZWdpc3RlcklEIGRzdCkKKyAgICAgICAgeworICAgICAgICAgICAg
SnVtcCBjb252ZXJzaW9uRmFpbGVkOworICAgICAgICAgICAgbG9hZEludDMyQXJndW1lbnQoYXJn
dW1lbnQsIGRzdCwgY29udmVyc2lvbkZhaWxlZCk7CisgICAgICAgICAgICBtX2ZhaWx1cmVzLmFw
cGVuZChjb252ZXJzaW9uRmFpbGVkKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9p
ZCBhcHBlbmRGYWlsdXJlKGNvbnN0IEp1bXAmIGZhaWx1cmUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIG1fZmFpbHVyZXMuYXBwZW5kKGZhaWx1cmUpOwogICAgICAgICB9CisKKyAgICAgICAgdm9p
ZCByZXR1cm5KU1ZhbHVlKFJlZ2lzdGVySUQgc3JjKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoc3JjICE9IHJlZ1QwKQorICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CisgICAg
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6
Q2FsbGVyRnJhbWUgKiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlcik7
CisgICAgICAgICAgICByZXQoKTsKKyAgICAgICAgfQogICAgICAgICAKKyAgICAgICAgdm9pZCBy
ZXR1cm5Eb3VibGUoRlBSZWdpc3RlcklEIHNyYykKKyAgICAgICAgeworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgICAgICBtb3ZlRG91YmxlVG9QdHIoc3JjLCByZWdUMCk7CisgICAgICAgICAg
ICBzdWJQdHIodGFnVHlwZU51bWJlclJlZ2lzdGVyLCByZWdUMCk7CisjZWxpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCAtKGludClzaXplb2YoZG91YmxlKSkpOworICAgICAgICAgICAgbG9hZFB0cihB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMudGFnKSAtIHNpemVvZihkb3VibGUpKSwgcmVnVDEpOworICAgICAgICAgICAgbG9hZFB0
cihBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMucGF5bG9hZCkgLSBzaXplb2YoZG91YmxlKSksIHJlZ1QwKTsKKyNlbHNlCisgICAg
ICAgICAgICBVTlVTRURfUEFSQU0oc3JjKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoanVtcCgpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6
OkNhbGxlckZyYW1lICogKGludClzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworICAgICAgICAgICAgcmV0KCk7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIHJldHVybklu
dDMyKFJlZ2lzdGVySUQgc3JjKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJl
Z1QwKQpAQCAtOTEsNyArMTMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFBhc3NSZWZQ
dHI8TmF0aXZlRXhlY3V0YWJsZT4gZmluYWxpemUoKQogICAgICAgICB7CiAgICAgICAgICAgICBM
aW5rQnVmZmVyIHBhdGNoQnVmZmVyKHRoaXMsIG1fcG9vbC5nZXQoKSk7Ci0gICAgICAgICAgICBw
YXRjaEJ1ZmZlci5saW5rKG1fZmFpbHVyZXMsIENvZGVMb2NhdGlvbkxhYmVsKG1fZ2xvYmFsRGF0
YS0+aml0U3R1YnMuY3RpTmF0aXZlQ2FsbFRodW5rKCkpKTsKKyAgICAgICAgICAgIHBhdGNoQnVm
ZmVyLmxpbmsobV9mYWlsdXJlcywgQ29kZUxvY2F0aW9uTGFiZWwobV9nbG9iYWxEYXRhLT5qaXRT
dHVicy5jdGlOYXRpdmVDYWxsVGh1bmsoKS0+Z2VuZXJhdGVkSklUQ29kZSgpLmFkZHJlc3NGb3JD
YWxsKCkpKTsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmF0aXZlRXhlY3V0YWJs
ZShwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKSkpOwogICAgICAgICB9CiAgICAgICAgIApAQCAt
MTE0LDcgKzE1Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgYWRkUHRyKEltbTMy
KEpTSW1tZWRpYXRlOjpUYWdUeXBlTnVtYmVyKSwgcmVnVDApOwogI2VuZGlmCiAgICAgICAgIH0K
LSAgICAgICAgCisKICAgICAgICAgdm9pZCB0YWdSZXR1cm5Bc0pTQ2VsbCgpCiAgICAgICAgIHsK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNw
cAppbmRleCA0M2YyMzUzZjg2YzM2NTBjZjkzMjMwYTBjNmI1ZmJkYzMyZjliODA2Li45YmM0MmU0
ZmQzOTM5ZTNjNzY3MzVmZmIzMmVhYjRmMDkzMzVkYzhhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcApAQCAtOTQsNiArOTQsNzEgQEAgUGFzc1JlZlB0cjxOYXRpdmVFeGVj
dXRhYmxlPiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEKICAgICByZXR1cm4gaml0LmZpbmFsaXplKCk7CiB9CiAKK1Bhc3NSZWZQdHI8TmF0aXZlRXhl
Y3V0YWJsZT4gc3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhl
Y3V0YWJsZVBvb2wqIHBvb2wpCit7CisjaWYgVVNFKEpTVkFMVUU2NCkgfHwgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICBTcGVjaWFsaXplZFRodW5rSklUIGppdCgxLCBnbG9iYWxEYXRhLCBwb29sKTsK
KyAgICBpZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkpCisgICAgICAgIHJldHVy
biBnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsVGh1bmsoKTsKKworICAgIGppdC5s
b2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lh
bGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAgIGppdC5zcXJ0RG91YmxlKFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOworICAgIGppdC5y
ZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7CisgICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocG9vbCk7CisgICAgcmV0dXJu
IGdsb2JhbERhdGEtPmppdFN0dWJzLmN0aU5hdGl2ZUNhbGxUaHVuaygpOworI2VuZGlmCit9CisK
K3N0YXRpYyBjb25zdCBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7CitzdGF0aWMgY29uc3QgZG91
YmxlIG5lZ2F0aXZlSGFsZkNvbnN0YW50ID0gLTAuNTsKKworUGFzc1JlZlB0cjxOYXRpdmVFeGVj
dXRhYmxlPiBwb3dUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1
dGFibGVQb29sKiBwb29sKQoreworI2lmIFVTRShKU1ZBTFVFNjQpIHx8IFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQoMiwgZ2xvYmFsRGF0YSwgcG9vbCk7Cisg
ICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpCisgICAgICAgIHJldHVybiBnbG9i
YWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsVGh1bmsoKTsKKworICAgIGppdC5sb2FkRG91
YmxlKCZvbmVDb25zdGFudCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CisgICAgaml0
LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm9uSW50
RXhwb25lbnQ7CisgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDEsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OnJlZ1QwLCBub25JbnRFeHBvbmVudCk7CisgICAgaml0LmFwcGVuZEZhaWx1cmUoaml0LmJy
YW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIE1hY3JvQXNzZW1ibGVyOjpJbW0zMigwKSkpOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGV4cG9uZW50SXNaZXJvID0gaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6
WmVybywgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAgIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBzdGFydExvb3Aoaml0LmxhYmVsKCkpOworCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZXhwb25lbnRJc0V2ZW4gPSBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBT
cGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6OkltbTMyKDEpKTsKKyAg
ICBqaXQubXVsRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OmZwUmVnVDEpOworICAgIGV4cG9uZW50SXNFdmVuLmxpbmsoJmppdCk7CisgICAg
aml0Lm11bERvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwKTsKKyAgICBqaXQucnNoaWZ0MzIoTWFjcm9Bc3NlbWJsZXI6OkltbTMy
KDEpLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgaml0LmJyYW5jaFRlc3QzMihN
YWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApLmxpbmtU
byhzdGFydExvb3AsICZqaXQpOworCisgICAgZXhwb25lbnRJc1plcm8ubGluaygmaml0KTsKKyAg
ICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOworCisgICAg
aWYgKGppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkpIHsKKyAgICAgICAgbm9uSW50RXhw
b25lbnQubGluaygmaml0KTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoJm5lZ2F0aXZlSGFsZkNv
bnN0YW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QzKTsKKyAgICAgICAgaml0LmxvYWRE
b3VibGVBcmd1bWVudCgxLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QyLCBTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCk7CisgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKGppdC5icmFuY2hE
b3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSkpOworICAgICAg
ICBqaXQuYXBwZW5kRmFpbHVyZShqaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3Vi
bGVOb3RFcXVhbCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMiwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZnBSZWdUMykpOworICAgICAgICBqaXQuc3FydERvdWJsZShTcGVjaWFsaXplZFRodW5r
SklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKKyAgICAgICAgaml0
LmRpdkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5r
SklUOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5r
SklUOjpmcFJlZ1QxKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9u
SW50RXhwb25lbnQpOworCisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSgpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocG9vbCk7CisgICAgcmV0dXJuIGdsb2JhbERhdGEtPmppdFN0dWJzLmN0aU5h
dGl2ZUNhbGxUaHVuaygpOworI2VuZGlmCit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmggYi9KYXZh
U2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKaW5kZXggNTMyNGEwOTczZTg5NWMwMzJi
ZDlmNjgzNGNmMjY3NzRlNGU3Njc4ZS4uYzMzNzRmMmQ5MmQwMjUxZTFjY2IyNmRhNjdjMmUyMzM1
ZmM3ZjkxZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaApAQCAtMzgsNiArMzgs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBQYXNzUmVmUHRyPE5hdGl2ZUV4ZWN1dGFibGU+IGNo
YXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqLCBFeGVjdXRhYmxlUG9vbCopOwog
ICAgIFBhc3NSZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4gY2hhckF0VGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKiwgRXhlY3V0YWJsZVBvb2wqKTsKICAgICBQYXNzUmVmUHRyPE5hdGl2ZUV4ZWN1
dGFibGU+IGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFi
bGVQb29sKik7CisgICAgUGFzc1JlZlB0cjxOYXRpdmVFeGVjdXRhYmxlPiBzcXJ0VGh1bmtHZW5l
cmF0b3IoSlNHbG9iYWxEYXRhKiwgRXhlY3V0YWJsZVBvb2wqKTsKKyAgICBQYXNzUmVmUHRyPE5h
dGl2ZUV4ZWN1dGFibGU+IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFi
bGVQb29sKik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRl
eCAyMmUwMDE5NzUxZDY3M2Y4Y2Q2Y2IyMDM0ZmNjMzc1MTI3ZDc5N2E4Li5hYzY5MWU0NDcxMzJj
N2QxYzVlMDhiZmRiZTkxZGRjYjk3OWQ5OWE5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaApAQCAtODUsNyArODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTmF0aXZlRXhl
Y3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICA6IEV4ZWN1dGFibGVCYXNlKE5V
TV9QQVJBTUVURVJTX0lTX0hPU1QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1faml0Q29kZSA9
IEpJVENvZGUoSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKS5qaXRTdHVi
cy5jdGlOYXRpdmVDYWxsVGh1bmsoKSkpOworICAgICAgICAgICAgbV9qaXRDb2RlID0gZXhlYy0+
Z2xvYmFsRGF0YSgpLmppdFN0dWJzLmN0aU5hdGl2ZUNhbGxUaHVuaygpLT5tX2ppdENvZGU7CiAg
ICAgICAgIH0KICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKSVRDb2RlIHRodW5rKQogICAgICAg
ICAgICAgOiBFeGVjdXRhYmxlQmFzZShOVU1fUEFSQU1FVEVSU19JU19IT1NUKQpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNjNhNmNiNjdlODJlZTMyOGQzZDhlZWY4MDkz
NjUxYjE3NjQ1ZGE5Mi4uNWI3MzY0MmVhNzVmMTBlYmVjZTg1ZjcxODhhNDFmMDY0YmY3YmVmOCAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC03Niw3ICs3Niw3IEBAIEpT
RnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSwKIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKICAgICA6IEJhc2Uo
JmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBuYW1lKQogI2lmIEVOQUJMRShKSVQpCi0g
ICAgLCBtX2V4ZWN1dGFibGUoYWRvcHRSZWYobmV3IE5hdGl2ZUV4ZWN1dGFibGUoZXhlYykpKQor
ICAgICwgbV9leGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5qaXRTdHVicy5jdGlOYXRpdmVD
YWxsVGh1bmsoKSkKICNlbmRpZgogewogI2lmIEVOQUJMRShKSVQpCg==
</data>
<flag name="review"
          id="38658"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>