<?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>50603</bug_id>
          
          <creation_ts>2010-12-06 17:30:12 -0800</creation_ts>
          <short_desc>Fix compilation of core web audio files on Windows</short_desc>
          <delta_ts>2010-12-07 13:45:25 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>317964</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-06 17:30:12 -0800</bug_when>
    <thetext>While compiling the core files for the web audio API and implementation on Windows, several compilation issues were encountered, mostly related to math constants and functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317974</commentid>
    <comment_count>1</comment_count>
      <attachid>75764</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-06 17:44:20 -0800</bug_when>
    <thetext>Created attachment 75764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317977</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-12-06 17:54:45 -0800</bug_when>
    <thetext>Hi Ken, this looks fine to me.  I agree that pulling out the methods from AudioParam.h to AudioParam.cpp is the right thing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317978</commentid>
    <comment_count>3</comment_count>
      <attachid>75765</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-06 17:58:12 -0800</bug_when>
    <thetext>Created attachment 75765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317979</commentid>
    <comment_count>4</comment_count>
      <attachid>75765</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-06 17:59:24 -0800</bug_when>
    <thetext>Comment on attachment 75765
Patch

Recalculated M_LN2 and removed name of argument to AudioParam::setValue in header based on offline feedback from Dave Levin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318003</commentid>
    <comment_count>5</comment_count>
      <attachid>75765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-06 18:35:38 -0800</bug_when>
    <thetext>Comment on attachment 75765
Patch

Rejecting patch 75765 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
rs.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/CallData.o /Projects/CommitQueue/JavaScriptCore/runtime/CallData.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/BooleanPrototype.o /Projects/CommitQueue/JavaScriptCore/runtime/BooleanPrototype.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(18 failures)


Full output: http://queues.webkit.org/results/6751092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318004</commentid>
    <comment_count>6</comment_count>
      <attachid>75765</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-06 18:39:05 -0800</bug_when>
    <thetext>Comment on attachment 75765
Patch

That commit queue failure looks like a configuration problem on the machine. Retrying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318044</commentid>
    <comment_count>7</comment_count>
      <attachid>75765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-06 20:48:56 -0800</bug_when>
    <thetext>Comment on attachment 75765
Patch

Rejecting patch 75765 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 1
ERROR: Working directory has local commits, pass --force-clean to continue.

Full output: http://queues.webkit.org/results/6802070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318410</commentid>
    <comment_count>8</comment_count>
      <attachid>75765</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-07 13:39:06 -0800</bug_when>
    <thetext>Comment on attachment 75765
Patch

It looks like the commit queue is stuck. I&apos;m going to land this by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318415</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-07 13:45:25 -0800</bug_when>
    <thetext>Committed r73458: &lt;http://trac.webkit.org/changeset/73458&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75764</attachid>
            <date>2010-12-06 17:44:20 -0800</date>
            <delta_ts>2010-12-06 17:58:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50603-20101206174419.patch</filename>
            <type>text/plain</type>
            <size>18765</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDczNDIwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTItMDYgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBjb21waWxhdGlvbiBvZiBjb3JlIHdlYiBhdWRpbyBmaWxl
