<?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>115627</bug_id>
          
          <creation_ts>2013-05-06 02:18:21 -0700</creation_ts>
          <short_desc>[SH4] Misc bugfix and cleaning in sh4 base JIT</short_desc>
          <delta_ts>2013-05-06 13:27:44 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Julien Brianceau">jbriance</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>884876</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-05-06 02:18:21 -0700</bug_when>
    <thetext>Misc bugfix and cleaning in sh4 base JIT:
- prevent useless &quot;add #0, Rn&quot; and &quot;sub #0, Rn&quot; in base JIT
- fix wrong usage of R0 register in load32(RegisterID, int, RegisterId)
- add (base == r0) case in load8Signed and load16 functions
- get rid of load32(RegisterID r0, RegisterID src, RegisterID dst), load16(RegisterID r0, RegisterID src, RegisterID dest) and load16Signed(RegisterID r0, RegisterID src, RegisterID dest)
- remove extuw() implementation from MacroAssemblerSH4.h and use the one in SH4Assembler.h
- handle offset and (base == r0) cases in store8(RegisterID, BaseIndex) and store16(RegisterID, BaseIndex)
- correct branch range and save an opcode in replaceWithJump</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884885</commentid>
    <comment_count>1</comment_count>
      <attachid>200650</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-05-06 02:47:10 -0700</bug_when>
    <thetext>Created attachment 200650
Misc bugfix and cleaning in sh4 base JIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884886</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-06 02:48:26 -0700</bug_when>
    <thetext>Attachment 200650 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/assembler/MacroAssemblerSH4.h&apos;, u&apos;Source/JavaScriptCore/assembler/SH4Assembler.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/assembler/SH4Assembler.h:118:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 3 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>884889</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-05-06 02:55:36 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Source/JavaScriptCore/assembler/SH4Assembler.h:118:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]

All other 100+ entries in this enum are in capital letters, so I think I&apos;ll leave it as it is.


Also, I didn&apos;t see any regression when testing this patch with:
- Tools/Scripts/run-javascriptcore-tests
- Tools/Scripts/run-fast-jsc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885267</commentid>
    <comment_count>4</comment_count>
      <attachid>200650</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-05-06 13:00:04 -0700</bug_when>
    <thetext>Comment on attachment 200650
Misc bugfix and cleaning in sh4 base JIT

View in context: https://bugs.webkit.org/attachment.cgi?id=200650&amp;action=review

&gt; Source/JavaScriptCore/assembler/MacroAssemblerSH4.h:673
&gt; +        RegisterID scr = (dest == base) ? claimScratch() : dest;

This seems common enough that you may want to make a function to do it automagically - getScratch(dest, base) or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885284</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-05-06 13:19:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 200650 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=200650&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerSH4.h:673
&gt; &gt; +        RegisterID scr = (dest == base) ? claimScratch() : dest;
&gt; 
&gt; This seems common enough that you may want to make a function to do it automagically - getScratch(dest, base) or something?
Yes, but in this case I&apos;d also have to make an equivalent &quot;releaseScratch(scr, dest, base)&quot; function. This last one would be a little weird, don&apos;t you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885287</commentid>
    <comment_count>6</comment_count>
      <attachid>200650</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-06 13:27:42 -0700</bug_when>
    <thetext>Comment on attachment 200650
Misc bugfix and cleaning in sh4 base JIT

Clearing flags on attachment: 200650

Committed r149634: &lt;http://trac.webkit.org/changeset/149634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885288</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-06 13:27:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200650</attachid>
            <date>2013-05-06 02:47:10 -0700</date>
            <delta_ts>2013-05-06 13:27:42 -0700</delta_ts>
            <desc>Misc bugfix and cleaning in sh4 base JIT</desc>
            <filename>bug-115627.patch</filename>
            <type>text/plain</type>
            <size>15889</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ5NTg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTA1LTA2ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisg
