<?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>151799</bug_id>
          
          <creation_ts>2015-12-03 00:38:57 -0800</creation_ts>
          <short_desc>[JSC] Add CLZ support to B3</short_desc>
          <delta_ts>2015-12-03 13:48:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>achristensen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145884</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-03 00:38:57 -0800</bug_when>
    <thetext>[JSC] Add CLZ support to B3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145888</commentid>
    <comment_count>1</comment_count>
      <attachid>266518</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-03 00:44:46 -0800</bug_when>
    <thetext>Created attachment 266518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145926</commentid>
    <comment_count>2</comment_count>
      <attachid>266518</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 08:22:55 -0800</bug_when>
    <thetext>Comment on attachment 266518
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145959</commentid>
    <comment_count>3</comment_count>
      <attachid>266518</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 10:49:18 -0800</bug_when>
    <thetext>Comment on attachment 266518
Patch

Clearing flags on attachment: 266518

Committed r193125: &lt;http://trac.webkit.org/changeset/193125&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145960</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 10:49:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145969</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-03 11:12:09 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 266518 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 266518
&gt; 
&gt; Committed r193125: &lt;http://trac.webkit.org/changeset/193125&gt;

It broke the WinCairo build:
https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/51690

c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1722): error C4235: nonstandard extension used: &apos;__asm&apos; keyword not supported on this architecture
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1723): error C2065: &apos;mov&apos;: undeclared identifier
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1723): error C2146: syntax error: missing &apos;;&apos; before identifier &apos;eax&apos;
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1723): error C2065: &apos;eax&apos;: undeclared identifier
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1725): error C2146: syntax error: missing &apos;;&apos; before identifier &apos;cpuid&apos;
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1725): error C2065: &apos;cpuid&apos;: undeclared identifier
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1725): error C2146: syntax error: missing &apos;;&apos; before identifier &apos;mov&apos;
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1725): error C2065: &apos;mov&apos;: undeclared identifier
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1725): error C2146: syntax error: missing &apos;;&apos; before identifier &apos;flags&apos;
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1726): error C2065: &apos;ecx&apos;: undeclared identifier
c:\users\alex\documents\wincairobot\win-cairo-release\build\source\javascriptcore\assembler\MacroAssemblerX86Common.h(1726): error C2143: syntax error: missing &apos;;&apos; before &apos;}&apos;
ninja: build stopped: subcommand failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145985</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-03 11:41:02 -0800</bug_when>
    <thetext>This actually broke all 64-bit windows builds because MSVC does not have inline assembly in its 64-bit compiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145997</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 11:53:30 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; This actually broke all 64-bit windows builds because MSVC does not have
&gt; inline assembly in its 64-bit compiler.

I think we need to use the __cpuid() intrinsic.  See https://msdn.microsoft.com/library/hskdteyh(v=vs.100).aspx.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146022</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-03 12:49:47 -0800</bug_when>
    <thetext>and the 32 bit GTK build too:

../../Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h: In member function ‘void JSC::DFG::SpeculativeJIT::compileArithClz32(JSC::DFG::Node*)’:
../../Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:1733:18: error: PIC register clobbered by ‘%ebx’ in ‘asm’</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146024</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-03 12:51:44 -0800</bug_when>
    <thetext>It&apos;s strange that the Windows EWS is greeen, but the buildbots are red.
Why don&apos;t they have exactly the same configuration?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146043</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-03 13:48:34 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; It&apos;s strange that the Windows EWS is greeen, but the buildbots are red.
&gt; Why don&apos;t they have exactly the same configuration?
The Windows EWS and the Windows buildbots are all building and testing 32-bit right now.  My WinCairo bot is building 64-bit right now, which is why it is the only bot that broke with this change.  Another change broke the Windows build and that was fixed in http://trac.webkit.org/changeset/193366 (unrelated)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266518</attachid>
            <date>2015-12-03 00:44:46 -0800</date>
            <delta_ts>2015-12-03 10:49:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151799-20151203004422.patch</filename>
            <type>text/plain</type>
            <size>19718</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MmFlMjk3Nzc0ZGRjODkzYWVhMDM3ZTE3MWZmOGE2YTljNTc2YTQxLi4zZTljMGViZmMyY2ZmZDEw
