<?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>118074</bug_id>
          
          <creation_ts>2013-06-26 13:04:00 -0700</creation_ts>
          <short_desc>Add JSStringCreateWithCharactersNoCopy SPI</short_desc>
          <delta_ts>2013-06-26 16:24:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>903858</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-06-26 13:04:00 -0700</bug_when>
    <thetext>Add JSStringCreateWithCharactersNoCopy SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903860</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-06-26 13:06:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/14279905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903865</commentid>
    <comment_count>2</comment_count>
      <attachid>205520</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-06-26 13:17:29 -0700</bug_when>
    <thetext>Created attachment 205520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903866</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-26 13:19:55 -0700</bug_when>
    <thetext>Attachment 205520 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSStringRef.cpp&apos;, u&apos;Source/JavaScriptCore/API/JSStringRefPrivate.h&apos;, u&apos;Source/JavaScriptCore/API/OpaqueJSString.h&apos;, u&apos;Source/JavaScriptCore/API/tests/testapi.c&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/text/StringImpl.cpp&apos;, u&apos;Source/WTF/wtf/text/StringImpl.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/text/StringImpl.h:772:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WTF/wtf/text/StringImpl.h:1365:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 2 in 9 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>903939</commentid>
    <comment_count>4</comment_count>
      <attachid>205520</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-26 15:17:33 -0700</bug_when>
    <thetext>Comment on attachment 205520
Patch

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

r=me

&gt; Source/WTF/wtf/text/StringImpl.h:774
&gt; +        else

No else, please.

&gt; Source/WTF/wtf/text/StringImpl.h:1367
&gt; +        else

Ditto.

&gt; Source/WTF/wtf/text/StringImpl.h:1373
&gt; -    return create(m_data16, m_length);
&gt; +    else

Boo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903969</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-06-26 16:24:21 -0700</bug_when>
    <thetext>Committed r152052: &lt;http://trac.webkit.org/changeset/152052&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205520</attachid>
            <date>2013-06-26 13:17:29 -0700</date>
            <delta_ts>2013-06-26 15:17:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118074-20130626131549.patch</filename>
            <type>text/plain</type>
            <size>19266</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTU4ZDVlMWM4ZGVhNmQ3YjIzOWU5MzRmODllN2E2ZWExZTMwNzNlLi5kMTg3OTM4YTk4MzNlZmIz