ICAgICAgIE1pc2MgYnVnZml4IGFuZCBjbGVhbmluZyBpbiBzaDQgYmFzZSBKSVQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU2MjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZXQgcmlkIG9mIGxvYWRY
KFJlZ2lzdGVySUQgcjAsIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpIGZ1bmN0aW9u
cy4KKyAgICAgICAgUmVtb3ZlIG1pc3BsYWNlZCBleHR1dygpIGltcGxlbWVudGF0aW9uIGZyb20g
TWFjcm9Bc3NlbWJsZXJTSDQuCisgICAgICAgIEFkZCBtb3ZiUmVnTWVtcjAgYW5kIG1vdndSZWdN
ZW1yMCBmdW5jdGlvbnMgaW4gU0g0QXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyU0g0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjphZGQz
Mik6IFNraXAgb3BlcmF0aW9uIHdoZW4gZmlyc3Qgb3BlcmFuZCBpcyBhIHplcm8gaW1tZWRpYXRl
LgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6c3ViMzIpOiBTa2lwIG9wZXJhdGlv
biB3aGVuIGZpcnN0IG9wZXJhbmQgaXMgYSB6ZXJvIGltbWVkaWF0ZS4KKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJTSDQ6OmxvYWQzMik6IEZpeCB3cm9uZyB1c2FnZSBvZiByMCByZWdpc3Rl
ci4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OmxvYWQ4U2lnbmVkKTogSGFuZGxl
ICJiYXNlID09IHIwIiBjYXNlLgorICAgICAgICAoTWFjcm9Bc3NlbWJsZXJTSDQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6bG9hZDE2KTogSGFuZGxlICJiYXNlID09IHIwIiBj
YXNlLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6bG9hZDE2VW5hbGlnbmVkKTog
VXNlIGV4dHV3KCkgaW1wbGVtZW50YXRpb24gZnJvbSBTSDRBc3NlbWJsZXIuCisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyU0g0Ojpsb2FkMTZTaWduZWQpOiBDb3NtZXRpYyBjaGFuZ2UuCisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdG9yZTgpOiBGaXggdW5oYW5kbGVkIEJh
c2VJbmRleCBvZmZzZXQgYW5kIGhhbmRsZSAoYmFzZSA9PSByMCkgY2FzZS4KKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN0b3JlMTYpOiBGaXggdW5oYW5kbGVkIEJhc2VJbmRleCBv
ZmZzZXQgYW5kIGhhbmRsZSAoYmFzZSA9PSByMCkgY2FzZS4KKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJTSDQ6OnN0b3JlMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9TSDRBc3NlbWJsZXIu
aDoKKyAgICAgICAgKEpTQzo6U0g0QXNzZW1ibGVyOjptb3Z3UmVnTWVtcjApOgorICAgICAgICAo
U0g0QXNzZW1ibGVyKToKKyAgICAgICAgKEpTQzo6U0g0QXNzZW1ibGVyOjptb3ZiUmVnTWVtcjAp
OgorICAgICAgICAoSlNDOjpTSDRBc3NlbWJsZXI6OnBsYWNlQ29uc3RhbnRQb29sQmFycmllcik6
IENvc21ldGljIGNoYW5nZS4KKyAgICAgICAgKEpTQzo6U0g0QXNzZW1ibGVyOjptYXhKdW1wUmVw
bGFjZW1lbnRTaXplKToKKyAgICAgICAgKEpTQzo6U0g0QXNzZW1ibGVyOjpyZXBsYWNlV2l0aEp1
bXApOiBDb3JyZWN0IGJyYW5jaCByYW5nZSBhbmQgc2F2ZSBhbiBvcGNvZGUuCisgICAgICAgIChK
U0M6OlNINEFzc2VtYmxlcjo6cHJpbnRJbnN0cik6CisKIDIwMTMtMDUtMDMgIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEgcnVu
dGltZSBvcHRpb24gdG8gY29uc3RyYWluIHdoYXQgZnVuY3Rpb25zIGdldCBERkcgY29tcGlsZWQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyU0g0LmgJKHJldmlzaW9uIDE0OTU4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzEx
MCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKKyAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICBpZiAobV9hc3NlbWJsZXIuaXNJbW1lZGlhdGUoaW1tLm1fdmFs
dWUpKSB7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRsSW1tOHIoaW1tLm1fdmFsdWUsIGRl
c3QpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMwLDYgKzEzMyw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWRkMzIoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
KyAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAg
ICBSZWdpc3RlcklEIHNjciA9IGNsYWltU2NyYXRjaCgpOwogICAgICAgICBsb2FkMzIoYWRkcmVz
cywgc2NyKTsKICAgICAgICAgYWRkMzIoaW1tLCBzY3IpOwpAQCAtMzI1LDYgKzMzMSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgQWJzb2x1dGVBZGRyZXNz
IGFkZHJlc3MpCiAgICAgeworICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKQorICAgICAgICAgICAg
cmV0dXJuOworCiAgICAgICAgIFJlZ2lzdGVySUQgcmVzdWx0ID0gY2xhaW1TY3JhdGNoKCk7CiAg
ICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZyA9IGNsYWltU2NyYXRjaCgpOwogCkBAIC0zNDUs
NiArMzU0LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGQzMihUcnVzdGVkSW1tMzIgaW1tLCBB
YnNvbHV0ZUFkZHJlc3MgYWRkcmVzcykKICAgICB7CisgICAgICAgIGlmICghaW1tLm1fdmFsdWUp
CisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgUmVnaXN0ZXJJRCByZXN1bHQgPSBjbGFp
bVNjcmF0Y2goKTsKICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnID0gY2xhaW1TY3JhdGNo
KCk7CiAKQEAgLTM5Myw2ICs0MDUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN1YjMyKFRydXN0
ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CisgICAgICAgIGlmICghaW1tLm1f
dmFsdWUpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgaWYgKG1fYXNzZW1ibGVyLmlz
SW1tZWRpYXRlKC1pbW0ubV92YWx1ZSkpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGxJ
bW04cigtaW1tLm1fdmFsdWUsIGRlc3QpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjI5LDIw
ICs2NDQsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgaWYgKChkZXN0ID09IFNINFJlZ2lzdGVyczo6cjApICYmIChkZXN0ICE9IGJhc2UpKSB7
Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5sb2FkQ29uc3RhbnQoKG9mZnNldCksIGRlc3QpOwot
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92bFIwbXIoYmFzZSwgZGVzdCk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgUmVnaXN0ZXJJRCBzY3IgPSAoZGVzdCA9PSBi
YXNlKSA/IGNsYWltU2NyYXRjaCgpIDogZGVzdDsKIAotICAgICAgICBSZWdpc3RlcklEIHNjcjsK
LSAgICAgICAgaWYgKGRlc3QgPT0gYmFzZSkKLSAgICAgICAgICAgIHNjciA9IGNsYWltU2NyYXRj
aCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3IgPSBkZXN0OwogICAgICAgICBtX2Fz
c2VtYmxlci5sb2FkQ29uc3RhbnQob2Zmc2V0LCBzY3IpOwotICAgICAgICBtX2Fzc2VtYmxlci5h
ZGRsUmVnUmVnKGJhc2UsIHNjcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdmxNZW1SZWcoc2Ny
LCBkZXN0KTsKKyAgICAgICAgaWYgKGJhc2UgPT0gU0g0UmVnaXN0ZXJzOjpyMCkKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdmxSMG1yKHNjciwgZGVzdCk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkbFJlZ1JlZyhiYXNlLCBzY3IpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIubW92bE1lbVJlZyhzY3IsIGRlc3QpOworICAgICAgICB9CiAKICAgICAgICAg
aWYgKGRlc3QgPT0gYmFzZSkKICAgICAgICAgICAgIHJlbGVhc2VTY3JhdGNoKHNjcik7CkBAIC02
NjAsMTggKzY3MCwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAoYmFzZSAhPSBkZXN0KSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5s
b2FkQ29uc3RhbnQob2Zmc2V0LCBkZXN0KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGxS
ZWdSZWcoYmFzZSwgZGVzdCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZiTWVtUmVnKGRl
c3QsIGRlc3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIFJlZ2lz
dGVySUQgc2NyID0gKGRlc3QgPT0gYmFzZSkgPyBjbGFpbVNjcmF0Y2goKSA6IGRlc3Q7CiAKLSAg
ICAgICAgUmVnaXN0ZXJJRCBzY3IgPSBjbGFpbVNjcmF0Y2goKTsKICAgICAgICAgbV9hc3NlbWJs
ZXIubG9hZENvbnN0YW50KG9mZnNldCwgc2NyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkbFJl
Z1JlZyhiYXNlLCBzY3IpOwotICAgICAgICBtX2Fzc2VtYmxlci5tb3ZiTWVtUmVnKHNjciwgZGVz
dCk7Ci0gICAgICAgIHJlbGVhc2VTY3JhdGNoKHNjcik7CisgICAgICAgIGlmIChiYXNlID09IFNI
NFJlZ2lzdGVyczo6cjApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZiUjBtcihzY3IsIGRl
c3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGxSZWdSZWco
YmFzZSwgc2NyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmJNZW1SZWcoc2NyLCBkZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkZXN0ID09IGJhc2UpCisgICAgICAgICAgICBy
ZWxlYXNlU2NyYXRjaChzY3IpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDgoUmVnaXN0ZXJJRCBi
YXNlLCBpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGRlc3QpCkBAIC02ODAsMTIgKzY5MCw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuZXh0dWIoZGVzdCwgZGVzdCk7CiAgICAgfQogCi0g
ICAgdm9pZCBsb2FkMzIoUmVnaXN0ZXJJRCByMCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
ZHN0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKHIwID09IFNINFJlZ2lzdGVyczo6cjApOwotICAg
ICAgICBtX2Fzc2VtYmxlci5tb3ZsUjBtcihzcmMsIGRzdCk7Ci0gICAgfQotCiAgICAgdm9pZCBs
b2FkMzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubW92bE1lbVJlZyhzcmMsIGRzdCk7CkBAIC02OTUsMzUgKzY5OSwzMyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0KSB7CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5tb3Z3TWVtUmVnKGFkZHJlc3MuYmFzZSwgZGVzdCk7Ci0gICAgICAgICAgICBl
eHR1dyhkZXN0LCBkZXN0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmV4dHV3KGRlc3QsIGRl
c3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKChhZGRy
ZXNzLm9mZnNldCA+IDApICYmIChhZGRyZXNzLm9mZnNldCA8PSAzMCkgJiYgKGRlc3QgPT0gU0g0
UmVnaXN0ZXJzOjpyMCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdndNZW1SZWcoYWRk
cmVzcy5vZmZzZXQgPj4gMSwgYWRkcmVzcy5iYXNlLCBkZXN0KTsKLSAgICAgICAgICAgIGV4dHV3
KGRlc3QsIGRlc3QpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuZXh0dXcoZGVzdCwgZGVzdCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYWRkcmVzcy5i
YXNlICE9IGRlc3QpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxvYWRDb25zdGFudChhZGRy
ZXNzLm9mZnNldCwgZGVzdCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRsUmVnUmVnKGFk
ZHJlc3MuYmFzZSwgZGVzdCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Z3TWVtUmVnKGRl
c3QsIGRlc3QpOwotICAgICAgICAgICAgZXh0dXcoZGVzdCwgZGVzdCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgUmVnaXN0ZXJJRCBzY3IgPSAoZGVzdCA9PSBhZGRy
ZXNzLmJhc2UpID8gY2xhaW1TY3JhdGNoKCkgOiBkZXN0OwogCi0gICAgICAgIFJlZ2lzdGVySUQg
c2NyID0gY2xhaW1TY3JhdGNoKCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxvYWRDb25zdGFudChh
ZGRyZXNzLm9mZnNldCwgc2NyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkbFJlZ1JlZyhhZGRy
ZXNzLmJhc2UsIHNjcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdndNZW1SZWcoc2NyLCBkZXN0
KTsKLSAgICAgICAgZXh0dXcoZGVzdCwgZGVzdCk7Ci0gICAgICAgIHJlbGVhc2VTY3JhdGNoKHNj
cik7CisgICAgICAgIGlmIChhZGRyZXNzLmJhc2UgPT0gU0g0UmVnaXN0ZXJzOjpyMCkKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdndSMG1yKHNjciwgZGVzdCk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkbFJlZ1JlZyhhZGRyZXNzLmJhc2UsIHNjcik7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Z3TWVtUmVnKHNjciwgZGVzdCk7CisgICAgICAgIH0K
KyAgICAgICAgbV9hc3NlbWJsZXIuZXh0dXcoZGVzdCwgZGVzdCk7CisKKyAgICAgICAgaWYgKGRl
c3QgPT0gYWRkcmVzcy5iYXNlKQorICAgICAgICAgICAgcmVsZWFzZVNjcmF0Y2goc2NyKTsKICAg
ICB9CiAKICAgICB2b2lkIGxvYWQxNlVuYWxpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKLQogICAgICAgICBSZWdpc3RlcklEIHNjciA9IGNsYWltU2NyYXRj
aCgpOwogICAgICAgICBSZWdpc3RlcklEIHNjcjEgPSBjbGFpbVNjcmF0Y2goKTsKIApAQCAtNzQ3
LDcgKzc0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWQxNihSZWdpc3RlcklEIHNyYywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92d01lbVJlZyhzcmMs
IGRlc3QpOwotICAgICAgICBleHR1dyhkZXN0LCBkZXN0KTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
ZXh0dXcoZGVzdCwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBsb2FkMTZTaWduZWQoUmVnaXN0
ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTc1NSwzNiArNzU3LDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIubW92d01lbVJlZyhzcmMsIGRlc3QpOwogICAgIH0KIAotICAg
IHZvaWQgbG9hZDE2KFJlZ2lzdGVySUQgcjAsIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QpCi0gICAgewotICAgICAgICBBU1NFUlQocjAgPT0gU0g0UmVnaXN0ZXJzOjpyMCk7Ci0gICAg
ICAgIG1fYXNzZW1ibGVyLm1vdndSMG1yKHNyYywgZGVzdCk7Ci0gICAgICAgIGV4dHV3KGRlc3Qs
IGRlc3QpOwotICAgIH0KLQotICAgIHZvaWQgbG9hZDE2U2lnbmVkKFJlZ2lzdGVySUQgcjAsIFJl
Z2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBBU1NFUlQocjAg
PT0gU0g0UmVnaXN0ZXJzOjpyMCk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdndSMG1yKHNyYywg
ZGVzdCk7Ci0gICAgfQotCiAgICAgdm9pZCBsb2FkMTYoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIFJlZ2lzdGVySUQgc2NyID0gY2xhaW1TY3JhdGNo
KCk7Ci0KLSAgICAgICAgbW92ZShhZGRyZXNzLmluZGV4LCBzY3IpOwotICAgICAgICBsc2hpZnQz
MihUcnVzdGVkSW1tMzIoYWRkcmVzcy5zY2FsZSksIHNjcik7Ci0KLSAgICAgICAgaWYgKGFkZHJl
c3Mub2Zmc2V0KQotICAgICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0
KSwgc2NyKTsKLSAgICAgICAgaWYgKGFkZHJlc3MuYmFzZSA9PSBTSDRSZWdpc3RlcnM6OnIwKQot
ICAgICAgICAgICAgbG9hZDE2KGFkZHJlc3MuYmFzZSwgc2NyLCBkZXN0KTsKLSAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICBhZGQzMihhZGRyZXNzLmJhc2UsIHNjcik7Ci0gICAgICAgICAgICBs
b2FkMTYoc2NyLCBkZXN0KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlbGVhc2VTY3JhdGNoKHNj
cik7CisgICAgICAgIGxvYWQxNlNpZ25lZChhZGRyZXNzLCBkZXN0KTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuZXh0dXcoZGVzdCwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBsb2FkMTZTaWduZWQo
QmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTc5Niw4ICs3NzIsOSBAQCBw
dWJsaWM6CiAKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0KQogICAgICAgICAgICAgYWRkMzIo
VHJ1c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0KSwgc2NyKTsKKwogICAgICAgICBpZiAoYWRkcmVz
cy5iYXNlID09IFNINFJlZ2lzdGVyczo6cjApCi0gICAgICAgICAgICBsb2FkMTZTaWduZWQoYWRk
cmVzcy5iYXNlLCBzY3IsIGRlc3QpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92d1IwbXIo
c2NyLCBkZXN0KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBhZGQzMihhZGRyZXNzLmJh
c2UsIHNjcik7CiAgICAgICAgICAgICBsb2FkMTZTaWduZWQoc2NyLCBkZXN0KTsKQEAgLTgxMiw5
ICs3ODksMTQgQEAgcHVibGljOgogCiAgICAgICAgIG1vdmUoYWRkcmVzcy5pbmRleCwgc2NyKTsK
ICAgICAgICAgbHNoaWZ0MzIoVHJ1c3RlZEltbTMyKGFkZHJlc3Muc2NhbGUpLCBzY3IpOwotICAg
ICAgICBhZGQzMihhZGRyZXNzLmJhc2UsIHNjcik7CisgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0z
MihhZGRyZXNzLm9mZnNldCksIHNjcik7CiAKLSAgICAgICAgbV9hc3NlbWJsZXIubW92YlJlZ01l
bShzcmMsIHNjcik7CisgICAgICAgIGlmIChhZGRyZXNzLmJhc2UgPT0gU0g0UmVnaXN0ZXJzOjpy
MCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmJSZWdNZW1yMChzcmMsIHNjcik7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgYWRkMzIoYWRkcmVzcy5iYXNlLCBzY3IpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubW92YlJlZ01lbShzcmMsIHNjcik7CisgICAgICAgIH0KIAogICAg
ICAgICByZWxlYXNlU2NyYXRjaChzY3IpOwogICAgIH0KQEAgLTgyNSw0NiArODA3LDM5IEBAIHB1
YmxpYzoKIAogICAgICAgICBtb3ZlKGFkZHJlc3MuaW5kZXgsIHNjcik7CiAgICAgICAgIGxzaGlm
dDMyKFRydXN0ZWRJbW0zMihhZGRyZXNzLnNjYWxlKSwgc2NyKTsKLSAgICAgICAgYWRkMzIoYWRk
cmVzcy5iYXNlLCBzY3IpOworICAgICAgICBhZGQzMihUcnVzdGVkSW1tMzIoYWRkcmVzcy5vZmZz
ZXQpLCBzY3IpOwogCi0gICAgICAgIG1fYXNzZW1ibGVyLm1vdndSZWdNZW0oc3JjLCBzY3IpOwor
ICAgICAgICBpZiAoYWRkcmVzcy5iYXNlID09IFNINFJlZ2lzdGVyczo6cjApCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5tb3Z3UmVnTWVtcjAoc3JjLCBzY3IpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGFkZDMyKGFkZHJlc3MuYmFzZSwgc2NyKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdndSZWdNZW0oc3JjLCBzY3IpOworICAgICAgICB9CiAKICAgICAgICAgcmVsZWFzZVNj
cmF0Y2goc2NyKTsKICAgICB9CiAKICAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgUmVnaXN0ZXJJRCBzY3IgPSBj
bGFpbVNjcmF0Y2goKTsKLSAgICAgICAgc3RvcmUzMihzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRy
ZXNzLmJhc2UsIHNjcik7Ci0gICAgICAgIHJlbGVhc2VTY3JhdGNoKHNjcik7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJh
c2UsIFJlZ2lzdGVySUQgc2NyKQotICAgIHsKLSAgICAgICAgaWYgKCFvZmZzZXQpIHsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdmxSZWdNZW0oc3JjLCBiYXNlKTsKKyAgICAgICAgaWYgKCFh
ZGRyZXNzLm9mZnNldCkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92bFJlZ01lbShzcmMs
IGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoKG9mZnNldCA+PSAwKSAmJiAob2Zmc2V0IDwgNjQpKSB7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5tb3ZsUmVnTWVtKHNyYywgb2Zmc2V0ID4+IDIsIGJhc2UpOworICAgICAgICBpZiAo
KGFkZHJlc3Mub2Zmc2V0ID49IDApICYmIChhZGRyZXNzLm9mZnNldCA8IDY0KSkgeworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubW92bFJlZ01lbShzcmMsIGFkZHJlc3Mub2Zmc2V0ID4+IDIsIGFk
ZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBt
X2Fzc2VtYmxlci5sb2FkQ29uc3RhbnQob2Zmc2V0LCBzY3IpOwotICAgICAgICBpZiAoc2NyID09
IFNINFJlZ2lzdGVyczo6cjApIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxSZWdNZW1y
MChzcmMsIGJhc2UpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBSZWdpc3RlcklEIHNj
ciA9IGNsYWltU2NyYXRjaCgpOworICAgICAgICBtX2Fzc2VtYmxlci5sb2FkQ29uc3RhbnQoYWRk
cmVzcy5vZmZzZXQsIHNjcik7CisgICAgICAgIGlmIChhZGRyZXNzLmJhc2UgPT0gU0g0UmVnaXN0
ZXJzOjpyMCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxSZWdNZW1yMChzcmMsIHNjcik7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkbFJlZ1JlZyhhZGRy
ZXNzLmJhc2UsIHNjcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsUmVnTWVtKHNyYywg
c2NyKTsKICAgICAgICAgfQotCi0gICAgICAgIG1fYXNzZW1ibGVyLmFkZGxSZWdSZWcoYmFzZSwg
c2NyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubW92bFJlZ01lbShzcmMsIHNjcik7Ci0gICAgfQot
Ci0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIG9mZnNldCwgUmVn
aXN0ZXJJRCBiYXNlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9mZnNldCA9PSBTSDRSZWdpc3Rl
cnM6OnIwKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubW92bFJlZ01lbXIwKHNyYywgYmFzZSk7Cisg
ICAgICAgIHJlbGVhc2VTY3JhdGNoKHNjcik7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTMyKFJl
Z2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKQEAgLTg3NSwxMSArODUwLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgc2NyID0gY2xhaW1TY3JhdGNoKCk7Ci0g
ICAgICAgIFJlZ2lzdGVySUQgc2NyMSA9IGNsYWltU2NyYXRjaCgpOwogICAgICAgICBtX2Fzc2Vt
Ymxlci5sb2FkQ29uc3RhbnQoaW1tLm1fdmFsdWUsIHNjcik7Ci0gICAgICAgIHN0b3JlMzIoc2Ny
LCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBzY3IxKTsKKyAgICAgICAgc3RvcmUzMihz
Y3IsIGFkZHJlc3MpOwogICAgICAgICByZWxlYXNlU2NyYXRjaChzY3IpOwotICAgICAgICByZWxl
YXNlU2NyYXRjaChzY3IxKTsKICAgICB9CiAKICAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBz
cmMsIEJhc2VJbmRleCBhZGRyZXNzKQpAQCAtMTU3NSwxMSArMTU0OCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIubG9hZENvbnN0YW50KGltbS5hc0ludHB0cigpLCBkZXN0KTsKICAg
ICB9CiAKLSAgICB2b2lkIGV4dHV3KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKLSAg
ICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmV4dHV3KHNyYywgZHN0KTsKLSAgICB9Ci0KICAgICB2
b2lkIGNvbXBhcmUzMihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwg
UmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3Nl
bWJsZXIuY21wbFJlZ1JlZyhyaWdodCwgbGVmdCwgU0g0Q29uZGl0aW9uKGNvbmQpKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaAkocmV2
aXNpb24gMTQ5NTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9TSDRBc3Nl
bWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw3IEBAIGVudW0gewogICAgIE1P
VkxfUkVBRF9PRkZQQ19PUENPREUgPSAweGQwMDAsCiAgICAgTU9WTF9SRUFEX09GRlJNX09QQ09E
RSA9IDB4NTAwMCwKICAgICBNT1ZXX1dSSVRFX1JOX09QQ09ERSA9IDB4MjAwMSwKKyAgICBNT1ZX
X1dSSVRFX1IwUk5fT1BDT0RFID0gMHgwMDA1LAogICAgIE1PVldfUkVBRF9STV9PUENPREUgPSAw
eDYwMDEsCiAgICAgTU9WV19SRUFEX1IwUk1fT1BDT0RFID0gMHgwMDBkLAogICAgIE1PVldfUkVB
RF9PRkZSTV9PUENPREUgPSAweDg1MDAsCkBAIC0xMDYwLDYgKzEwNjEsMTIgQEAgcHVibGljOgog
ICAgICAgICBvbmVTaG9ydE9wKG9wYyk7CiAgICAgfQogCisgICAgdm9pZCBtb3Z3UmVnTWVtcjAo
UmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgdWludDE2X3Qg
b3BjID0gZ2V0T3Bjb2RlR3JvdXAxKE1PVldfV1JJVEVfUjBSTl9PUENPREUsIGRzdCwgc3JjKTsK
KyAgICAgICAgb25lU2hvcnRPcChvcGMpOworICAgIH0KKwogICAgIHZvaWQgbW92bFJlZ01lbShS
ZWdpc3RlcklEIHNyYywgaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKChvZmZzZXQgPD0gMTUpICYmIChvZmZzZXQgPj0gMCkpOwpAQCAtMTEyNiw2ICsx
MTMzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgb25lU2hvcnRPcChvcGMpOwogICAgIH0KIAorICAg
IHZvaWQgbW92YlJlZ01lbXIwKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7
CisgICAgICAgIHVpbnQxNl90IG9wYyA9IGdldE9wY29kZUdyb3VwMShNT1ZCX1dSSVRFX1IwUk5f
T1BDT0RFLCBkc3QsIHNyYyk7CisgICAgICAgIG9uZVNob3J0T3Aob3BjKTsKKyAgICB9CisKICAg
ICB2b2lkIG1vdmxNZW1SZWcoUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGRzdCkKICAgICB7
CiAgICAgICAgIHVpbnQxNl90IG9wYyA9IGdldE9wY29kZUdyb3VwMShNT1ZMX1JFQURfUk1fT1BD
T0RFLCBkc3QsIGJhc2UpOwpAQCAtMTM4MCw3ICsxMzkzLDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIFNINEJ1ZmZlcjo6VHdvU2hvcnRzIHBsYWNlQ29uc3RhbnRQb29sQmFycmllcihpbnQgb2Zm
c2V0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKCgob2Zmc2V0ID4+IDEpIDw9MjA0NykgJiYgKChv
ZmZzZXQgPj4gMSkgPj0gLTIwNDgpKTsKKyAgICAgICAgQVNTRVJUKCgob2Zmc2V0ID4+IDEpIDw9
IDIwNDcpICYmICgob2Zmc2V0ID4+IDEpID49IC0yMDQ4KSk7CiAKICAgICAgICAgU0g0QnVmZmVy
OjpUd29TaG9ydHMgbV9iYXJyaWVyOwogICAgICAgICBtX2JhcnJpZXIuaGlnaCA9IChCUkFfT1BD
T0RFIHwgKG9mZnNldCA+PiAxKSk7CkBAIC0xNDc0LDcgKzE0ODcsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgcHRyZGlmZl90IG1heEp1bXBSZXBsYWNlbWVudFNpemUoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHNpemVvZihTSDRXb3JkKSAqIDc7CisgICAgICAgIHJldHVybiBzaXplb2YoU0g0
V29yZCkgKiA2OwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHJlcGxhY2VXaXRoSnVtcCh2b2lk
ICppbnN0cnVjdGlvblN0YXJ0LCB2b2lkICp0bykKQEAgLTE0ODMsMjAgKzE0OTYsMjAgQEAgcHVi
bGljOgogICAgICAgICBpbnRwdHJfdCBkaWZmZXJlbmNlID0gcmVpbnRlcnByZXRfY2FzdDxpbnRw
dHJfdD4odG8pIC0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc3RydWN0aW9uKSArIDIg
KiBzaXplb2YoU0g0V29yZCkpOwogICAgICAgICBpbnQgbmJpbnN0ID0gMDsKIAotICAgICAgICBp
ZiAoKGRpZmZlcmVuY2UgPj0gLTIwNDgpICYmIChkaWZmZXJlbmNlIDw9IDIwNDcpKSB7CisgICAg
ICAgIGlmICgoZGlmZmVyZW5jZSA+PSAtNDA5NikgJiYgKGRpZmZlcmVuY2UgPD0gNDA5NCkpIHsK
ICAgICAgICAgICAgIGluc3RydWN0aW9uWzBdID0gZ2V0T3Bjb2RlR3JvdXA2KEJSQV9PUENPREUs
IGRpZmZlcmVuY2UgPj4gMSk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvblsxXSA9IE5PUF9PUENP
REU7CiAgICAgICAgICAgICBjYWNoZUZsdXNoKGluc3RydWN0aW9uLCBzaXplb2YoU0g0V29yZCkg
KiAyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChyZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkPihpbnN0cnVjdGlvbikgJiAzKQotICAgICAgICAgICAgaW5z
dHJ1Y3Rpb25bbmJpbnN0KytdID0gTk9QX09QQ09ERTsKLQogICAgICAgICBpbnN0cnVjdGlvbltu
Ymluc3QrK10gPSBnZXRPcGNvZGVHcm91cDMoTU9WTF9SRUFEX09GRlBDX09QQ09ERSwgc2NyYXRj
aFJlZzIsIDEpOwogICAgICAgICBpbnN0cnVjdGlvbltuYmluc3QrK10gPSBnZXRPcGNvZGVHcm91
cDIoSk1QX09QQ09ERSwgc2NyYXRjaFJlZzIpOwogICAgICAgICBpbnN0cnVjdGlvbltuYmluc3Qr
K10gPSBOT1BfT1BDT0RFOwotICAgICAgICBpbnN0cnVjdGlvbltuYmluc3QrK10gPSBOT1BfT1BD
T0RFOworCisgICAgICAgIGlmICghKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGluc3RydWN0
aW9uKSAmIDMpKQorICAgICAgICAgICAgaW5zdHJ1Y3Rpb25bbmJpbnN0KytdID0gTk9QX09QQ09E
RTsKKwogICAgICAgICBpbnN0cnVjdGlvbltuYmluc3QrK10gPSByZWludGVycHJldF9jYXN0PHVu
c2lnbmVkPih0bykgJiAweGZmZmY7CiAgICAgICAgIGluc3RydWN0aW9uW25iaW5zdCsrXSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KHRvKSA+PiAxNjsKICAgICAgICAgY2FjaGVGbHVzaChp
bnN0cnVjdGlvbiwgc2l6ZW9mKFNINFdvcmQpICogbmJpbnN0KTsKQEAgLTE5NDgsNiArMTk2MSw5
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBNT1ZXX1JFQURfUjBSTV9PUENPREU6CiAgICAgICAg
ICAgICBmb3JtYXQgPSAiICAgIE1PVi5XIEAoUjAsIFIlZCksIFIlZFxuIjsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE1PVldfV1JJVEVfUjBSTl9PUENPREU6CisgICAgICAgICAg
ICBmb3JtYXQgPSAiICAgIE1PVi5XIFIlZCwgQChSMCwgUiVkKVxuIjsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEVYVFVCX09QQ09ERToKICAgICAgICAgICAgIGZvcm1hdCA9ICIg
ICAgRVhUVS5CIFIlZCwgUiVkXG4iOwogICAgICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>