cyBvbiBXaW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MDYwMworCisgICAgICAgIEFkZGVkIGxvZzIgZGVmaW5pdGlvbiB0byBNYXRoRXh0cmFz
Lmggb24gV2luZG93cyBwbGF0Zm9ybS4KKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6Cisg
ICAgICAgIChsb2cyKToKKwogMjAxMC0xMi0wNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvd3RmL01hdGhFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS93dGYvTWF0aEV4dHJhcy5oCShyZXZpc2lvbiA3MzQxMikKKysrIEphdmFTY3JpcHRDb3Jl
L3d0Zi9NYXRoRXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMTQgQEAgaW5s
aW5lIGZsb2F0IG5leHRhZnRlcmYoZmxvYXQgeCwgZmxvYXQgeQogaW5saW5lIGRvdWJsZSBjb3B5
c2lnbihkb3VibGUgeCwgZG91YmxlIHkpIHsgcmV0dXJuIF9jb3B5c2lnbih4LCB5KTsgfQogaW5s
aW5lIGludCBpc2Zpbml0ZShkb3VibGUgeCkgeyByZXR1cm4gX2Zpbml0ZSh4KTsgfQogCisvLyBN
U1ZDJ3MgbWF0aC5oIGRvZXMgbm90IGN1cnJlbnRseSBzdXBwbHkgbG9nMi4KK2lubGluZSBib29s
IGxvZzIoZG91YmxlIG51bSkKK3sKKyAgICAvLyBJbmxpbmUgTV9MTjIgZnJvbSBNU1ZDJ3MgbWF0
aC5oIHRvIGF2b2lkIGV4cG9zaW5nIGl0IHRvIGZpbGVzCisgICAgLy8gaW5jbHVkaW5nIHRoaXMg
aGVhZGVyLgorICAgIHJldHVybiBsb2cobnVtKSAvIDAuNjkzMTQ3MTgwNTU5OTQ1MzA5NDE3Owor
fQorCiAvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBXaW4sIHdoZXJlIGF0YW4yKCstaW5maW5pdHks
ICstaW5maW5pdHkpIHlpZWxkcyBOYU4gaW5zdGVhZCBvZiBzcGVjaWZpYyB2YWx1ZXMuCiBpbmxp
bmUgZG91YmxlIHd0Zl9hdGFuMihkb3VibGUgeCwgZG91YmxlIHkpCiB7CkluZGV4OiBXZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzM0
MjApCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEwLTEyLTA2ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY29tcGlsYXRpb24g
b2YgY29yZSB3ZWIgYXVkaW8gZmlsZXMgb24gV2luZG93cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MDMKKworICAgICAgICBDaGFuZ2VkIGEgZmV3
IGNvbnN0cnVjdHMgdXNpbmcgQzk5IGZlYXR1cmVzIG9mIG1hdGguaCB0byB1c2UKKyAgICAgICAg
d3RmL01hdGhFeHRyYXMuaCBpbnN0ZWFkLiBDaGFuZ2VkIGlubGluZSBkZWZpbml0aW9ucyBvZiBh
IGNvdXBsZSBvZgorICAgICAgICBjb25zdCBzdGF0aWMgZG91YmxlcyBpbiBjbGFzc2VzIHRvIG91
dC1vZi1saW5lLiBCdWlsdCBDaHJvbWUgd2l0aAorICAgICAgICB3ZWIgYXVkaW8gZW5hYmxlZCBv
biBXaW5kb3dzIGFuZCBNYWMgT1MgWCB0byB0ZXN0IHRoZXNlIGNoYW5nZXMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVz
YW1wbGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QmlxdWFkOjpzZXRMb3dwYXNzUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpcXVhZDo6c2V0SGlnaHBhc3NQYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkOjpz
ZXRMb3dTaGVsZlBhcmFtcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQ29uZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb25lRWZmZWN0OjpnYWluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9FcXVhbFBvd2VyUGFubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93ZXJQ
YW5uZXI6OnBhbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmludGVycG9sYXRlRnJlcXVlbmN5Q29tcG9uZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZXh0cmFjdEF2ZXJhZ2VHcm91cERlbGF5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjphZGRDb25zdGFudEdyb3VwRGVsYXkpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL0hSVEZQYW5uZXIuY3BwOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJl
YWRGcm9tQnVmZmVyV2l0aEdyYWluRW52ZWxvcGUpOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
UGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OmdldEF6
aW11dGhFbGV2YXRpb24pOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKEF1ZGlvUGFyYW06OnNldFZhbHVlKToKKyAgICAgICAgKEF1ZGlvUGFyYW06
OnNtb290aCk6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS5oOgorICAgICAgICAqIHdl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwOgorCiAyMDEwLTEyLTA2ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
Z3lwaQkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtNDQzNSw2ICs0NDM1LDcgQEAKICAgICAgICAgICAgICd3ZWJhdWRpby9BdWRpb05v
ZGVPdXRwdXQuaCcsCiAgICAgICAgICAgICAnd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmgnLAog
ICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAnLAorICAgICAgICAgICAg
J3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwJywKICAgICAgICAgICAgICd3ZWJhdWRpby9BdWRpb1Bh
cmFtLmgnLAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmgnLAog
ICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcCcsCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcAkocmV2aXNpb24gNzM0MTIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRl
IDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0JpcXVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1
YWQuY3BwCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSArMzMsOCBAQAogI2luY2x1ZGUgIkJpcXVhZC5o
IgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPGZsb2F0Lmg+Ci0jaW5jbHVkZSA8
bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
IAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxBY2NlbGVyYXRlL0FjY2VsZXJhdGUuaD4KQEAg
LTE5Nyw3ICsxOTYsNyBAQCB2b2lkIEJpcXVhZDo6c2V0TG93cGFzc1BhcmFtcyhkb3VibGUgY3V0
CiAgICAgZG91YmxlIGQgPSBzcXJ0KCg0LjAgLSBzcXJ0KDE2LjAgLSAxNi4wIC8gKGcgKiBnKSkp
IC8gMi4wKTsKIAogICAgIC8vIENvbXB1dGUgYmlxdWFkIGNvZWZmaWNpZW50cyBmb3IgbG9wYXNz
IGZpbHRlcgotICAgIGRvdWJsZSB0aGV0YSA9IE1fUEkgKiBjdXRvZmY7CisgICAgZG91YmxlIHRo
ZXRhID0gcGlEb3VibGUgKiBjdXRvZmY7CiAgICAgZG91YmxlIHNuID0gMC41ICogZCAqIHNpbih0
aGV0YSk7CiAgICAgZG91YmxlIGJldGEgPSAwLjUgKiAoMS4wIC0gc24pIC8gKDEuMCArIHNuKTsK
ICAgICBkb3VibGUgZ2FtbWEgPSAoMC41ICsgYmV0YSkgKiBjb3ModGhldGEpOwpAQCAtMjE4LDcg
KzIxNyw3IEBAIHZvaWQgQmlxdWFkOjpzZXRIaWdocGFzc1BhcmFtcyhkb3VibGUgY3UKICAgICBk
b3VibGUgZCA9IHNxcnQoKDQuMCAtIHNxcnQoMTYuMCAtIDE2LjAgLyAoZyAqIGcpKSkgLyAyLjAp
OwogCiAgICAgLy8gQ29tcHV0ZSBiaXF1YWQgY29lZmZpY2llbnRzIGZvciBoaWdocGFzcyBmaWx0
ZXIKLSAgICBkb3VibGUgdGhldGEgPSBNX1BJICogY3V0b2ZmOworICAgIGRvdWJsZSB0aGV0YSA9
IHBpRG91YmxlICogY3V0b2ZmOwogICAgIGRvdWJsZSBzbiA9IDAuNSAqIGQgKiBzaW4odGhldGEp
OwogICAgIGRvdWJsZSBiZXRhID0gMC41ICogKDEuMCAtIHNuKSAvICgxLjAgKyBzbik7CiAgICAg
ZG91YmxlIGdhbW1hID0gKDAuNSArIGJldGEpICogY29zKHRoZXRhKTsKQEAgLTIzMyw3ICsyMzIs
NyBAQCB2b2lkIEJpcXVhZDo6c2V0SGlnaHBhc3NQYXJhbXMoZG91YmxlIGN1CiAKIHZvaWQgQmlx
dWFkOjpzZXRMb3dTaGVsZlBhcmFtcyhkb3VibGUgY3V0b2ZmLCBkb3VibGUgZGJHYWluKQogewot
ICAgIGRvdWJsZSB0aGV0YSA9IE1fUEkgKiBjdXRvZmY7CisgICAgZG91YmxlIHRoZXRhID0gcGlE
b3VibGUgKiBjdXRvZmY7CiAKICAgICBkb3VibGUgQSA9IHBvdygxMC4wLCBkYkdhaW4gLyA0MC4w
KTsKICAgICBkb3VibGUgUyA9IDEuMDsgLy8gZmlsdGVyIHNsb3BlICgxLjAgaXMgbWF4IHZhbHVl
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Db25lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0NvbmUuY3BwCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQ29uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCiAjaW5jbHVkZSAiQ29uZS5oIgorI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTUsNyArNTYs
NyBAQCBkb3VibGUgQ29uZUVmZmVjdDo6Z2FpbihGbG9hdFBvaW50M0Qgc291CiAKICAgICAvLyBB
bmdsZSBiZXR3ZWVuIHRoZSBzb3VyY2Ugb3JpZW50YXRpb24gdmVjdG9yIGFuZCB0aGUgc291cmNl
LWxpc3RlbmVyIHZlY3RvcgogICAgIGRvdWJsZSBkb3RQcm9kdWN0ID0gc291cmNlVG9MaXN0ZW5l
ci5kb3Qobm9ybWFsaXplZFNvdXJjZU9yaWVudGF0aW9uKTsKLSAgICBkb3VibGUgYW5nbGUgPSAx
ODAuMCAqIGFjb3MoZG90UHJvZHVjdCkgLyBNX1BJOworICAgIGRvdWJsZSBhbmdsZSA9IDE4MC4w
ICogYWNvcyhkb3RQcm9kdWN0KSAvIHBpRG91YmxlOwogICAgIGRvdWJsZSBhYnNBbmdsZSA9IGZh
YnMoYW5nbGUpOwogCiAgICAgLy8gRGl2aWRlIGJ5IDIuMCBoZXJlIHNpbmNlIEFQSSBpcyBlbnRp
cmUgYW5nbGUgKG5vdCBoYWxmLWFuZ2xlKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9F
cXVhbFBvd2VyUGFubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0VxdWFsUG93ZXJQYW5uZXIuY3BwCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vRXF1YWxQb3dlclBhbm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMu
aCIKLSNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogLy8g
VXNlIGEgNTBtcyBzbW9vdGhpbmcgLyBkZS16aXBwZXJpbmcgdGltZS1jb25zdGFudC4KIGNvbnN0
IGRvdWJsZSBTbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwLjA1MDsKQEAgLTc2LDcgKzc2LDcgQEAg
dm9pZCBFcXVhbFBvd2VyUGFubmVyOjpwYW4oZG91YmxlIGF6aW11dAogICAgIGVsc2UKICAgICAg
ICAgZGVzaXJlZFBhblBvc2l0aW9uID0gKGF6aW11dGggKyAzMC4wKSAvIDYwLjA7CiAKLSAgICBk
b3VibGUgZGVzaXJlZEdhaW5MID0gMC41ICogY29zKE1fUEkgKiBkZXNpcmVkUGFuUG9zaXRpb24p
ICsgMC41OworICAgIGRvdWJsZSBkZXNpcmVkR2FpbkwgPSAwLjUgKiBjb3MocGlEb3VibGUgKiBk
ZXNpcmVkUGFuUG9zaXRpb24pICsgMC41OwogICAgIGRvdWJsZSBkZXNpcmVkR2FpblIgPSBzcXJ0
KDEuMCAtIGRlc2lyZWRHYWluTCpkZXNpcmVkR2FpbkwpOwogCiAgICAgLy8gRG9uJ3QgZGUtemlw
cGVyIG9uIGZpcnN0IHJlbmRlciBjYWxsLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9G
RlRGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFt
ZS5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCwzMiArMTM0LDMyIEBAIHZvaWQgRkZURnJhbWU6
OmludGVycG9sYXRlRnJlcXVlbmN5Q29tcG8KICAgICAgICAgbGFzdFBoYXNlMiA9IHBoYXNlMjsK
IAogICAgICAgICAvLyBVbndyYXAgcGhhc2UgZGVsdGFzCi0gICAgICAgIGlmIChkZWx0YVBoYXNl
MSA+IE1fUEkpCi0gICAgICAgICAgICBkZWx0YVBoYXNlMSAtPSAyLjAgKiBNX1BJOwotICAgICAg
ICBpZiAoZGVsdGFQaGFzZTEgPCAtTV9QSSkKLSAgICAgICAgICAgIGRlbHRhUGhhc2UxICs9IDIu
MCAqIE1fUEk7Ci0gICAgICAgIGlmIChkZWx0YVBoYXNlMiA+IE1fUEkpCi0gICAgICAgICAgICBk
ZWx0YVBoYXNlMiAtPSAyLjAgKiBNX1BJOwotICAgICAgICBpZiAoZGVsdGFQaGFzZTIgPCAtTV9Q
SSkKLSAgICAgICAgICAgIGRlbHRhUGhhc2UyICs9IDIuMCAqIE1fUEk7CisgICAgICAgIGlmIChk
ZWx0YVBoYXNlMSA+IHBpRG91YmxlKQorICAgICAgICAgICAgZGVsdGFQaGFzZTEgLT0gMi4wICog
cGlEb3VibGU7CisgICAgICAgIGlmIChkZWx0YVBoYXNlMSA8IC1waURvdWJsZSkKKyAgICAgICAg
ICAgIGRlbHRhUGhhc2UxICs9IDIuMCAqIHBpRG91YmxlOworICAgICAgICBpZiAoZGVsdGFQaGFz
ZTIgPiBwaURvdWJsZSkKKyAgICAgICAgICAgIGRlbHRhUGhhc2UyIC09IDIuMCAqIHBpRG91Ymxl
OworICAgICAgICBpZiAoZGVsdGFQaGFzZTIgPCAtcGlEb3VibGUpCisgICAgICAgICAgICBkZWx0
YVBoYXNlMiArPSAyLjAgKiBwaURvdWJsZTsKIAogICAgICAgICAvLyBCbGVuZCBncm91cC1kZWxh
eXMKICAgICAgICAgZG91YmxlIGRlbHRhUGhhc2VCbGVuZDsKIAotICAgICAgICBpZiAoZGVsdGFQ
aGFzZTEgLSBkZWx0YVBoYXNlMiA+IE1fUEkpCi0gICAgICAgICAgICBkZWx0YVBoYXNlQmxlbmQg
PSBzMSAqIGRlbHRhUGhhc2UxICsgczIgKiAoMi4wICogTV9QSSArIGRlbHRhUGhhc2UyKTsKLSAg
ICAgICAgZWxzZSBpZiAoZGVsdGFQaGFzZTIgLSBkZWx0YVBoYXNlMSA+IE1fUEkpCi0gICAgICAg
ICAgICBkZWx0YVBoYXNlQmxlbmQgPSBzMSAqICgyLjAgKiBNX1BJICsgZGVsdGFQaGFzZTEpICsg
czIgKiBkZWx0YVBoYXNlMjsKKyAgICAgICAgaWYgKGRlbHRhUGhhc2UxIC0gZGVsdGFQaGFzZTIg
PiBwaURvdWJsZSkKKyAgICAgICAgICAgIGRlbHRhUGhhc2VCbGVuZCA9IHMxICogZGVsdGFQaGFz
ZTEgKyBzMiAqICgyLjAgKiBwaURvdWJsZSArIGRlbHRhUGhhc2UyKTsKKyAgICAgICAgZWxzZSBp
ZiAoZGVsdGFQaGFzZTIgLSBkZWx0YVBoYXNlMSA+IHBpRG91YmxlKQorICAgICAgICAgICAgZGVs
dGFQaGFzZUJsZW5kID0gczEgKiAoMi4wICogcGlEb3VibGUgKyBkZWx0YVBoYXNlMSkgKyBzMiAq
IGRlbHRhUGhhc2UyOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBkZWx0YVBoYXNlQmxlbmQg
PSBzMSAqIGRlbHRhUGhhc2UxICsgczIgKiBkZWx0YVBoYXNlMjsKIAogICAgICAgICBwaGFzZUFj
Y3VtICs9IGRlbHRhUGhhc2VCbGVuZDsKIAogICAgICAgICAvLyBVbndyYXAKLSAgICAgICAgaWYg
KHBoYXNlQWNjdW0gPiBNX1BJKQotICAgICAgICAgICAgcGhhc2VBY2N1bSAtPSAyLjAgKiBNX1BJ
OwotICAgICAgICBpZiAocGhhc2VBY2N1bSA8IC1NX1BJKQotICAgICAgICAgICAgcGhhc2VBY2N1
bSArPSAyLjAgKiBNX1BJOworICAgICAgICBpZiAocGhhc2VBY2N1bSA+IHBpRG91YmxlKQorICAg
ICAgICAgICAgcGhhc2VBY2N1bSAtPSAyLjAgKiBwaURvdWJsZTsKKyAgICAgICAgaWYgKHBoYXNl
QWNjdW0gPCAtcGlEb3VibGUpCisgICAgICAgICAgICBwaGFzZUFjY3VtICs9IDIuMCAqIHBpRG91
YmxlOwogCiAgICAgICAgIENvbXBsZXggYyA9IGNvbXBsZXhGcm9tTWFnbml0dWRlUGhhc2UobWFn
LCBwaGFzZUFjY3VtKTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIGRvdWJsZSBGRlRGcmFtZTo6ZXh0
cmFjdEF2ZXJhZ2VHcm91cERlbGEKIAogICAgIGludCBoYWxmU2l6ZSA9IGZmdFNpemUoKSAvIDI7
CiAKLSAgICBjb25zdCBkb3VibGUga1NhbXBsZVBoYXNlRGVsYXkgPSAoMi4wICogTV9QSSkgLyBk
b3VibGUoZmZ0U2l6ZSgpKTsKKyAgICBjb25zdCBkb3VibGUga1NhbXBsZVBoYXNlRGVsYXkgPSAo
Mi4wICogcGlEb3VibGUpIC8gZG91YmxlKGZmdFNpemUoKSk7CiAKICAgICAvLyBDYWxjdWxhdGUg
d2VpZ2h0ZWQgYXZlcmFnZSBncm91cCBkZWxheQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGFs
ZlNpemU7IGkrKykgewpAQCAtMTkxLDEwICsxOTEsMTAgQEAgZG91YmxlIEZGVEZyYW1lOjpleHRy
YWN0QXZlcmFnZUdyb3VwRGVsYQogICAgICAgICBsYXN0UGhhc2UgPSBwaGFzZTsKIAogICAgICAg
ICAvLyBVbndyYXAKLSAgICAgICAgaWYgKGRlbHRhUGhhc2UgPCAtTV9QSSkKLSAgICAgICAgICAg
IGRlbHRhUGhhc2UgKz0gMi4wICogTV9QSTsKLSAgICAgICAgaWYgKGRlbHRhUGhhc2UgPiBNX1BJ
KQotICAgICAgICAgICAgZGVsdGFQaGFzZSAtPSAyLjAgKiBNX1BJOworICAgICAgICBpZiAoZGVs
dGFQaGFzZSA8IC1waURvdWJsZSkKKyAgICAgICAgICAgIGRlbHRhUGhhc2UgKz0gMi4wICogcGlE
b3VibGU7CisgICAgICAgIGlmIChkZWx0YVBoYXNlID4gcGlEb3VibGUpCisgICAgICAgICAgICBk
ZWx0YVBoYXNlIC09IDIuMCAqIHBpRG91YmxlOwogCiAgICAgICAgIGF2ZVN1bSArPSBtYWcgKiBk
ZWx0YVBoYXNlOwogICAgICAgICB3ZWlnaHRTdW0gKz0gbWFnOwpAQCAtMjI0LDcgKzIyNCw3IEBA
IHZvaWQgRkZURnJhbWU6OmFkZENvbnN0YW50R3JvdXBEZWxheShkb3UKICAgICBmbG9hdCogcmVh
bFAgPSByZWFsRGF0YSgpOwogICAgIGZsb2F0KiBpbWFnUCA9IGltYWdEYXRhKCk7CiAKLSAgICBj
b25zdCBkb3VibGUga1NhbXBsZVBoYXNlRGVsYXkgPSAoMi4wICogTV9QSSkgLyBkb3VibGUoZmZ0
U2l6ZSgpKTsKKyAgICBjb25zdCBkb3VibGUga1NhbXBsZVBoYXNlRGVsYXkgPSAoMi4wICogcGlE
b3VibGUpIC8gZG91YmxlKGZmdFNpemUoKSk7CiAKICAgICBkb3VibGUgcGhhc2VBZGogPSAtc2Ft
cGxlRnJhbWVEZWxheSAqIGtTYW1wbGVQaGFzZURlbGF5OwogCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURktlcm5lbC5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGS2VybmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkF1ZGlvQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUg
IkZGVEZyYW1lLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGUGFubmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuY3BwCShyZXZp
c2lvbiA3MzQxMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJIUlRGRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0j
aW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpJbmRleDogV2ViQ29yZS93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJD
b3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRp
b05vZGVPdXRwdXQuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtMzI0LDcgKzMyNSw3IEBAIHZv
aWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpyZWFkRnJvbUJ1ZmYKICAgICAgICAgbV9ncmFpbkZy
YW1lQ291bnQrKzsKIAogICAgICAgICB4ID0gbWluKDEuMGYsIHgpOwotICAgICAgICBmbG9hdCBn
cmFpbkVudmVsb3BlID0gc2luZihNX1BJICogeCk7CisgICAgICAgIGZsb2F0IGdyYWluRW52ZWxv
cGUgPSBzaW5mKHBpRmxvYXQgKiB4KTsKICAgICAgICAgCiAgICAgICAgICpkZXN0aW5hdGlvbkwr
KyA9IGdyYWluRW52ZWxvcGUgKiAqc291cmNlTCsrOwogCkluZGV4OiBXZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJhdWRpby9BdWRp
b1Bhbm5lck5vZGUuY3BwCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNvcmUvd2ViYXVkaW8vQXVk
aW9QYW5uZXJOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQg
QXVkaW9QYW5uZXJOb2RlOjpnZXRBemltdXRoRWxldmF0aW8KICAgICBGbG9hdFBvaW50M0QgcHJv
amVjdGVkU291cmNlID0gc291cmNlTGlzdGVuZXIgLSB1cFByb2plY3Rpb24gKiB1cDsKICAgICBw
cm9qZWN0ZWRTb3VyY2Uubm9ybWFsaXplKCk7CiAKLSAgICBhemltdXRoID0gMTgwLjAgKiBhY29z
KHByb2plY3RlZFNvdXJjZS5kb3QobGlzdGVuZXJSaWdodCkpIC8gTV9QSTsKKyAgICBhemltdXRo
ID0gMTgwLjAgKiBhY29zKHByb2plY3RlZFNvdXJjZS5kb3QobGlzdGVuZXJSaWdodCkpIC8gcGlE
b3VibGU7CiAgICAgZml4TkFOcyhhemltdXRoKTsgLy8gYXZvaWQgaWxsZWdhbCB2YWx1ZXMKIAog
ICAgIC8vIFNvdXJjZSAgaW4gZnJvbnQgb3IgYmVoaW5kIHRoZSBsaXN0ZW5lcgpAQCAtMjA4LDcg
KzIwOCw3IEBAIHZvaWQgQXVkaW9QYW5uZXJOb2RlOjpnZXRBemltdXRoRWxldmF0aW8KICAgICAg
ICAgYXppbXV0aCA9IDQ1MC4wIC0gYXppbXV0aDsKIAogICAgIC8vIEVsZXZhdGlvbgotICAgIGRv
dWJsZSBlbGV2YXRpb24gPSA5MC4wIC0gMTgwLjAgKiBhY29zKHNvdXJjZUxpc3RlbmVyLmRvdCh1
cCkpIC8gTV9QSTsKKyAgICBkb3VibGUgZWxldmF0aW9uID0gOTAuMCAtIDE4MC4wICogYWNvcyhz
b3VyY2VMaXN0ZW5lci5kb3QodXApKSAvIHBpRG91YmxlOwogICAgIGZpeE5BTnMoYXppbXV0aCk7
IC8vIGF2b2lkIGlsbGVnYWwgdmFsdWVzCiAKICAgICBpZiAoZWxldmF0aW9uID4gOTAuMCkKSW5k
ZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAi
QXVkaW9QYXJhbS5oIgorCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKworY29uc3QgZG91
YmxlIEF1ZGlvUGFyYW06OkRlZmF1bHRTbW9vdGhpbmdDb25zdGFudCA9IDAuMDU7Citjb25zdCBk
b3VibGUgQXVkaW9QYXJhbTo6U25hcFRocmVzaG9sZCA9IDAuMDAxOworCit2b2lkIEF1ZGlvUGFy
YW06OnNldFZhbHVlKGZsb2F0IHZhbHVlKQoreworICAgIC8vIENoZWNrIGFnYWluc3QgSmF2YVNj
cmlwdCBnaXZpbmcgdXMgYm9ndXMgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgorICAgIC8vIERvbid0
IEFTU0VSVCwgc2luY2UgdGhpcyBjYW4gaGFwcGVuIGlmIHNvbWVib2R5IHdyaXRlcyBiYWQgSlMu
CisgICAgaWYgKCFpc25hbih2YWx1ZSkgJiYgIWlzaW5mKHZhbHVlKSkKKyAgICAgICAgbV92YWx1
ZSA9IHZhbHVlOworfQorCitib29sIEF1ZGlvUGFyYW06OnNtb290aCgpCit7CisgICAgaWYgKG1f
c21vb3RoZWRWYWx1ZSA9PSBtX3ZhbHVlKSB7CisgICAgICAgIC8vIFNtb290aGVkIHZhbHVlIGhh
cyBhbHJlYWR5IGFwcHJvYWNoZWQgYW5kIHNuYXBwZWQgdG8gdmFsdWUuCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIC8vIEV4cG9uZW50aWFsIGFwcHJvYWNoCisgICAgbV9zbW9v
dGhlZFZhbHVlICs9IChtX3ZhbHVlIC0gbV9zbW9vdGhlZFZhbHVlKSAqIG1fc21vb3RoaW5nQ29u
c3RhbnQ7CisKKyAgICAvLyBJZiB3ZSBnZXQgY2xvc2UgZW5vdWdoIHRoZW4gc25hcCB0byBhY3R1
YWwgdmFsdWUuCisgICAgaWYgKGZhYnMobV9zbW9vdGhlZFZhbHVlIC0gbV92YWx1ZSkgPCBTbmFw
VGhyZXNob2xkKSAvLyBGSVhNRTogdGhlIHRocmVzaG9sZCBuZWVkcyB0byBiZSBhZGp1c3RhYmxl
IGRlcGVuZGluZyBvbiByYW5nZSAtIGJ1dCB0aGlzIGlzIE9LIGdlbmVyYWwgcHVycG9zZSB2YWx1
ZS4KKyAgICAgICAgbV9zbW9vdGhlZFZhbHVlID0gbV92YWx1ZTsKKworICAgIHJldHVybiBmYWxz
ZTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCkluZGV4OiBXZWJDb3JlL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaAkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2RlZmluZSBBdWRpb1BhcmFtX2gKIAog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUg
PHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KQEAgLTM5LDggKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBBdWRpb1BhcmFtIDogcHVibGljIFJlZkNvdW50ZWQ8QXVkaW9QYXJhbT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgRGVmYXVsdFNtb290aGluZ0NvbnN0YW50ID0gMC4w
NTsKLSAgICBzdGF0aWMgY29uc3QgZG91YmxlIFNuYXBUaHJlc2hvbGQgPSAwLjAwMTsKKyAgICBz
dGF0aWMgY29uc3QgZG91YmxlIERlZmF1bHRTbW9vdGhpbmdDb25zdGFudDsKKyAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIFNuYXBUaHJlc2hvbGQ7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRp
b1BhcmFtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZGVmYXVsdFZhbHVlLCBk
b3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQgdW5pdHMgPSAwKQogICAg
IHsKQEAgLTYxLDEzICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdmFsdWUpOyB9CiAgICAgCi0gICAgdm9pZCBz
ZXRWYWx1ZShmbG9hdCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIC8vIENoZWNrIGFnYWluc3QgSmF2
YVNjcmlwdCBnaXZpbmcgdXMgYm9ndXMgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgotICAgICAgICAv
LyBEb24ndCBBU1NFUlQsIHNpbmNlIHRoaXMgY2FuIGhhcHBlbiBpZiBzb21lYm9keSB3cml0ZXMg
YmFkIEpTLgotICAgICAgICBpZiAoIWlzbmFuKHZhbHVlKSAmJiAhaXNpbmYodmFsdWUpKQotICAg
ICAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwotICAgIH0KKyAgICB2b2lkIHNldFZhbHVlKGZsb2F0
IHZhbHVlKTsKIAogICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAK
QEAgLTg0LDIyICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNtb290aGx5IGV4cG9uZW50aWFs
bHkgYXBwcm9hY2hlcyB0byAoZGUtemlwcGVycykgdGhlIGRlc2lyZWQgdmFsdWUuCiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHNtb290aGVkIHZhbHVlIGhhcyBhbHJlYWR5IHNuYXBwZWQgZXhhY3Rs
eSB0byB2YWx1ZS4KLSAgICBib29sIHNtb290aCgpCi0gICAgewotICAgICAgICBpZiAobV9zbW9v
dGhlZFZhbHVlID09IG1fdmFsdWUpIHsKLSAgICAgICAgICAgIC8vIFNtb290aGVkIHZhbHVlIGhh
cyBhbHJlYWR5IGFwcHJvYWNoZWQgYW5kIHNuYXBwZWQgdG8gdmFsdWUuCi0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEV4cG9uZW50aWFsIGFwcHJvYWNo
Ci0gICAgICAgIG1fc21vb3RoZWRWYWx1ZSArPSAobV92YWx1ZSAtIG1fc21vb3RoZWRWYWx1ZSkg
KiBtX3Ntb290aGluZ0NvbnN0YW50OwotCi0gICAgICAgIC8vIElmIHdlIGdldCBjbG9zZSBlbm91
Z2ggdGhlbiBzbmFwIHRvIGFjdHVhbCB2YWx1ZS4KLSAgICAgICAgaWYgKGZhYnMobV9zbW9vdGhl
ZFZhbHVlIC0gbV92YWx1ZSkgPCBTbmFwVGhyZXNob2xkKSAvLyBGSVhNRTogdGhlIHRocmVzaG9s
ZCBuZWVkcyB0byBiZSBhZGp1c3RhYmxlIGRlcGVuZGluZyBvbiByYW5nZSAtIGJ1dCB0aGlzIGlz
IE9LIGdlbmVyYWwgcHVycG9zZSB2YWx1ZS4KLSAgICAgICAgICAgIG1fc21vb3RoZWRWYWx1ZSA9
IG1fdmFsdWU7Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBib29sIHNtb290
aCgpOwogCiAgICAgdm9pZCByZXNldFNtb290aGVkVmFsdWUoKSB7IG1fc21vb3RoZWRWYWx1ZSA9
IG1fdmFsdWU7IH0KICAgICB2b2lkIHNldFNtb290aGluZ0NvbnN0YW50KGRvdWJsZSBrKSB7IG1f
c21vb3RoaW5nQ29uc3RhbnQgPSBrOyB9CkluZGV4OiBXZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1l
QW5hbHlzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlci5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFu
YWx5c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxleC5oPgor
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMTM3LDcgKzEzOCw3IEBAIHZvaWQgYXBwbHlXaW5k
b3coZmxvYXQqIHAsIHNpemVfdCBuKQogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBuOyArK2kpIHsKICAgICAgICAgZG91YmxlIHggPSBzdGF0aWNfY2FzdDxkb3VibGU+KGkpIC8g
c3RhdGljX2Nhc3Q8ZG91YmxlPihuKTsKLSAgICAgICAgZG91YmxlIHdpbmRvdyA9IGEwIC0gYTEg
KiBjb3MoMi4wICogTV9QSSAqIHgpICsgYTIgKiBjb3MoNC4wICogTV9QSSAqIHgpOworICAgICAg
ICBkb3VibGUgd2luZG93ID0gYTAgLSBhMSAqIGNvcygyLjAgKiBwaURvdWJsZSAqIHgpICsgYTIg
KiBjb3MoNC4wICogcGlEb3VibGUgKiB4KTsKICAgICAgICAgcFtpXSAqPSBmbG9hdCh3aW5kb3cp
OwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75765</attachid>
            <date>2010-12-06 17:58:12 -0800</date>
            <delta_ts>2010-12-07 13:39:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50603-20101206175811.patch</filename>
            <type>text/plain</type>
            <size>18758</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDczNDIwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTItMDYgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBjb21waWxhdGlvbiBvZiBjb3JlIHdlYiBhdWRpbyBmaWxl