YTBkNTNhNDYxMGIzY2Y2ZjA0YjU1YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0xMi0wMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgQ0xaIHN1cHBvcnQgdG8gQjMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTc5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugd2VyZSBj
b3VudGluZyBvbiBMTFZNIHRvIHNlbGVjdCBMWkNOVAorICAgICAgICB3aGVuIGl0cyBhdmFpbGFi
bGUuCisgICAgICAgIFNpbmNlIHdlIGhhdmUgdG8gZG8gdGhhdCBvdXJzZWxmIG5vdywgSSBhZGRl
ZCBmZWF0dXJlCisgICAgICAgIGRldGVjdGlvbiBiYXNlZCBvbiB0aGUgQ1BVSUQuIFRoZSBNYWNy
b0Fzc2VtYmxlciBqdXN0CisgICAgICAgIHBpY2sgdGhlIGJlc3QgYXZhaWxhYmxlIGxvd2VyaW5n
IGJhc2VkIG9uIHRoZSBwbGF0Zm9ybS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpjb3VudExl
YWRpbmdaZXJvczMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN1
cHBvcnRzTFpDTlQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Y2x6
MzJBZnRlckJzcik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0Ojpjb3VudExlYWRpbmdaZXJvczY0
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OmNsejY0QWZ0ZXJCc3IpOgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNz
ZW1ibGVyOjpsemNudF9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6bHpjbnRfbXIp
OgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6Omx6Y250cV9ycik6CisgICAgICAgIChKU0M6
Olg4NkFzc2VtYmxlcjo6bHpjbnRxX21yKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpi
c3JfbXIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OmJzcnFfcnIpOgorICAgICAgICAo
SlNDOjpYODZBc3NlbWJsZXI6OmJzcnFfbXIpOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5j
cHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAg
KiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNWYWxpZGF0ZS5jcHA6CisgICAgICAg
ICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZWZmZWN0cyk6Cisg
ICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6a2V5KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjp0
eXBlRm9yKToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICog
YjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OmNvdW50TGVhZGluZ1plcm8pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENsekFyZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDbHpN
ZW02NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2x6QXJnMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdENsek1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OmRvdWJsZU9wZXJhbmRzKToKKyAg
ICAgICAgKEpTQzo6QjM6OnJ1bik6CisgICAgICAgICogZnRsL0ZUTEIzT3V0cHV0Lmg6CisgICAg
ICAgIChKU0M6OkZUTDo6T3V0cHV0OjpjdGx6MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29t
cGlsZUFyaXRoQ2x6MzIpOgorICAgICAgICAqIGZ0bC9GVExPdXRwdXQuaDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmN0bHozMik6CisKIDIwMTUtMTItMDIgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFBvbHltb3JwaGljIG9wZXJhbmQgdHlwZXMgZm9yIERG
RyBhbmQgRlRMIG11bC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKaW5kZXggNGYyNTAzYTY5YjMxYWZm
ZmE4MzIwNTFjYjE0NWFlMzFlMjU1ZGE4YS4uYjQ2OWY0ZDIyYmFkZWQ2NjUzNTk2NGQwMzc3M2Q5
NzEyMmVhNmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKQEAgLTU1Miw2ICs1NTIsOCBAQCB2
b2lkIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpwcm9iZShNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bjo6UHJvYmVGdW5jdGlvbiBmdW5jdAogTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVj
a1N0YXRlIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzX3NzZTJDaGVja1N0YXRlID0gTm90Q2hl
Y2tlZFNTRTI7CiAjZW5kaWYKIAorTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OkxaQ05UQ2hlY2tT
dGF0ZSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19semNudENoZWNrU3RhdGUgPSBMWkNOVENo
ZWNrU3RhdGU6Ok5vdENoZWNrZWQ7CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
RU5BQkxFKEFTU0VNQkxFUikgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbi5oCmluZGV4IDhlZjg0NmM1Y2ZlODQ2NTY5ZmQyYmJkNWQ2MTIxYjAwMGFjMjA2ZGUuLjI5
MWRiZmYwYjFjMzdhOTg5MGVlNDg0YWEzM2QxMjVlMTg5Y2FiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmgKQEAgLTIwNSwxNCArMjA1LDIyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY291bnRMZWFkaW5n
WmVyb3MzMihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgeworICAgICAgICBp
ZiAoc3VwcG9ydHNMWkNOVCgpKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5semNudF9ycihz
cmMsIGRzdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgbV9hc3Nl
bWJsZXIuYnNyX3JyKHNyYywgZHN0KTsKLSAgICAgICAgSnVtcCBzcmNJc05vblplcm8gPSBtX2Fz
c2VtYmxlci5qQ0MoeDg2Q29uZGl0aW9uKE5vblplcm8pKTsKLSAgICAgICAgbW92ZShUcnVzdGVk
SW1tMzIoMzIpLCBkc3QpOworICAgICAgICBjbHozMkFmdGVyQnNyKGRzdCk7CisgICAgfQogCi0g
ICAgICAgIEp1bXAgc2tpcE5vblplcm9DYXNlID0ganVtcCgpOwotICAgICAgICBzcmNJc05vblpl
cm8ubGluayh0aGlzKTsKLSAgICAgICAgeG9yMzIoVHJ1c3RlZEltbTMyKDB4MWYpLCBkc3QpOwot
ICAgICAgICBza2lwTm9uWmVyb0Nhc2UubGluayh0aGlzKTsKKyAgICB2b2lkIGNvdW50TGVhZGlu
Z1plcm9zMzIoQWRkcmVzcyBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgaWYg
KHN1cHBvcnRzTFpDTlQoKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHpjbnRfbXIoc3Jj
Lm9mZnNldCwgc3JjLmJhc2UsIGRzdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgbV9hc3NlbWJsZXIuYnNyX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkc3QpOwor
ICAgICAgICBjbHozMkFmdGVyQnNyKGRzdCk7CiAgICAgfQogCiAgICAgdm9pZCBsc2hpZnQzMihS
ZWdpc3RlcklEIHNoaWZ0X2Ftb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTcwNiw2ICsxNzE0
LDMxIEBAIHByb3RlY3RlZDoKICNlbmRpZgogICAgIH0KICAgICAKKyAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0xaQ05UKCkKKyAgICB7CisgICAgICAgIGlmIChzX2x6Y250Q2hlY2tTdGF0ZSA9PSBM
WkNOVENoZWNrU3RhdGU6Ok5vdENoZWNrZWQpIHsKKyAgICAgICAgICAgIGludCBmbGFncyA9IDA7
CisjaWYgQ09NUElMRVIoTVNWQykKKyAgICAgICAgICAgIF9hc20geworICAgICAgICAgICAgICAg
IG1vdiBlYXgsIDB4ODAwMDAwMDEKKyAgICAgICAgICAgICAgICBjcHVpZDsKKyAgICAgICAgICAg
ICAgICBtb3YgZmxhZ3MsIGVjeDsKKyAgICAgICAgICAgIH0KKyNlbGlmIENPTVBJTEVSKEdDQ19P
Ul9DTEFORykKKyAgICAgICAgICAgIGFzbSAoCisgICAgICAgICAgICAgICAgIm1vdmwgJDB4ODAw
MDAwMDEsICUlZWF4OyIKKyAgICAgICAgICAgICAgICAiY3B1aWQ7IgorICAgICAgICAgICAgICAg
ICJtb3ZsICUlZWN4LCAlMDsiCisgICAgICAgICAgICAgICAgOiAiPWciIChmbGFncykKKyAgICAg
ICAgICAgICAgICA6CisgICAgICAgICAgICAgICAgOiAiJWVheCIsICIlZWJ4IiwgIiVlY3giLCAi
JWVkeCIKKyAgICAgICAgICAgICAgICApOworI2VuZGlmCisgICAgICAgICAgICBzX2x6Y250Q2hl
Y2tTdGF0ZSA9IChmbGFncyAmIDB4MjApID8gTFpDTlRDaGVja1N0YXRlOjpTZXQgOiBMWkNOVENo
ZWNrU3RhdGU6OkNsZWFyOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzX2x6Y250Q2hlY2tT
dGF0ZSA9PSBMWkNOVENoZWNrU3RhdGU6OlNldDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgLy8g
T25seSBNYWNyb0Fzc2VtYmxlclg4NiBzaG91bGQgYmUgdXNpbmcgdGhlIGZvbGxvd2luZyBtZXRo
b2Q7IFNTRTIgaXMgYWx3YXlzIGF2YWlsYWJsZSBvbgogICAgIC8vIHg4Nl82NCwgYW5kIGNsaWVu
dHMgJiBzdWJjbGFzc2VzIG9mIE1hY3JvQXNzZW1ibGVyIHNob3VsZCBiZSB1c2luZyAnc3VwcG9y
dHNGbG9hdGluZ1BvaW50KCknLgpAQCAtMTc0MCw2ICsxNzczLDE5IEBAIHByaXZhdGU6CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZGxfaW0oaW1tLm1fdmFsdWUsIGFkZHJlc3Mub2Zmc2V0LCBhZGRy
ZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIElmIGx6Y250IGlzIG5vdCBhdmFpbGFibGUsIHVz
ZSB0aGlzIGFmdGVyIEJTUgorICAgIC8vIHRvIGNvdW50IHRoZSBsZWFkaW5nIHplcm9zLgorICAg
IHZvaWQgY2x6MzJBZnRlckJzcihSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIEp1bXAg
c3JjSXNOb25aZXJvID0gbV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihOb25aZXJvKSk7Cisg
ICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDMyKSwgZHN0KTsKKworICAgICAgICBKdW1wIHNraXBO
b25aZXJvQ2FzZSA9IGp1bXAoKTsKKyAgICAgICAgc3JjSXNOb25aZXJvLmxpbmsodGhpcyk7Cisg
ICAgICAgIHhvcjMyKFRydXN0ZWRJbW0zMigweDFmKSwgZHN0KTsKKyAgICAgICAgc2tpcE5vblpl
cm9DYXNlLmxpbmsodGhpcyk7CisgICAgfQorCiAjaWYgQ1BVKFg4NikKICNpZiBPUyhNQUNfT1Nf
WCkKIApAQCAtMTgwMyw2ICsxODQ5LDEzIEBAIHByaXZhdGU6CiAgICAgfQogCiAjZW5kaWYKKwor
ICAgIGVudW0gY2xhc3MgTFpDTlRDaGVja1N0YXRlIHsKKyAgICAgICAgTm90Q2hlY2tlZCwKKyAg
ICAgICAgQ2xlYXIsCisgICAgICAgIFNldAorICAgIH07CisgICAgc3RhdGljIExaQ05UQ2hlY2tT
dGF0ZSBzX2x6Y250Q2hlY2tTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82
NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82
NC5oCmluZGV4IDZlNjIyMWVjOTA3YzNmZjRkZGVhMDBkNDQ0YjQ0NjdjMzQ3NmIzNjIuLjNiMDc4
Yzk5NTcxOWU5YjI2YWJlYmNlNjM3NTlhZGM0OTM2NzIzNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTMz
NCw2ICszMzQsMjYgQEAgcHVibGljOgogICAgICAgICBhbmQ2NChzY3JhdGNoUmVnaXN0ZXIoKSwg
c3JjRGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBjb3VudExlYWRpbmdaZXJvczY0KFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIGlmIChzdXBwb3J0c0xaQ05U
KCkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx6Y250cV9ycihzcmMsIGRzdCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9hc3NlbWJsZXIuYnNycV9ycihz
cmMsIGRzdCk7CisgICAgICAgIGNsejY0QWZ0ZXJCc3IoZHN0KTsKKyAgICB9CisKKyAgICB2b2lk
IGNvdW50TGVhZGluZ1plcm9zNjQoQWRkcmVzcyBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsK
KyAgICAgICAgaWYgKHN1cHBvcnRzTFpDTlQoKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bHpjbnRxX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkc3QpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIG1fYXNzZW1ibGVyLmJzcnFfbXIoc3JjLm9mZnNldCwgc3Jj
LmJhc2UsIGRzdCk7CisgICAgICAgIGNsejY0QWZ0ZXJCc3IoZHN0KTsKKyAgICB9CisKICAgICB2
b2lkIGxzaGlmdDY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLnNobHFfaThyKGltbS5tX3ZhbHVlLCBkZXN0KTsKQEAgLTEwNDcs
NiArMTA2NywxOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gSWYgbHpj
bnQgaXMgbm90IGF2YWlsYWJsZSwgdXNlIHRoaXMgYWZ0ZXIgQlNSCisgICAgLy8gdG8gY291bnQg
dGhlIGxlYWRpbmcgemVyb3MuCisgICAgdm9pZCBjbHo2NEFmdGVyQnNyKFJlZ2lzdGVySUQgZHN0
KQorICAgIHsKKyAgICAgICAgSnVtcCBzcmNJc05vblplcm8gPSBtX2Fzc2VtYmxlci5qQ0MoeDg2
Q29uZGl0aW9uKE5vblplcm8pKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoNjQpLCBkc3Qp
OworCisgICAgICAgIEp1bXAgc2tpcE5vblplcm9DYXNlID0ganVtcCgpOworICAgICAgICBzcmNJ
c05vblplcm8ubGluayh0aGlzKTsKKyAgICAgICAgeG9yNjQoVHJ1c3RlZEltbTMyKDB4M2YpLCBk
c3QpOworICAgICAgICBza2lwTm9uWmVyb0Nhc2UubGluayh0aGlzKTsKKyAgICB9CisKICAgICBm
cmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKIAogICAgIHN0YXRpYyB2b2lkIGxpbmtDYWxsKHZvaWQq
IGNvZGUsIENhbGwgY2FsbCwgRnVuY3Rpb25QdHIgZnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAppbmRleCA2NTNjMzhkODg3M2E1ZDJj
NWUxOTJiMTBlY2MzZjUxMjgwOWUxNmI1Li41ZDI5YzU5MmQ4YzQ5ZDk3NzFmMGE0NjM1Zjk3MjYy
ODJlNWViNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNz
ZW1ibGVyLmgKQEAgLTI4Myw2ICsyODMsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfSU1VTF9H
dkV2ICAgICAgID0gMHhBRiwKICAgICAgICAgT1AyX01PVlpYX0d2RWIgICAgICA9IDB4QjYsCiAg
ICAgICAgIE9QMl9CU1IgICAgICAgICAgICAgPSAweEJELAorICAgICAgICBPUDJfTFpDTlQgICAg
ICAgICAgID0gMHhCRCwKICAgICAgICAgT1AyX01PVlNYX0d2RWIgICAgICA9IDB4QkUsCiAgICAg
ICAgIE9QMl9NT1ZaWF9HdkV3ICAgICAgPSAweEI3LAogICAgICAgICBPUDJfTU9WU1hfR3ZFdyAg
ICAgID0gMHhCRiwKQEAgLTg2MCwxMSArODYxLDU0IEBAIHB1YmxpYzoKIAogI2VuZGlmCiAKKyAg
ICB2b2lkIGx6Y250X3JyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudHdvQnl0ZU9wKE9QMl9MWkNOVCwgZHN0LCBzcmMpOworICAgIH0KKworICAgIHZvaWQgbHpj
bnRfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7
CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3Jt
YXR0ZXIudHdvQnl0ZU9wKE9QMl9MWkNOVCwgZHN0LCBiYXNlLCBvZmZzZXQpOworICAgIH0KKwor
I2lmIENQVShYODZfNjQpCisgICAgdm9pZCBsemNudHFfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMp
OworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3A2NChPUDJfTFpDTlQsIGRzdCwgc3JjKTsK
KyAgICB9CisKKyAgICB2b2lkIGx6Y250cV9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2Us
IFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9T
U0VfRjMpOworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3A2NChPUDJfTFpDTlQsIGRzdCwg
YmFzZSwgb2Zmc2V0KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgYnNyX3JyKFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5
dGVPcChPUDJfQlNSLCBkc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBic3JfbXIoaW50IG9m
ZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1f
Zm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfQlNSLCBkc3QsIGJhc2UsIG9mZnNldCk7CisgICAgfQor
CisjaWYgQ1BVKFg4Nl82NCkKKyAgICB2b2lkIGJzcnFfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0JT
UiwgZHN0LCBzcmMpOworICAgIH0KKworICAgIHZvaWQgYnNycV9tcihpbnQgb2Zmc2V0LCBSZWdp
c3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
dHdvQnl0ZU9wNjQoT1AyX0JTUiwgZHN0LCBiYXNlLCBvZmZzZXQpOworICAgIH0KKyNlbmRpZgor
CiAgICAgdm9pZCBzYXJsX2k4cihpbnQgaW1tLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAg
ICAgIGlmIChpbW0gPT0gMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAKaW5kZXggNTY4ZGNmMDM1ZjVmY2Y1ODZhODllOWRiMGYzNzIxNmI1YjYzNzYyYy4uMWU5OGI5
MDg3NWVmYzZkMGIzOWZlNmMwMDkwZmEzOTI4OTkxZmIxYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTE0NjMsNiArMTQ2MywxMSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBDbHo6IHsKKyAg
ICAgICAgICAgIGFwcGVuZFVuT3A8Q291bnRMZWFkaW5nWmVyb3MzMiwgQ291bnRMZWFkaW5nWmVy
b3M2NCwgQWlyOjpPb3BzPihtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFNxcnQ6IHsKICAgICAgICAgICAgIGFwcGVuZFVu
T3A8QWlyOjpPb3BzLCBBaXI6Ok9vcHMsIFNxcnREb3VibGU+KG1fdmFsdWUtPmNoaWxkKDApKTsK
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmlu
ZGV4IDc4M2ViODZkNzUxNGIwZmNmYjM1ZGVjYjEyYWNhMzdmY2I1ZmE4MjAuLmUxNWJiOGExNzEw
YjIyMTE1MDY1NzU0M2RlMjdjMjQ0YWYwMDJhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmNwcApAQCAtMTM3LDYgKzEzNyw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogICAgIGNhc2UgWlNocjoKICAgICAgICAgb3V0LnBy
aW50KCJaU2hyIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENsejoKKyAgICAgICAgb3V0
LnByaW50KCJDbHoiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3FydDoKICAgICAgICAg
b3V0LnByaW50KCJTcXJ0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmgKaW5kZXggM2YxYWZmZjVhMDBjMGE2ZTBmMzFlOWEwZjNmYmI2ZmE3ZTAxOGFhMy4u
ZjBmM2FiOGJjMGM5ZWVkNTNiYjc3NTgzOTI5MTlhZWNlODg4NTE3OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmgKQEAgLTgwLDYgKzgwLDcgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90
IHsKICAgICBTaGwsCiAgICAgU1NociwgLy8gQXJpdGhtZXRpYyBTaGlmdC4KICAgICBaU2hyLCAv
LyBMb2dpY2FsIFNoaWZ0LgorICAgIENseiwgLy8gQ291bnQgbGVhZGluZyB6ZXJvcy4KIAogICAg
IC8vIERvdWJsZSBtYXRoLgogICAgIFNxcnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxp
ZGF0ZS5jcHAKaW5kZXggNGFhYzA3NWM3YmZmZTAxZGIwZjY3YjU5NzlhYTg2MmRlYWEyMjA0OS4u
MThjMzdkMjA0MDE1OTNiY2U3NTVhNWM5ZjA1Mzg1MDlmYjY3MDllMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcApAQCAtMTkyLDYgKzE5MiwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gSW50MzIs
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSA9PSBJbnQ2NCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ2x6OgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1D
aGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBUcnVuYzoKICAg
ICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIs
ICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+dHlw
ZSgpID09IEludDY0LCAoIkF0ICIsICp2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuY3BwCmluZGV4IGFkNTQzOWRmNTQ0NGM4ZTRiNTgyMmJmMjQ5MjIyMjBhNTEzNjBiNWQuLmE2
ZGEzZDg5YmQwM2M0ODI5ZTg2ZTQwYjE4N2YzYzM3YTBiYjM4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5jcHAKQEAgLTMyNSw2ICszMjUsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZl
Y3RzKCkgY29uc3QKICAgICBjYXNlIFNobDoKICAgICBjYXNlIFNTaHI6CiAgICAgY2FzZSBaU2hy
OgorICAgIGNhc2UgQ2x6OgogICAgIGNhc2UgU3FydDoKICAgICBjYXNlIEJpdHdpc2VDYXN0Ogog
ICAgIGNhc2UgU0V4dDg6CkBAIC00MDYsNiArNDA3LDcgQEAgVmFsdWVLZXkgVmFsdWU6OmtleSgp
IGNvbnN0CiAgICAgY2FzZSBTRXh0MTY6CiAgICAgY2FzZSBTRXh0MzI6CiAgICAgY2FzZSBaRXh0
MzI6CisgICAgY2FzZSBDbHo6CiAgICAgY2FzZSBUcnVuYzoKICAgICBjYXNlIEZSb3VuZDoKICAg
ICBjYXNlIElUb0Q6CkBAIC00OTgsNiArNTAwLDcgQEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNv
ZGUgb3Bjb2RlLCBWYWx1ZSogZmlyc3RDaGlsZCwgVmFsdWUqIHNlY29uZENoaWxkKQogICAgIGNh
c2UgU2hsOgogICAgIGNhc2UgU1NocjoKICAgICBjYXNlIFpTaHI6CisgICAgY2FzZSBDbHo6CiAg
ICAgY2FzZSBTcXJ0OgogICAgIGNhc2UgQ2hlY2tBZGQ6CiAgICAgY2FzZSBDaGVja1N1YjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IDQw
NzJjYWFiNjYzMmViYWIxNjNmNGZkYmUzYjZjM2RhYjBjZjA1NjAuLjY3MjZhMzFmZGJiNzExNjBj
Nzg2MzI0YmJkNTAzYjZhY2RkMzhjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtMjE0LDYgKzIxNCwxNCBAQCBDb252ZXJ0SW50MzJU
b0RvdWJsZSBVOkcsIEQ6RgogQ29udmVydEludDY0VG9Eb3VibGUgVTpHLCBEOkYKICAgICBUbXAs
IFRtcAogCitDb3VudExlYWRpbmdaZXJvczMyIFU6RywgRDpHCisgICAgVG1wLCBUbXAKKyAgICBB
ZGRyLCBUbXAKKworQ291bnRMZWFkaW5nWmVyb3M2NCBVOkcsIEQ6RworICAgIFRtcCwgVG1wCisg
ICAgQWRkciwgVG1wCisKICMgTm90ZSB0aGF0IE1vdmUgb3BlcmF0ZXMgb3ZlciB0aGUgZnVsbCBy
ZWdpc3RlciBzaXplLCB3aGljaCBpcyBlaXRoZXIgMzItYml0IG9yIDY0LWJpdCBkZXBlbmRpbmcg
b24KICMgdGhlIHBsYXRmb3JtLiBJJ20gbm90IGVudGlyZWx5IHN1cmUgdGhhdCB0aGlzIGlzIGEg
Z29vZCB0aGluZzsgaXQgbWlnaHQgYmUgYmV0dGVyIHRvIGp1c3QgaGF2ZSBhCiAjIE1vdmU2NCBp
bnN0cnVjdGlvbi4gT1RPSCwgb3VyIE1hY3JvQXNzZW1ibGVycyBhbHJlYWR5IGhhdmUgdGhpcyBu
b3Rpb24gb2YgIm1vdmUoKSIgdGhhdCBiYXNpY2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAKaW5kZXggMmI4ZGU4OGU4MDM4NzY2NTdjMmE3MWUzMTE0OTMyNzRmMzc2ZGEwYy4uMzE1
NzU5ZDg3MjRhMGViMDViYjI1NjMzZTFlOGNhMDIwMDMwOGJmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAKQEAgLTE4ODUsNiArMTg4NSw2NCBAQCB2b2lkIHRlc3RaU2hyQXJnSW1t
MzIodWludDMyX3QgYSwgdWludDMyX3QgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVpbnQz
Ml90Pihwcm9jLCBhKSA9PSAoYSA+PiBiKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEludGVn
ZXJUeXBlPgorc3RhdGljIHVuc2lnbmVkIGNvdW50TGVhZGluZ1plcm8oSW50ZWdlclR5cGUgdmFs
dWUpCit7CisgICAgdW5zaWduZWQgYml0Q291bnQgPSBzaXplb2YoSW50ZWdlclR5cGUpICogODsK
KyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gYml0Q291bnQ7CisKKyAgICB1bnNpZ25l
ZCBjb3VudGVyID0gMDsKKyAgICB3aGlsZSAoIShzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUp
ICYgKDFsIDw8IChiaXRDb3VudCAtIDEpKSkpIHsKKyAgICAgICAgdmFsdWUgPDw9IDE7CisgICAg
ICAgICsrY291bnRlcjsKKyAgICB9CisgICAgcmV0dXJuIGNvdW50ZXI7Cit9CisKK3ZvaWQgdGVz
dENsekFyZzY0KGludDY0X3QgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7
Cit9CisKK3ZvaWQgdGVzdENsek1lbTY0KGludDY0X3QgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJv
YzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKKyAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENseiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOworfQorCit2
b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVy
byhhKSk7Cit9CisKK3ZvaWQgdGVzdENsek1lbTMyKGludDMyX3QgYSkKK3sKKyAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigp
LCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwor
fQorCiB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpA
QCAtNTMxNyw4ICs1Mzc1LDggQEAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8RG91YmxlT3BlcmFu
ZCwgOT4mIGRvdWJsZU9wZXJhbmRzKCkKICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxEb3Vi
bGVPcGVyYW5kLCA5PiBvcGVyYW5kcyA9IHt7CiAgICAgICAgIHsgIk1fUEkiLCBNX1BJIH0sCiAg
ICAgICAgIHsgIi1NX1BJIiwgLU1fUEkgfSwKLSAgICAgICAgeyAiMSIsIDEgfSwKLSAgICAgICAg
eyAiLTEiLCAtMSB9LAorICAgICAgICB7ICIxLiIsIDEgfSwKKyAgICAgICAgeyAiLTEuIiwgLTEg
fSwKICAgICAgICAgeyAiMCIsIDAgfSwKICAgICAgICAgeyAibmVnYXRpdmVaZXJvKCkiLCBuZWdh
dGl2ZVplcm8oKSB9LAogICAgICAgICB7ICJwb3NJbmZpbml0eSgpIiwgcG9zSW5maW5pdHkoKSB9
LApAQCAtNTgzNSw2ICs1ODkzLDExIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAg
ICBSVU4odGVzdFpTaHJBcmdJbW0zMigweGZmZmZmZmZmLCAxKSk7CiAgICAgUlVOKHRlc3RaU2hy
QXJnSW1tMzIoMHhmZmZmZmZmZiwgNjMpKTsKIAorICAgIFJVTl9VTkFSWSh0ZXN0Q2x6QXJnNjQs
IGludDY0T3BlcmFuZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RDbHpNZW02NCwgaW50NjRPcGVy
YW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVzdENsekFyZzMyLCBpbnQzMk9wZXJhbmRzKCkpOwor
ICAgIFJVTl9VTkFSWSh0ZXN0Q2x6TWVtMzIsIGludDY0T3BlcmFuZHMoKSk7CisKICAgICBSVU5f
VU5BUlkodGVzdFNxcnRBcmcsIGRvdWJsZU9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0
U3FydEltbSwgZG91YmxlT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RTcXJ0TWVtLCBk
b3VibGVPcGVyYW5kcygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQjNPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaApp
bmRleCBiOTRhNjNmNDAxOGQ4NmNlMmJhMDI5NGEzNzkxOTIwOWNmM2Q4NjAzLi5iN2VjMjdlNjVj
NTg1Njg4YjE0M2IzMDQwMTNlMmJjOWE1YTdlZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExCM091dHB1dC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogICAgIExWYWx1ZSBi
aXROb3QoTFZhbHVlKTsKIAogICAgIExWYWx1ZSBjZWlsNjQoTFZhbHVlIG9wZXJhbmQpIHsgQ1JB
U0goKTsgfQotICAgIExWYWx1ZSBjdGx6MzIoTFZhbHVlIHhPcGVyYW5kLCBMVmFsdWUgeU9wZXJh
bmQpIHsgQ1JBU0goKTsgfQorICAgIExWYWx1ZSBjdGx6MzIoTFZhbHVlIG9wZXJhbmQpIHsgcmV0
dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkNseiwgb3JpZ2lu
KCksIG9wZXJhbmQpOyB9CiAgICAgTFZhbHVlIGFkZFdpdGhPdmVyZmxvdzMyKExWYWx1ZSBsZWZ0
LCBMVmFsdWUgcmlnaHQpIHsgQ1JBU0goKTsgfQogICAgIExWYWx1ZSBzdWJXaXRoT3ZlcmZsb3cz
MihMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IENSQVNIKCk7IH0KICAgICBMVmFsdWUgbXVs
V2l0aE92ZXJmbG93MzIoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyBDUkFTSCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4
IDE4MjFkNjg2MGRiZGYxODQ4MjlmYzg5MThkZGY0ZDY5YjU3MDRlNGMuLmQxZGVmM2I2NTk3YWEy
ODM0MThmMzQwZDljNjZjNjMyNzJhNGJlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0xNzI4LDggKzE3MjgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgY29tcGlsZUFyaXRoQ2x6MzIoKQogICAgIHsKICAgICAgICAgTFZhbHVlIG9w
ZXJhbmQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgTFZhbHVlIGlzWmVy
b1VuZGVmID0gbV9vdXQuYm9vbGVhbkZhbHNlOwotICAgICAgICBzZXRJbnQzMihtX291dC5jdGx6
MzIob3BlcmFuZCwgaXNaZXJvVW5kZWYpKTsKKyAgICAgICAgc2V0SW50MzIobV9vdXQuY3RsejMy
KG9wZXJhbmQpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhNdWwoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggZDBiNDFjOTgxMThmMjNiOTk0NjE0
NWFiMDI1YjcwMmU2MjU0NWJhMi4uZGRhYmMwODg3ZGJiZTlhMzljODkzNmViNDYxNjQ0NGZiOWI3
MDJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC0xNDcsOSArMTQ3
LDkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlVHlwZSwgY2Vp
bDY0SW50cmluc2ljKCksIG9wZXJhbmQpOwogICAgIH0KLSAgICBMVmFsdWUgY3RsejMyKExWYWx1
ZSB4T3BlcmFuZCwgTFZhbHVlIHlPcGVyYW5kKQorICAgIExWYWx1ZSBjdGx6MzIoTFZhbHVlIG9w
ZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbChpbnQzMiwgY3RsejMySW50cmluc2lj
KCksIHhPcGVyYW5kLCB5T3BlcmFuZCk7CisgICAgICAgIHJldHVybiBjYWxsKGludDMyLCBjdGx6
MzJJbnRyaW5zaWMoKSwgb3BlcmFuZCwgYm9vbGVhbkZhbHNlKTsKICAgICB9CiAgICAgTFZhbHVl
IGFkZFdpdGhPdmVyZmxvdzMyKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCiAgICAgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>