MDdhYTRkYjQ5ZGNlMTgyNThmYjIxNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMy0wNi0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzTm9Db3B5IFNQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MDc0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDI3OTkwNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAg
ICAgIChKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzTm9Db3B5KToKKyAgICAgICAgQ3JlYXRl
IGEgbmV3IE9wYXF1ZUpTU3RyaW5nLCB1c2luZyB0aGUgbmV3bHkgYWRkZWQgU3RyaW5nSW1wbDo6
Y3JlYXRlV2l0aG91dENvcHlpbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiBBUEkvSlNTdHJpbmdS
ZWZQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBob21lIGZvciB0aGUgSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weSBmdW5jdGlvbi4KKworICAgICAgICAqIEFQSS9PcGFx
dWVKU1N0cmluZy5oOgorICAgICAgICAoT3BhcXVlSlNTdHJpbmc6Ok9wYXF1ZUpTU3RyaW5nKToK
KyAgICAgICAgSnVzdCBjYWxsIGlzb2xhdGVkQ29weSBvbiB0aGUgcGFzc2VkIGluIHN0cmluZy4K
KworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgIEFkZCBhbiBBUEkgdGVz
dCBmb3IgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcg
ZmlsZXMuCisKIDIwMTMtMDYtMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgSlNTdHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2Njc2
MDg4MGQ3YmQ1YWI4MmY4ZWU2M2Q5YWE4MWNlZjAxMDBjYTBiLi5jNjhjOWM3Mzk1ZGFmNDc0NDBk
MmM0MWQzMTc5MTQzMGJjZGUxYjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA2LTI2ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgwNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE0Mjc5OTA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6
OmNyZWF0ZUZyb21MaXRlcmFsKToKKyAgICAgICAgVXNlIHRoZSBuZXcgQ29uc3RydWN0V2l0aG91
dENvcHlpbmcgY29uc3RydWN0b3IsIHBhc3NpbmcgRG9lc0hhdmVUZXJtaW5hdGluZ051bGxDaGFy
YWN0ZXIgdG8gaXQuCisgICAgICAgIENoYW5nZSB0aGUgb3RoZXIgY3JlYXRlRnJvbUxpdGVyYWwg
b3ZlcmxvYWQgdG8ganVzdCBjYWxsIHRoZSBmaXJzdC4KKworICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyk6CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25z
IGZvciBjcmVhdGluZyBzdHJpbmdzIHRoYXQgc2hvdWxkbid0IGNvcHkgdGhlaXIgdW5kZXJseWlu
ZyBkYXRhLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RG
OjpTdHJpbmdJbXBsOjpTdHJpbmdJbXBsKToKKyAgICAgICAgUmVuYW1lIHRoZSBDb25zdHJ1Y3RG
cm9tTGl0ZXJhbFRhZyBjb25zdHJ1Y3RvciBlbnVtIHRvIENvbnN0cnVjdFdpdGhvdXRDb3B5aW5n
VGFnLiBDaGFuZ2UgdGhlIGNvbnN0cnVjdG9yCisgICAgICAgIHRvIHRha2UgYW4gZW51bSB0aGF0
IHN0YXRlcyB3aGV0aGVyIHRoZSBzdHJpbmcgaGFzIGEgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0
ZXIgb3Igbm90LgorCisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFs
KToKKyAgICAgICAgQ2FsbCBjcmVhdGVXaXRob3V0Q29weWluZy4KKworICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjpyZXF1aXJlc0NvcHkpOgorICAgICAgICBSZW5hbWUgdGhpcyBmcm9tIGlzQVND
SUlMaXRlcmFsKCkgYW5kIG1ha2UgaXQgbW9yZSBnZW5lcmljIHNvIGl0IGNhbiBoYW5kbGUgMTYt
Yml0IHN0cmluZ3MgYXMgd2VsbC4KKworICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjppc29sYXRl
ZENvcHkpOgorICAgICAgICBJZiB0aGlzIHN0cmluZyBkb2Vzbid0IGhhdmUgdG8gYmUgY29waWVk
LCBqdXN0IGNyZWF0ZSBhIG5ldyBTdHJpbmdJbXBsIG9iamVjdCB0aGF0IHJlZmVyZW5jZXMgdGhl
IGN1cnJlbnQgZGF0YS4KKwogMjAxMy0wNi0yNCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFwcGxlV2luIGJ1aWxkIGZpeCwgZm9sbG93
dXAgdG8gcjE1MTkxNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
dHJpbmdSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAK
aW5kZXggN2YyMTY4ZGMyNGVhMGRmMDI3YjkyODAxNWVhNDdlZmZkZjcwZGY0MS4uNDM3Y2FiMzQ3
NDdhNWI0N2Q5ZGUyOTljZTQ1YjA1MTE5ZjAwMDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1N0cmluZ1JlZi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nUmVmLmgiCisjaW5jbHVkZSAiSlNTdHJpbmdSZWZQcml2
YXRlLmgiCiAKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiT3Bh
cXVlSlNTdHJpbmcuaCIKQEAgLTU5LDYgKzYwLDEyIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZykKICAgICByZXR1cm4gT3BhcXVl
SlNTdHJpbmc6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKIH0KIAorSlNTdHJpbmdSZWYgSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weShjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVt
Q2hhcnMpCit7CisgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIHJldHVybiBPcGFxdWVK
U1N0cmluZzo6Y3JlYXRlKFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNoYXJzLCBu
dW1DaGFycywgV1RGOjpEb2VzTm90SGF2ZVRlcm1pbmF0aW5nTnVsbENoYXJhY3RlcikpLmxlYWtS
ZWYoKTsKK30KKwogSlNTdHJpbmdSZWYgSlNTdHJpbmdSZXRhaW4oSlNTdHJpbmdSZWYgc3RyaW5n
KQogewogICAgIHN0cmluZy0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU3RyaW5nUmVmUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1N0cmluZ1JlZlByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWRiODA2ZWViNGZjM2RmYzViYmY0N2Ni
YmMzNzI1MTdlYmFmNTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1N0cmluZ1JlZlByaXZhdGUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU1N0cmluZ1JlZlByaXZh
dGVfaAorI2RlZmluZSBKU1N0cmluZ1JlZlByaXZhdGVfaAorCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNTdHJpbmdSZWYuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVyc05vQ29weShjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogSlNTdHJpbmdSZWZQcml2YXRl
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJp
bmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAppbmRleCA2
MTliMjIzM2ZiYzYxYjM5ZTYzOGIwMzczMzAxMTUxYjEyM2RjMzc2Li5jMzc0YjU2N2FiYjUyNTk4
NjRjNmRhNDYwZDk0ZDViODZhOTY2MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5oCkBAIC03MCwxMiArNzAsOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAg
IE9wYXF1ZUpTU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICA6IG1fc3RyaW5n
KHN0cmluZy5pc29sYXRlZENvcHkoKSkKICAgICB7Ci0gICAgICAgIC8vIE1ha2UgYSBjb3B5IG9m
IHRoZSBzb3VyY2Ugc3RyaW5nLgotICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAg
ICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5n
dGgoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5nKHN0cmlu
Zy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKICAgICB9CiAKICAgICBPcGFxdWVK
U1N0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwppbmRleCA0N2U5NWE0ZjY3OGZiMjcy
YjRlNzc5YTk1MmY1MWU1MmY3ZjllYjcxLi5hNTNhMzQwOTc2YmM1YzI5OTVhNDI1ZDZhMDc0ZmE5
NWE0YzNkYjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGkuYworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKICNpbmNs
dWRlICJKU09iamVjdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU1NjcmlwdFJlZlByaXZhdGUu
aCIKKyNpbmNsdWRlICJKU1N0cmluZ1JlZlByaXZhdGUuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAj
ZGVmaW5lIEFTU0VSVF9ESVNBQkxFRCAwCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAg
LTEyMDUsNiArMTIwNiwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAg
IGZyZWUoYnVmZmVyKTsKICAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0
ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0cmluZ1dpdGhDaGFy
YWN0ZXJzKTsKIAorICAgIEpTQ2hhciBjb25zdGFudFN0cmluZ1tdID0geyAnSCcsICdlJywgJ2wn
LCAnbCcsICdvJywgfTsKKyAgICBKU1N0cmluZ1JlZiBjb25zdGFudFN0cmluZ1JlZiA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoY29uc3RhbnRTdHJpbmcsIHNpemVvZihjb25z
dGFudFN0cmluZykgLyBzaXplb2YoY29uc3RhbnRTdHJpbmdbMF0pKTsKKyAgICBBU1NFUlQoSlNT
dHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGNvbnN0YW50U3RyaW5nUmVmKSA9PSBjb25zdGFudFN0cmlu
Zyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGNvbnN0YW50U3RyaW5nUmVmKTsKKwogICAgIEFTU0VS
VChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBOVUxMKSA9PSBrSlNUeXBlTnVsbCk7CiAgICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzVW5kZWZpbmVkKSA9PSBrSlNUeXBlVW5kZWZp
bmVkKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNOdWxsKSA9PSBrSlNU
eXBlTnVsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNlODNiOGViMzk5Mjlk
MjQ2YmVhNTYzNWVmYjJmMGU4OGM3NDkxY2IuLmY5MDdmMjhmOTE3NTZhNzFhMjRkYmI5Nzg0YTFk
ZWRlOWQzN2ZiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDYsNiArNTA2
LDcgQEAKIAkJMTRGNzI1NjUxNEVFMjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEY3MjU2MzE0
RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmNwcCAqLzsgfTsKIAkJMTRGNzI1NjYx
NEVFMjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGNzI1NjQxNEVFMjY1RTAwQjE2NTJCIC8qIFdl
YWtIYW5kbGVPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTE0Rjk3NDQ3MTM4Qzg1M0UwMERBMUM2NyAvKiBIZWFwUm9vdFZpc2l0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Rjk3NDQ2MTM4
Qzg1M0UwMERBMUM2NyAvKiBIZWFwUm9vdFZpc2l0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyog
SlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFD
RjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsu
Y3BwICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1
QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1
QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyog
SlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKQEAgLTEzNzksNiArMTM4MCw3IEBACiAJCTE0RjcyNTYz
MTRFRTI2NUUwMEIxNjUyQiAvKiBXZWFrSGFuZGxlT3duZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2Vha0hhbmRsZU93bmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRGNzI1NjQxNEVFMjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrSGFuZGxlT3duZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8q
IEhlYXBSb290VmlzaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFw
Um9vdFZpc2l0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyOEQ0QTcxNzdC
NzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1N0cmluZ1JlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vhay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDOTA1MTQyMEJBOUU4QTcwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA1MTQzMEJBOUU4QTcwMDgxRTlEMCAvKiBKYXZhU2Ny
aXB0Q29yZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKYXZhU2Ny
aXB0Q29yZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTMsNiAr
MjI1NSw3IEBACiAJCQkJRTEyNEE4RjYwRTU1NTc3NTAwMzA5MUYxIC8qIE9wYXF1ZUpTU3RyaW5n
LmNwcCAqLywKIAkJCQlFMTI0QThGNTBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcu
aCAqLywKIAkJCQk1REUzRDBGNDBERDhEREZCMDA0Njg3MTQgLyogV2ViS2l0QXZhaWxhYmlsaXR5
LmggKi8sCisJCQkJMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0
ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBBUEk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMzAzNSw2ICszMDM4LDcgQEAKIAkJCQkxNDQ4MzZFNzEzMkRBN0JFMDA1QkU3ODUgLyog
Q29uc2VydmF0aXZlUm9vdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0Y2MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBDb25zdHJ1Y3REYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkVBRDJGQzE0
RjAyNDk4MDBBNEIxNTkgLyogQ29waWVkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
QTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMkM4RDAzMDE0QTNDRUZDMDA1NzhFNjUgLyogQ29waWVkQmxvY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMyRkM5QkQzMTY2NDRERkIwMDgxMEQzMyAvKiBDb3BpZWRCbG9ja0lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBD
b3BpZWRTcGFjZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApp
bmRleCAzMzdjNjliNGQ2NzUwODAxYzk0MThiZDMyOWJlZWE3YWNjODJkNjA2Li5hMzQyOGVmMjY4
ZjQ3M2ViNDNjZWZjNzdiN2UxM2VhMGMwMTQwMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5jcHAKQEAgLTE1OCwxNSArMTU4LDI4IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5n
SW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycywgdW5zCiB7CiAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShsZW5ndGgsICJVc2UgU3RyaW5nSW1wbDo6ZW1wdHkoKSB0
byBjcmVhdGUgYW4gZW1wdHkgc3RyaW5nIik7CiAgICAgQVNTRVJUKGNoYXJhY3RlcnNBcmVBbGxB
U0NJSTxMQ2hhcj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBs
ZW5ndGgpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmluZ0ltcGwoY2hhcmFjdGVycywg
bGVuZ3RoLCBDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U3RyaW5nSW1wbChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxl
bmd0aCwgRG9lc0hhdmVUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIsIENvbnN0cnVjdFdpdGhvdXRD
b3B5aW5nKSk7CiB9CiAKIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRl
RnJvbUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKIHsKLSAgICBzaXplX3QgbGVuZ3Ro
ID0gc3RybGVuKGNoYXJhY3RlcnMpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobGVuZ3RoLCAi
VXNlIFN0cmluZ0ltcGw6OmVtcHR5KCkgdG8gY3JlYXRlIGFuIGVtcHR5IHN0cmluZyIpOwotICAg
IEFTU0VSVChjaGFyYWN0ZXJzQXJlQWxsQVNDSUk8TENoYXI+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTdHJpbmdJbXBsKGNoYXJhY3RlcnMsIGxlbmd0aCwgQ29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICByZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3Rl
cnMpKTsKK30KKworUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVXaXRo
b3V0Q29weWluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBIYXNU
ZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIgaGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyKQorewor
ICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gZW1wdHkoKTsKKworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3RyaW5nSW1wbChjaGFyYWN0ZXJzLCBsZW5ndGgsIGhhc1Rlcm1pbmF0aW5n
TnVsbENoYXJhY3RlciwgQ29uc3RydWN0V2l0aG91dENvcHlpbmcpKTsKK30KKworUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBMQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0
ZXIgaGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyKQoreworICAgIGlmICghbGVuZ3RoKQorICAg
ICAgICByZXR1cm4gZW1wdHkoKTsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nSW1w
bChjaGFyYWN0ZXJzLCBsZW5ndGgsIGhhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3RlciwgQ29uc3Ry
dWN0V2l0aG91dENvcHlpbmcpKTsKIH0KIAogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJ
bXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCAyMWZmMjdiMTg4MmUxYTUyYzUwMmI3ZjQyMDky
ODYyYjA0ZGU4MDQxLi44MTY4MWZkMmY3ZjZhODA3MjlmMmEzZDgwZDQzOGY5MWEzYmFmY2U5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNjgsNyArNjgsMTYgQEAgc3RydWN0IFN1YnN0
cmluZ1RyYW5zbGF0b3I7CiBzdHJ1Y3QgVUNoYXJCdWZmZXJUcmFuc2xhdG9yOwogdGVtcGxhdGU8
dHlwZW5hbWU+IGNsYXNzIFJldGFpblB0cjsKIAotZW51bSBUZXh0Q2FzZVNlbnNpdGl2aXR5IHsg
VGV4dENhc2VTZW5zaXRpdmUsIFRleHRDYXNlSW5zZW5zaXRpdmUgfTsKK2VudW0gVGV4dENhc2VT
ZW5zaXRpdml0eSB7CisgICAgVGV4dENhc2VTZW5zaXRpdmUsCisgICAgVGV4dENhc2VJbnNlbnNp
dGl2ZQorfTsKKworZW51bSBIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIgeworICAgIERvZXNO
b3RIYXZlVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyLAorICAgIERvZXNIYXZlVGVybWluYXRpbmdO
dWxsQ2hhcmFjdGVyLAorfTsKKwogCiB0eXBlZGVmIGJvb2wgKCpDaGFyYWN0ZXJNYXRjaEZ1bmN0
aW9uUHRyKShVQ2hhcik7CiB0eXBlZGVmIGJvb2wgKCpJc1doaXRlU3BhY2VGdW5jdGlvblB0ciko
VUNoYXIpOwpAQCAtMjM5LDE3ICsyNDgsMzEgQEAgcHJpdmF0ZToKICAgICAgICAgU1RSSU5HX1NU
QVRTX0FERF84QklUX1NUUklORyhtX2xlbmd0aCk7CiAgICAgfQogCi0gICAgZW51bSBDb25zdHJ1
Y3RGcm9tTGl0ZXJhbFRhZyB7IENvbnN0cnVjdEZyb21MaXRlcmFsIH07Ci0gICAgU3RyaW5nSW1w
bChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvbnN0cnVjdEZyb21M
aXRlcmFsVGFnKQorICAgIGVudW0gQ29uc3RydWN0V2l0aG91dENvcHlpbmdUYWcgeyBDb25zdHJ1
Y3RXaXRob3V0Q29weWluZyB9OworICAgIFN0cmluZ0ltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCwgSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyIGhhc1Rlcm1p
bmF0aW5nTnVsbENoYXJhY3RlciwgQ29uc3RydWN0V2l0aG91dENvcHlpbmdUYWcpCiAgICAgICAg
IDogbV9yZWZDb3VudChzX3JlZkNvdW50SW5jcmVtZW50KQogICAgICAgICAsIG1fbGVuZ3RoKGxl
bmd0aCkKLSAgICAgICAgLCBtX2RhdGE4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihj
aGFyYWN0ZXJzKSkKKyAgICAgICAgLCBtX2RhdGExNihjaGFyYWN0ZXJzKQogICAgICAgICAsIG1f
YnVmZmVyKDApCi0gICAgICAgICwgbV9oYXNoQW5kRmxhZ3Moc19oYXNoRmxhZzhCaXRCdWZmZXIg
fCBCdWZmZXJJbnRlcm5hbCB8IHNfaGFzaEZsYWdIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIp
CisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3MoQnVmZmVySW50ZXJuYWwgfCAoaGFzVGVybWluYXRp
bmdOdWxsQ2hhcmFjdGVyID8gc19oYXNoRmxhZ0hhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3RlciA6
IDApKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZGF0YTE2KTsKKyAgICAgICAgQVNTRVJUKG1f
bGVuZ3RoKTsKKyAgICAgICAgQVNTRVJUKCEobV9oYXNoQW5kRmxhZ3MgJiBzX2hhc2hGbGFnSGFz
VGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyKSB8fCAhY2hhcmFjdGVyc1tsZW5ndGhdKTsKKworICAg
ICAgICBTVFJJTkdfU1RBVFNfQUREXzE2QklUX1NUUklORygwKTsKKyAgICB9CisKKyAgICBTdHJp
bmdJbXBsKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIEhhc1Rlcm1p
bmF0aW5nTnVsbENoYXJhY3RlciBoYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIsIENvbnN0cnVj
dFdpdGhvdXRDb3B5aW5nVGFnKQorICAgICAgICA6IG1fcmVmQ291bnQoc19yZWZDb3VudEluY3Jl
bWVudCkKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgICAgICwgbV9kYXRhOChjaGFy
YWN0ZXJzKQorICAgICAgICAsIG1fYnVmZmVyKDApCisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3Mo
c19oYXNoRmxhZzhCaXRCdWZmZXIgfCBCdWZmZXJJbnRlcm5hbCB8IChoYXNUZXJtaW5hdGluZ051
bGxDaGFyYWN0ZXIgPyBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyIDogMCkp
CiAgICAgewogICAgICAgICBBU1NFUlQobV9kYXRhOCk7CiAgICAgICAgIEFTU0VSVChtX2xlbmd0
aCk7Ci0gICAgICAgIEFTU0VSVCghY2hhcmFjdGVyc1tsZW5ndGhdKTsKKyAgICAgICAgQVNTRVJU
KCEobV9oYXNoQW5kRmxhZ3MgJiBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVy
KSB8fCAhY2hhcmFjdGVyc1tsZW5ndGhdKTsKIAogICAgICAgICBTVFJJTkdfU1RBVFNfQUREXzhC
SVRfU1RSSU5HKDApOwogICAgIH0KQEAgLTM5MiwxNyArNDE1LDIyIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdJbXBsKHJlcC0+bV9kYXRhMTYgKyBvZmZzZXQs
IGxlbmd0aCwgb3duZXJSZXApKTsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkg
c3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBj
aGFyYWN0ZXJzQ291bnQ+CiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgUGFzc1JlZlB0cjxTdHJp
bmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFj
dGVyc0NvdW50XSkKICAgICB7CiAgICAgICAgIENPTVBJTEVfQVNTRVJUKGNoYXJhY3RlcnNDb3Vu
dCA+IDEsIFN0cmluZ0ltcGxGcm9tTGl0ZXJhbE5vdEVtcHR5KTsKICAgICAgICAgQ09NUElMRV9B
U1NFUlQoKGNoYXJhY3RlcnNDb3VudCAtIDEgPD0gKCh1bnNpZ25lZCh+MCkgLSBzaXplb2YoU3Ry
aW5nSW1wbCkpIC8gc2l6ZW9mKExDaGFyKSkpLCBTdHJpbmdJbXBsRnJvbUxpdGVyYWxDYW5ub3RP
dmVyZmxvdyk7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUZyb21MaXRlcmFsKGNoYXJhY3RlcnMs
IGNoYXJhY3RlcnNDb3VudCAtIDEpOworICAgICAgICByZXR1cm4gY3JlYXRlV2l0aG91dENvcHlp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBjaGFyYWN0ZXJz
Q291bnQgLSAxLCBEb2VzSGF2ZVRlcm1pbmF0aW5nTnVsbENoYXJhY3Rlcik7CiAgICAgfQorCisg
ICAgLy8gRklYTUU6IFRyYW5zaXRpb24gb2ZmIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byBjcmVhdGVX
aXRob3V0Q29weWluZyBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiBj
aGFyYWN0ZXJzKTsKIAorICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoLCBIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIpOworICAgIFdU
Rl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBjcmVhdGVX
aXRob3V0Q29weWluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBI
YXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIpOworCiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWdu
ZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxl
bmd0aCwgVUNoYXIqJiBkYXRhKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIEFM
V0FZU19JTkxJTkUgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB0cnlDcmVhdGVVbmluaXRpYWxpemVk
KHVuc2lnbmVkIGxlbmd0aCwgVComIG91dHB1dCkKQEAgLTczNiwxMCArNzY0LDE1IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiBwcml2YXRlOgotCi0gICAgYm9vbCBpc0FTQ0lJTGl0ZXJhbCgpIGNvbnN0
CisgICAgYm9vbCByZXF1aXJlc0NvcHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlz
OEJpdCgpICYmIGJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlckludGVybmFsICYmIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fZGF0YTgpICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KHRoaXMgKyAxKTsKKyAgICAgICAgaWYgKGJ1ZmZlck93bmVyc2hpcCgpICE9IEJ1ZmZl
ckludGVybmFsKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGlzOEJp
dCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1f
ZGF0YTgpID09IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMgKyAxKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KG1fZGF0YTE2KSA9PSByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzICsgMSk7CiAg
ICAgfQogCiAgICAgLy8gVGhpcyBudW1iZXIgbXVzdCBiZSBhdCBsZWFzdCAyIHRvIGF2b2lkIHNo
YXJpbmcgZW1wdHksIG51bGwgYXMgd2VsbCBhcyAxIGNoYXJhY3RlciBzdHJpbmdzIGZyb20gU21h
bGxTdHJpbmdzLgpAQCAtMTMyOCwxMSArMTM2MSwxNyBAQCBpbmxpbmUgdW5zaWduZWQgbGVuZ3Ro
T2ZOdWxsVGVybWluYXRlZFN0cmluZyhjb25zdCBDaGFyYWN0ZXJUeXBlKiBzdHJpbmcpCiAKIGlu
bGluZSBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6Omlzb2xhdGVkQ29weSgpIGNv
bnN0CiB7Ci0gICAgaWYgKGlzQVNDSUlMaXRlcmFsKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmdJ
bXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihtX2Rh
dGE4KSwgbV9sZW5ndGgpOworICAgIGlmICghcmVxdWlyZXNDb3B5KCkpIHsKKyAgICAgICAgaWYg
KGlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRD
b3B5aW5nKG1fZGF0YTgsIG1fbGVuZ3RoLCBoYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIoKSA/
IERvZXNIYXZlVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyIDogRG9lc05vdEhhdmVUZXJtaW5hdGlu
Z051bGxDaGFyYWN0ZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gU3RyaW5n
SW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcobV9kYXRhMTYsIG1fbGVuZ3RoLCBoYXNUZXJtaW5h
dGluZ051bGxDaGFyYWN0ZXIoKSA/IERvZXNIYXZlVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyIDog
RG9lc05vdEhhdmVUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIpOworICAgIH0KKwogICAgIGlmIChp
czhCaXQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2RhdGE4LCBtX2xlbmd0aCk7Ci0gICAg
cmV0dXJuIGNyZWF0ZShtX2RhdGExNiwgbV9sZW5ndGgpOworICAgIGVsc2UKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZShtX2RhdGExNiwgbV9sZW5ndGgpOwogfQogCiBzdHJ1Y3QgU3RyaW5nSGFzaDsK
</data>
<flag name="review"
          id="227065"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>