cyBvbiBXaW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MDYwMworCisgICAgICAgIEFkZGVkIGxvZzIgZGVmaW5pdGlvbiB0byBNYXRoRXh0cmFz
Lmggb24gV2luZG93cyBwbGF0Zm9ybS4KKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6Cisg
ICAgICAgIChsb2cyKToKKwogMjAxMC0xMi0wNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvd3RmL01hdGhFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS93dGYvTWF0aEV4dHJhcy5oCShyZXZpc2lvbiA3MzQxMikKKysrIEphdmFTY3JpcHRDb3Jl
L3d0Zi9NYXRoRXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMTMgQEAgaW5s
aW5lIGZsb2F0IG5leHRhZnRlcmYoZmxvYXQgeCwgZmxvYXQgeQogaW5saW5lIGRvdWJsZSBjb3B5
c2lnbihkb3VibGUgeCwgZG91YmxlIHkpIHsgcmV0dXJuIF9jb3B5c2lnbih4LCB5KTsgfQogaW5s
aW5lIGludCBpc2Zpbml0ZShkb3VibGUgeCkgeyByZXR1cm4gX2Zpbml0ZSh4KTsgfQogCisvLyBN
U1ZDJ3MgbWF0aC5oIGRvZXMgbm90IGN1cnJlbnRseSBzdXBwbHkgbG9nMi4KK2lubGluZSBib29s
IGxvZzIoZG91YmxlIG51bSkKK3sKKyAgICAvLyBUaGlzIGNvbnN0YW50IGlzIHJvdWdobHkgTV9M
TjIsIHdoaWNoIGlzIG5vdCBwcm92aWRlZCBieSBkZWZhdWx0IG9uIFdpbmRvd3MuCisgICAgcmV0
dXJuIGxvZyhudW0pIC8gMC42OTMxNDcxODA1NTk5NDUzMDk0MTcyMzIxMjE0NTgxNzY1Njg7Cit9
CisKIC8vIFdvcmsgYXJvdW5kIGEgYnVnIGluIFdpbiwgd2hlcmUgYXRhbjIoKy1pbmZpbml0eSwg
Ky1pbmZpbml0eSkgeWllbGRzIE5hTiBpbnN0ZWFkIG9mIHNwZWNpZmljIHZhbHVlcy4KIGlubGlu
ZSBkb3VibGUgd3RmX2F0YW4yKGRvdWJsZSB4LCBkb3VibGUgeSkKIHsKSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MzQy
MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTAtMTItMDYgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjb21waWxhdGlvbiBv
ZiBjb3JlIHdlYiBhdWRpbyBmaWxlcyBvbiBXaW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDYwMworCisgICAgICAgIENoYW5nZWQgYSBmZXcg
Y29uc3RydWN0cyB1c2luZyBDOTkgZmVhdHVyZXMgb2YgbWF0aC5oIHRvIHVzZQorICAgICAgICB3
dGYvTWF0aEV4dHJhcy5oIGluc3RlYWQuIENoYW5nZWQgaW5saW5lIGRlZmluaXRpb25zIG9mIGEg
Y291cGxlIG9mCisgICAgICAgIGNvbnN0IHN0YXRpYyBkb3VibGVzIGluIGNsYXNzZXMgdG8gb3V0
LW9mLWxpbmUuIEJ1aWx0IENocm9tZSB3aXRoCisgICAgICAgIHdlYiBhdWRpbyBlbmFibGVkIG9u
IFdpbmRvd3MgYW5kIE1hYyBPUyBYIHRvIHRlc3QgdGhlc2UgY2hhbmdlcy4KKworICAgICAgICBO
byBuZXcgdGVzdHMgc2luY2UgYXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNh
bXBsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXF1YWQ6OnNldExvd3Bhc3NQYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6
QmlxdWFkOjpzZXRIaWdocGFzc1BhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWQ6OnNl
dExvd1NoZWxmUGFyYW1zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9Db25lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbmVFZmZlY3Q6OmdhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0VxdWFsUG93ZXJQYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXF1YWxQb3dlclBh
bm5lcjo6cGFuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6aW50ZXJwb2xhdGVGcmVxdWVuY3lDb21wb25lbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpleHRyYWN0QXZlcmFnZUdyb3VwRGVsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmFkZENvbnN0YW50R3JvdXBEZWxheSk6CisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vSFJURlBhbm5lci5jcHA6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cmVh
ZEZyb21CdWZmZXJXaXRoR3JhaW5FbnZlbG9wZSk6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Q
YW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFubmVyTm9kZTo6Z2V0QXpp
bXV0aEVsZXZhdGlvbik6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6IEFkZGVk
LgorICAgICAgICAoQXVkaW9QYXJhbTo6c2V0VmFsdWUpOgorICAgICAgICAoQXVkaW9QYXJhbTo6
c21vb3RoKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAgICAgICogd2Vi
YXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHA6CisKIDIwMTAtMTItMDYgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC00NDM1LDYgKzQ0MzUsNyBAQAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvTm9k
ZU91dHB1dC5oJywKICAgICAgICAgICAgICd3ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaCcsCiAg
ICAgICAgICAgICAnd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcCcsCisgICAgICAgICAgICAn
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAnLAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaCcsCiAgICAgICAgICAgICAnd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCcsCiAg
ICAgICAgICAgICAnd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3BwJywKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXIuY3BwCShyZXZpc2lvbiA3MzQxMikK
KysrIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KLSNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQmlxdWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVh
ZC5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw4IEBACiAjaW5jbHVkZSAiQmlxdWFkLmgi
CiAKICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8ZmxvYXQuaD4KLSNpbmNsdWRlIDxt
YXRoLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgog
CiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgpAQCAt
MTk3LDcgKzE5Niw3IEBAIHZvaWQgQmlxdWFkOjpzZXRMb3dwYXNzUGFyYW1zKGRvdWJsZSBjdXQK
ICAgICBkb3VibGUgZCA9IHNxcnQoKDQuMCAtIHNxcnQoMTYuMCAtIDE2LjAgLyAoZyAqIGcpKSkg
LyAyLjApOwogCiAgICAgLy8gQ29tcHV0ZSBiaXF1YWQgY29lZmZpY2llbnRzIGZvciBsb3Bhc3Mg
ZmlsdGVyCi0gICAgZG91YmxlIHRoZXRhID0gTV9QSSAqIGN1dG9mZjsKKyAgICBkb3VibGUgdGhl
dGEgPSBwaURvdWJsZSAqIGN1dG9mZjsKICAgICBkb3VibGUgc24gPSAwLjUgKiBkICogc2luKHRo
ZXRhKTsKICAgICBkb3VibGUgYmV0YSA9IDAuNSAqICgxLjAgLSBzbikgLyAoMS4wICsgc24pOwog
ICAgIGRvdWJsZSBnYW1tYSA9ICgwLjUgKyBiZXRhKSAqIGNvcyh0aGV0YSk7CkBAIC0yMTgsNyAr
MjE3LDcgQEAgdm9pZCBCaXF1YWQ6OnNldEhpZ2hwYXNzUGFyYW1zKGRvdWJsZSBjdQogICAgIGRv
dWJsZSBkID0gc3FydCgoNC4wIC0gc3FydCgxNi4wIC0gMTYuMCAvIChnICogZykpKSAvIDIuMCk7
CiAKICAgICAvLyBDb21wdXRlIGJpcXVhZCBjb2VmZmljaWVudHMgZm9yIGhpZ2hwYXNzIGZpbHRl
cgotICAgIGRvdWJsZSB0aGV0YSA9IE1fUEkgKiBjdXRvZmY7CisgICAgZG91YmxlIHRoZXRhID0g
cGlEb3VibGUgKiBjdXRvZmY7CiAgICAgZG91YmxlIHNuID0gMC41ICogZCAqIHNpbih0aGV0YSk7
CiAgICAgZG91YmxlIGJldGEgPSAwLjUgKiAoMS4wIC0gc24pIC8gKDEuMCArIHNuKTsKICAgICBk
b3VibGUgZ2FtbWEgPSAoMC41ICsgYmV0YSkgKiBjb3ModGhldGEpOwpAQCAtMjMzLDcgKzIzMiw3
IEBAIHZvaWQgQmlxdWFkOjpzZXRIaWdocGFzc1BhcmFtcyhkb3VibGUgY3UKIAogdm9pZCBCaXF1
YWQ6OnNldExvd1NoZWxmUGFyYW1zKGRvdWJsZSBjdXRvZmYsIGRvdWJsZSBkYkdhaW4pCiB7Ci0g
ICAgZG91YmxlIHRoZXRhID0gTV9QSSAqIGN1dG9mZjsKKyAgICBkb3VibGUgdGhldGEgPSBwaURv
dWJsZSAqIGN1dG9mZjsKIAogICAgIGRvdWJsZSBBID0gcG93KDEwLjAsIGRiR2FpbiAvIDQwLjAp
OwogICAgIGRvdWJsZSBTID0gMS4wOyAvLyBmaWx0ZXIgc2xvcGUgKDEuMCBpcyBtYXggdmFsdWUp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0NvbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQ29uZS5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9Db25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKICNpbmNsdWRlICJDb25lLmgiCisjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NSw3ICs1Niw3
IEBAIGRvdWJsZSBDb25lRWZmZWN0OjpnYWluKEZsb2F0UG9pbnQzRCBzb3UKIAogICAgIC8vIEFu
Z2xlIGJldHdlZW4gdGhlIHNvdXJjZSBvcmllbnRhdGlvbiB2ZWN0b3IgYW5kIHRoZSBzb3VyY2Ut
bGlzdGVuZXIgdmVjdG9yCiAgICAgZG91YmxlIGRvdFByb2R1Y3QgPSBzb3VyY2VUb0xpc3RlbmVy
LmRvdChub3JtYWxpemVkU291cmNlT3JpZW50YXRpb24pOwotICAgIGRvdWJsZSBhbmdsZSA9IDE4
MC4wICogYWNvcyhkb3RQcm9kdWN0KSAvIE1fUEk7CisgICAgZG91YmxlIGFuZ2xlID0gMTgwLjAg
KiBhY29zKGRvdFByb2R1Y3QpIC8gcGlEb3VibGU7CiAgICAgZG91YmxlIGFic0FuZ2xlID0gZmFi
cyhhbmdsZSk7CiAKICAgICAvLyBEaXZpZGUgYnkgMi4wIGhlcmUgc2luY2UgQVBJIGlzIGVudGly
ZSBhbmdsZSAobm90IGhhbGYtYW5nbGUpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Vx
dWFsUG93ZXJQYW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
RXF1YWxQb3dlclBhbm5lci5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQAogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5o
IgotI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiAvLyBV
c2UgYSA1MG1zIHNtb290aGluZyAvIGRlLXppcHBlcmluZyB0aW1lLWNvbnN0YW50LgogY29uc3Qg
ZG91YmxlIFNtb290aGluZ1RpbWVDb25zdGFudCA9IDAuMDUwOwpAQCAtNzYsNyArNzYsNyBAQCB2
b2lkIEVxdWFsUG93ZXJQYW5uZXI6OnBhbihkb3VibGUgYXppbXV0CiAgICAgZWxzZQogICAgICAg
ICBkZXNpcmVkUGFuUG9zaXRpb24gPSAoYXppbXV0aCArIDMwLjApIC8gNjAuMDsKIAotICAgIGRv
dWJsZSBkZXNpcmVkR2FpbkwgPSAwLjUgKiBjb3MoTV9QSSAqIGRlc2lyZWRQYW5Qb3NpdGlvbikg
KyAwLjU7CisgICAgZG91YmxlIGRlc2lyZWRHYWluTCA9IDAuNSAqIGNvcyhwaURvdWJsZSAqIGRl
c2lyZWRQYW5Qb3NpdGlvbikgKyAwLjU7CiAgICAgZG91YmxlIGRlc2lyZWRHYWluUiA9IHNxcnQo
MS4wIC0gZGVzaXJlZEdhaW5MKmRlc2lyZWRHYWluTCk7CiAKICAgICAvLyBEb24ndCBkZS16aXBw
ZXIgb24gZmlyc3QgcmVuZGVyIGNhbGwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZG
VEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
LmNwcAkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDMyICsxMzQsMzIgQEAgdm9pZCBGRlRGcmFtZTo6
aW50ZXJwb2xhdGVGcmVxdWVuY3lDb21wbwogICAgICAgICBsYXN0UGhhc2UyID0gcGhhc2UyOwog
CiAgICAgICAgIC8vIFVud3JhcCBwaGFzZSBkZWx0YXMKLSAgICAgICAgaWYgKGRlbHRhUGhhc2Ux
ID4gTV9QSSkKLSAgICAgICAgICAgIGRlbHRhUGhhc2UxIC09IDIuMCAqIE1fUEk7Ci0gICAgICAg
IGlmIChkZWx0YVBoYXNlMSA8IC1NX1BJKQotICAgICAgICAgICAgZGVsdGFQaGFzZTEgKz0gMi4w
ICogTV9QSTsKLSAgICAgICAgaWYgKGRlbHRhUGhhc2UyID4gTV9QSSkKLSAgICAgICAgICAgIGRl
bHRhUGhhc2UyIC09IDIuMCAqIE1fUEk7Ci0gICAgICAgIGlmIChkZWx0YVBoYXNlMiA8IC1NX1BJ
KQotICAgICAgICAgICAgZGVsdGFQaGFzZTIgKz0gMi4wICogTV9QSTsKKyAgICAgICAgaWYgKGRl
bHRhUGhhc2UxID4gcGlEb3VibGUpCisgICAgICAgICAgICBkZWx0YVBoYXNlMSAtPSAyLjAgKiBw
aURvdWJsZTsKKyAgICAgICAgaWYgKGRlbHRhUGhhc2UxIDwgLXBpRG91YmxlKQorICAgICAgICAg
ICAgZGVsdGFQaGFzZTEgKz0gMi4wICogcGlEb3VibGU7CisgICAgICAgIGlmIChkZWx0YVBoYXNl
MiA+IHBpRG91YmxlKQorICAgICAgICAgICAgZGVsdGFQaGFzZTIgLT0gMi4wICogcGlEb3VibGU7
CisgICAgICAgIGlmIChkZWx0YVBoYXNlMiA8IC1waURvdWJsZSkKKyAgICAgICAgICAgIGRlbHRh
UGhhc2UyICs9IDIuMCAqIHBpRG91YmxlOwogCiAgICAgICAgIC8vIEJsZW5kIGdyb3VwLWRlbGF5
cwogICAgICAgICBkb3VibGUgZGVsdGFQaGFzZUJsZW5kOwogCi0gICAgICAgIGlmIChkZWx0YVBo
YXNlMSAtIGRlbHRhUGhhc2UyID4gTV9QSSkKLSAgICAgICAgICAgIGRlbHRhUGhhc2VCbGVuZCA9
IHMxICogZGVsdGFQaGFzZTEgKyBzMiAqICgyLjAgKiBNX1BJICsgZGVsdGFQaGFzZTIpOwotICAg
ICAgICBlbHNlIGlmIChkZWx0YVBoYXNlMiAtIGRlbHRhUGhhc2UxID4gTV9QSSkKLSAgICAgICAg
ICAgIGRlbHRhUGhhc2VCbGVuZCA9IHMxICogKDIuMCAqIE1fUEkgKyBkZWx0YVBoYXNlMSkgKyBz
MiAqIGRlbHRhUGhhc2UyOworICAgICAgICBpZiAoZGVsdGFQaGFzZTEgLSBkZWx0YVBoYXNlMiA+
IHBpRG91YmxlKQorICAgICAgICAgICAgZGVsdGFQaGFzZUJsZW5kID0gczEgKiBkZWx0YVBoYXNl
MSArIHMyICogKDIuMCAqIHBpRG91YmxlICsgZGVsdGFQaGFzZTIpOworICAgICAgICBlbHNlIGlm
IChkZWx0YVBoYXNlMiAtIGRlbHRhUGhhc2UxID4gcGlEb3VibGUpCisgICAgICAgICAgICBkZWx0
YVBoYXNlQmxlbmQgPSBzMSAqICgyLjAgKiBwaURvdWJsZSArIGRlbHRhUGhhc2UxKSArIHMyICog
ZGVsdGFQaGFzZTI7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRlbHRhUGhhc2VCbGVuZCA9
IHMxICogZGVsdGFQaGFzZTEgKyBzMiAqIGRlbHRhUGhhc2UyOwogCiAgICAgICAgIHBoYXNlQWNj
dW0gKz0gZGVsdGFQaGFzZUJsZW5kOwogCiAgICAgICAgIC8vIFVud3JhcAotICAgICAgICBpZiAo
cGhhc2VBY2N1bSA+IE1fUEkpCi0gICAgICAgICAgICBwaGFzZUFjY3VtIC09IDIuMCAqIE1fUEk7
Ci0gICAgICAgIGlmIChwaGFzZUFjY3VtIDwgLU1fUEkpCi0gICAgICAgICAgICBwaGFzZUFjY3Vt
ICs9IDIuMCAqIE1fUEk7CisgICAgICAgIGlmIChwaGFzZUFjY3VtID4gcGlEb3VibGUpCisgICAg
ICAgICAgICBwaGFzZUFjY3VtIC09IDIuMCAqIHBpRG91YmxlOworICAgICAgICBpZiAocGhhc2VB
Y2N1bSA8IC1waURvdWJsZSkKKyAgICAgICAgICAgIHBoYXNlQWNjdW0gKz0gMi4wICogcGlEb3Vi
bGU7CiAKICAgICAgICAgQ29tcGxleCBjID0gY29tcGxleEZyb21NYWduaXR1ZGVQaGFzZShtYWcs
IHBoYXNlQWNjdW0pOwogCkBAIC0xNzksNyArMTc5LDcgQEAgZG91YmxlIEZGVEZyYW1lOjpleHRy
YWN0QXZlcmFnZUdyb3VwRGVsYQogCiAgICAgaW50IGhhbGZTaXplID0gZmZ0U2l6ZSgpIC8gMjsK
IAotICAgIGNvbnN0IGRvdWJsZSBrU2FtcGxlUGhhc2VEZWxheSA9ICgyLjAgKiBNX1BJKSAvIGRv
dWJsZShmZnRTaXplKCkpOworICAgIGNvbnN0IGRvdWJsZSBrU2FtcGxlUGhhc2VEZWxheSA9ICgy
LjAgKiBwaURvdWJsZSkgLyBkb3VibGUoZmZ0U2l6ZSgpKTsKIAogICAgIC8vIENhbGN1bGF0ZSB3
ZWlnaHRlZCBhdmVyYWdlIGdyb3VwIGRlbGF5CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBoYWxm
U2l6ZTsgaSsrKSB7CkBAIC0xOTEsMTAgKzE5MSwxMCBAQCBkb3VibGUgRkZURnJhbWU6OmV4dHJh
Y3RBdmVyYWdlR3JvdXBEZWxhCiAgICAgICAgIGxhc3RQaGFzZSA9IHBoYXNlOwogCiAgICAgICAg
IC8vIFVud3JhcAotICAgICAgICBpZiAoZGVsdGFQaGFzZSA8IC1NX1BJKQotICAgICAgICAgICAg
ZGVsdGFQaGFzZSArPSAyLjAgKiBNX1BJOwotICAgICAgICBpZiAoZGVsdGFQaGFzZSA+IE1fUEkp
Ci0gICAgICAgICAgICBkZWx0YVBoYXNlIC09IDIuMCAqIE1fUEk7CisgICAgICAgIGlmIChkZWx0
YVBoYXNlIDwgLXBpRG91YmxlKQorICAgICAgICAgICAgZGVsdGFQaGFzZSArPSAyLjAgKiBwaURv
dWJsZTsKKyAgICAgICAgaWYgKGRlbHRhUGhhc2UgPiBwaURvdWJsZSkKKyAgICAgICAgICAgIGRl
bHRhUGhhc2UgLT0gMi4wICogcGlEb3VibGU7CiAKICAgICAgICAgYXZlU3VtICs9IG1hZyAqIGRl
bHRhUGhhc2U7CiAgICAgICAgIHdlaWdodFN1bSArPSBtYWc7CkBAIC0yMjQsNyArMjI0LDcgQEAg
dm9pZCBGRlRGcmFtZTo6YWRkQ29uc3RhbnRHcm91cERlbGF5KGRvdQogICAgIGZsb2F0KiByZWFs
UCA9IHJlYWxEYXRhKCk7CiAgICAgZmxvYXQqIGltYWdQID0gaW1hZ0RhdGEoKTsKIAotICAgIGNv
bnN0IGRvdWJsZSBrU2FtcGxlUGhhc2VEZWxheSA9ICgyLjAgKiBNX1BJKSAvIGRvdWJsZShmZnRT
aXplKCkpOworICAgIGNvbnN0IGRvdWJsZSBrU2FtcGxlUGhhc2VEZWxheSA9ICgyLjAgKiBwaURv
dWJsZSkgLyBkb3VibGUoZmZ0U2l6ZSgpKTsKIAogICAgIGRvdWJsZSBwaGFzZUFkaiA9IC1zYW1w
bGVGcmFtZURlbGF5ICoga1NhbXBsZVBoYXNlRGVsYXk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURktlcm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGS2VybmVsLmNwcAkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZLZXJuZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiQXVkaW9DaGFubmVsLmgiCiAjaW5jbHVkZSAiQmlxdWFkLmgiCiAjaW5jbHVkZSAi
RkZURnJhbWUuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAJKHJldmlz
aW9uIDczNDEyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGUGFubmVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgog
I2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRlci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNp
bmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkluZGV4OiBXZWJDb3JlL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNv
cmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlv
Tm9kZU91dHB1dC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0zMjQsNyArMzI1LDcgQEAgdm9p
ZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJlYWRGcm9tQnVmZgogICAgICAgICBtX2dyYWluRnJh
bWVDb3VudCsrOwogCiAgICAgICAgIHggPSBtaW4oMS4wZiwgeCk7Ci0gICAgICAgIGZsb2F0IGdy
YWluRW52ZWxvcGUgPSBzaW5mKE1fUEkgKiB4KTsKKyAgICAgICAgZmxvYXQgZ3JhaW5FbnZlbG9w
ZSA9IHNpbmYocGlGbG9hdCAqIHgpOwogICAgICAgICAKICAgICAgICAgKmRlc3RpbmF0aW9uTCsr
ID0gZ3JhaW5FbnZlbG9wZSAqICpzb3VyY2VMKys7CiAKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8v
QXVkaW9QYW5uZXJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlv
UGFubmVyTm9kZS5jcHAJKHJldmlzaW9uIDczNDEyKQorKysgV2ViQ29yZS93ZWJhdWRpby9BdWRp
b1Bhbm5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBB
dWRpb1Bhbm5lck5vZGU6OmdldEF6aW11dGhFbGV2YXRpbwogICAgIEZsb2F0UG9pbnQzRCBwcm9q
ZWN0ZWRTb3VyY2UgPSBzb3VyY2VMaXN0ZW5lciAtIHVwUHJvamVjdGlvbiAqIHVwOwogICAgIHBy
b2plY3RlZFNvdXJjZS5ub3JtYWxpemUoKTsKIAotICAgIGF6aW11dGggPSAxODAuMCAqIGFjb3Mo
cHJvamVjdGVkU291cmNlLmRvdChsaXN0ZW5lclJpZ2h0KSkgLyBNX1BJOworICAgIGF6aW11dGgg
PSAxODAuMCAqIGFjb3MocHJvamVjdGVkU291cmNlLmRvdChsaXN0ZW5lclJpZ2h0KSkgLyBwaURv
dWJsZTsKICAgICBmaXhOQU5zKGF6aW11dGgpOyAvLyBhdm9pZCBpbGxlZ2FsIHZhbHVlcwogCiAg
ICAgLy8gU291cmNlICBpbiBmcm9udCBvciBiZWhpbmQgdGhlIGxpc3RlbmVyCkBAIC0yMDgsNyAr
MjA4LDcgQEAgdm9pZCBBdWRpb1Bhbm5lck5vZGU6OmdldEF6aW11dGhFbGV2YXRpbwogICAgICAg
ICBhemltdXRoID0gNDUwLjAgLSBhemltdXRoOwogCiAgICAgLy8gRWxldmF0aW9uCi0gICAgZG91
YmxlIGVsZXZhdGlvbiA9IDkwLjAgLSAxODAuMCAqIGFjb3Moc291cmNlTGlzdGVuZXIuZG90KHVw
KSkgLyBNX1BJOworICAgIGRvdWJsZSBlbGV2YXRpb24gPSA5MC4wIC0gMTgwLjAgKiBhY29zKHNv
dXJjZUxpc3RlbmVyLmRvdCh1cCkpIC8gcGlEb3VibGU7CiAgICAgZml4TkFOcyhhemltdXRoKTsg
Ly8gYXZvaWQgaWxsZWdhbCB2YWx1ZXMKIAogICAgIGlmIChlbGV2YXRpb24gPiA5MC4wKQpJbmRl
eDogV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS93ZWJhdWRp
by9BdWRpb1BhcmFtLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpbmNsdWRlICJB
dWRpb1BhcmFtLmgiCisKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorCitjb25zdCBkb3Vi
bGUgQXVkaW9QYXJhbTo6RGVmYXVsdFNtb290aGluZ0NvbnN0YW50ID0gMC4wNTsKK2NvbnN0IGRv
dWJsZSBBdWRpb1BhcmFtOjpTbmFwVGhyZXNob2xkID0gMC4wMDE7CisKK3ZvaWQgQXVkaW9QYXJh
bTo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpCit7CisgICAgLy8gQ2hlY2sgYWdhaW5zdCBKYXZhU2Ny
aXB0IGdpdmluZyB1cyBib2d1cyBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCisgICAgLy8gRG9uJ3Qg
QVNTRVJULCBzaW5jZSB0aGlzIGNhbiBoYXBwZW4gaWYgc29tZWJvZHkgd3JpdGVzIGJhZCBKUy4K
KyAgICBpZiAoIWlzbmFuKHZhbHVlKSAmJiAhaXNpbmYodmFsdWUpKQorICAgICAgICBtX3ZhbHVl
ID0gdmFsdWU7Cit9CisKK2Jvb2wgQXVkaW9QYXJhbTo6c21vb3RoKCkKK3sKKyAgICBpZiAobV9z
bW9vdGhlZFZhbHVlID09IG1fdmFsdWUpIHsKKyAgICAgICAgLy8gU21vb3RoZWQgdmFsdWUgaGFz
IGFscmVhZHkgYXBwcm9hY2hlZCBhbmQgc25hcHBlZCB0byB2YWx1ZS4KKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgLy8gRXhwb25lbnRpYWwgYXBwcm9hY2gKKyAgICBtX3Ntb290
aGVkVmFsdWUgKz0gKG1fdmFsdWUgLSBtX3Ntb290aGVkVmFsdWUpICogbV9zbW9vdGhpbmdDb25z
dGFudDsKKworICAgIC8vIElmIHdlIGdldCBjbG9zZSBlbm91Z2ggdGhlbiBzbmFwIHRvIGFjdHVh
bCB2YWx1ZS4KKyAgICBpZiAoZmFicyhtX3Ntb290aGVkVmFsdWUgLSBtX3ZhbHVlKSA8IFNuYXBU
aHJlc2hvbGQpIC8vIEZJWE1FOiB0aGUgdGhyZXNob2xkIG5lZWRzIHRvIGJlIGFkanVzdGFibGUg
ZGVwZW5kaW5nIG9uIHJhbmdlIC0gYnV0IHRoaXMgaXMgT0sgZ2VuZXJhbCBwdXJwb3NlIHZhbHVl
LgorICAgICAgICBtX3Ntb290aGVkVmFsdWUgPSBtX3ZhbHVlOworCisgICAgcmV0dXJuIGZhbHNl
OworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJh
bS5oCShyZXZpc2lvbiA3MzQxMikKKysrIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjZGVmaW5lIEF1ZGlvUGFyYW1faAogCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpAQCAtMzksOCArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEF1ZGlvUGFyYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxBdWRpb1BhcmFtPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBEZWZhdWx0U21vb3RoaW5nQ29uc3RhbnQgPSAwLjA1
OwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgU25hcFRocmVzaG9sZCA9IDAuMDAxOworICAgIHN0
YXRpYyBjb25zdCBkb3VibGUgRGVmYXVsdFNtb290aGluZ0NvbnN0YW50OworICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgU25hcFRocmVzaG9sZDsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlv
UGFyYW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBkZWZhdWx0VmFsdWUsIGRv
dWJsZSBtaW5WYWx1ZSwgZG91YmxlIG1heFZhbHVlLCB1bnNpZ25lZCB1bml0cyA9IDApCiAgICAg
ewpAQCAtNjEsMTMgKzYwLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obV92YWx1ZSk7IH0KICAgICAKLSAgICB2b2lkIHNl
dFZhbHVlKGZsb2F0IHZhbHVlKQotICAgIHsKLSAgICAgICAgLy8gQ2hlY2sgYWdhaW5zdCBKYXZh
U2NyaXB0IGdpdmluZyB1cyBib2d1cyBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi0gICAgICAgIC8v
IERvbid0IEFTU0VSVCwgc2luY2UgdGhpcyBjYW4gaGFwcGVuIGlmIHNvbWVib2R5IHdyaXRlcyBi
YWQgSlMuCi0gICAgICAgIGlmICghaXNuYW4odmFsdWUpICYmICFpc2luZih2YWx1ZSkpCi0gICAg
ICAgICAgICBtX3ZhbHVlID0gdmFsdWU7Ci0gICAgfQorICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQp
OwogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIApAQCAtODQs
MjIgKzc3LDcgQEAgcHVibGljOgogCiAgICAgLy8gU21vb3RobHkgZXhwb25lbnRpYWxseSBhcHBy
b2FjaGVzIHRvIChkZS16aXBwZXJzKSB0aGUgZGVzaXJlZCB2YWx1ZS4KICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgc21vb3RoZWQgdmFsdWUgaGFzIGFscmVhZHkgc25hcHBlZCBleGFjdGx5IHRvIHZh
bHVlLgotICAgIGJvb2wgc21vb3RoKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3Ntb290aGVkVmFs
dWUgPT0gbV92YWx1ZSkgewotICAgICAgICAgICAgLy8gU21vb3RoZWQgdmFsdWUgaGFzIGFscmVh
ZHkgYXBwcm9hY2hlZCBhbmQgc25hcHBlZCB0byB2YWx1ZS4KLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRXhwb25lbnRpYWwgYXBwcm9hY2gKLSAgICAg
ICAgbV9zbW9vdGhlZFZhbHVlICs9IChtX3ZhbHVlIC0gbV9zbW9vdGhlZFZhbHVlKSAqIG1fc21v
b3RoaW5nQ29uc3RhbnQ7Ci0KLSAgICAgICAgLy8gSWYgd2UgZ2V0IGNsb3NlIGVub3VnaCB0aGVu
IHNuYXAgdG8gYWN0dWFsIHZhbHVlLgotICAgICAgICBpZiAoZmFicyhtX3Ntb290aGVkVmFsdWUg
LSBtX3ZhbHVlKSA8IFNuYXBUaHJlc2hvbGQpIC8vIEZJWE1FOiB0aGUgdGhyZXNob2xkIG5lZWRz
IHRvIGJlIGFkanVzdGFibGUgZGVwZW5kaW5nIG9uIHJhbmdlIC0gYnV0IHRoaXMgaXMgT0sgZ2Vu
ZXJhbCBwdXJwb3NlIHZhbHVlLgotICAgICAgICAgICAgbV9zbW9vdGhlZFZhbHVlID0gbV92YWx1
ZTsKLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIGJvb2wgc21vb3RoKCk7CiAK
ICAgICB2b2lkIHJlc2V0U21vb3RoZWRWYWx1ZSgpIHsgbV9zbW9vdGhlZFZhbHVlID0gbV92YWx1
ZTsgfQogICAgIHZvaWQgc2V0U21vb3RoaW5nQ29uc3RhbnQoZG91YmxlIGspIHsgbV9zbW9vdGhp
bmdDb25zdGFudCA9IGs7IH0KSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNw
cAkocmV2aXNpb24gNzM0MTIpCisrKyBXZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8YWxnb3JpdGht
PgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV4Lmg+CisjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CkBAIC0xMzcsNyArMTM4LDcgQEAgdm9pZCBhcHBseVdpbmRvdyhmbG9h
dCogcCwgc2l6ZV90IG4pCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsr
aSkgewogICAgICAgICBkb3VibGUgeCA9IHN0YXRpY19jYXN0PGRvdWJsZT4oaSkgLyBzdGF0aWNf
Y2FzdDxkb3VibGU+KG4pOwotICAgICAgICBkb3VibGUgd2luZG93ID0gYTAgLSBhMSAqIGNvcygy
LjAgKiBNX1BJICogeCkgKyBhMiAqIGNvcyg0LjAgKiBNX1BJICogeCk7CisgICAgICAgIGRvdWJs
ZSB3aW5kb3cgPSBhMCAtIGExICogY29zKDIuMCAqIHBpRG91YmxlICogeCkgKyBhMiAqIGNvcyg0
LjAgKiBwaURvdWJsZSAqIHgpOwogICAgICAgICBwW2ldICo9IGZsb2F0KHdpbmRvdyk7CiAgICAg
fQogfQo=
</data>
<flag name="review"
          id="66598"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>