<?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>68557</bug_id>
          
          <creation_ts>2011-09-21 12:16:26 -0700</creation_ts>
          <short_desc>Replace jsFunctionVPtr compares with a type check on the Structure.</short_desc>
          <delta_ts>2011-09-22 04:01:53 -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>
          <dependson>68603</dependson>
    
    <dependson>68606</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>471028</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-21 12:16:26 -0700</bug_when>
    <thetext>This will permit calls to still optimize to subclasses of JSFunction that have the correct type (but a different C++ vptr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471034</commentid>
    <comment_count>1</comment_count>
      <attachid>108205</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-21 12:18:57 -0700</bug_when>
    <thetext>Created attachment 108205
Fix

No perf impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471039</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 12:22:02 -0700</bug_when>
    <thetext>Attachment 108205 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...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSObject.h:42:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 16 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>471076</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-21 12:58:45 -0700</bug_when>
    <thetext>Fixed in r95666</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108205</attachid>
            <date>2011-09-21 12:18:57 -0700</date>
            <delta_ts>2011-09-21 12:22:25 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>68557.patch</filename>
            <type>text/plain</type>
            <size>21429</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU2NTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTEtMDktMjEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UganNGdW5jdGlvblZQdHIgY29tcGFyZXMgd2l0aCBhIHR5cGUgY2hl
Y2sgb24gdGhlIFN0cnVjdHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY4NTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyB3aWxsIHBlcm1pdCBjYWxscyB0byBzdGlsbCBvcHRpbWl6ZSB0byBz
dWJjbGFzc2VzIG9mIEpTRnVuY3Rpb24KKyAgICAgICAgdGhhdCBoYXZlIHRoZSBjb3JyZWN0IHR5
cGUgKGJ1dCBhIGRpZmZlcmVudCBDKysgdnB0cikuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdG9w
cyBwYXNzaW5nIHRoZSBnbG9iYWxEYXRhIGludG8gbnVtZXJvdXMgZnVuY3Rpb25zLgorCisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6R3JhcGg6OmlzRnVuY3Rpb25Db25zdGFudCk6CisgICAgICAgIChKU0M6
OkRGRzo6R3JhcGg6OnZhbHVlT2ZGdW5jdGlvbkNvbnN0YW50KToKKyAgICAgICAgKiBkZmcvREZH
SklUQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6aXNGdW5jdGlv
bkNvbnN0YW50KToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6dmFsdWVPZkZ1bmN0
aW9uQ29uc3RhbnQpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAg
KiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
Ojpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9K
SVRDYWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsVmFyYXJncyk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKiBqaXQv
SklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsVmFyYXJn
cyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAg
KiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRKdW1wSWZO
b3RUeXBlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJ
TkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmg6CisgICAg
ICAgIChKU0M6OmlzSG9zdEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpnZXRKU0Z1bmN0aW9uKToKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKwog
MjAxMS0wOS0yMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEph
dmFTY3JpcHRDb3JlIFBhcnQgb2Y6IFByZXZlbnQgdGhlIFdlYktpdCBmcmFtZXdvcmtzIGZyb20g
ZGVmaW5pbmcgaW5hcHByb3ByaWF0ZWx5LW5hbWVkIE9iamVjdGl2ZS1DIGNsYXNzZXMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShy
ZXZpc2lvbiA5NTY1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzA1LDcgKzEzMDUsNyBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBvcF9jYWxsOiB7CiAgICAgICAgICAgICBOb2RlSW5kZXggY2FsbFRhcmdldCA9IGdldChjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLmlz
RnVuY3Rpb25Db25zdGFudChtX2NvZGVCbG9jaywgKm1fZ2xvYmFsRGF0YSwgY2FsbFRhcmdldCkp
IHsKKyAgICAgICAgICAgIGlmIChtX2dyYXBoLmlzRnVuY3Rpb25Db25zdGFudChtX2NvZGVCbG9j
aywgY2FsbFRhcmdldCkpIHsKICAgICAgICAgICAgICAgICBpbnQgYXJnQ291bnQgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgICAgICAgICAgICAgIGludCByZWdpc3Rlck9m
ZnNldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICAgICAg
aW50IGZpcnN0QXJnID0gcmVnaXN0ZXJPZmZzZXQgLSBhcmdDb3VudCAtIFJlZ2lzdGVyRmlsZTo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKQEAgLTEzMjAsNyArMTMyMCw3IEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICAgICAgdXNlc1Jlc3Vs
dCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIERGRzo6SW50cmluc2ljIGludHJpbnNpYyA9IG1fZ3JhcGgudmFsdWVPZkZ1bmN0aW9u
Q29uc3RhbnQobV9jb2RlQmxvY2ssICptX2dsb2JhbERhdGEsIGNhbGxUYXJnZXQpLT5leGVjdXRh
YmxlKCktPmludHJpbnNpYygpOworICAgICAgICAgICAgICAgIERGRzo6SW50cmluc2ljIGludHJp
bnNpYyA9IG1fZ3JhcGgudmFsdWVPZkZ1bmN0aW9uQ29uc3RhbnQobV9jb2RlQmxvY2ssIGNhbGxU
YXJnZXQpLT5leGVjdXRhYmxlKCktPmludHJpbnNpYygpOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGlmIChoYW5kbGVJbnRyaW5zaWModXNlc1Jlc3VsdCwgcmVzdWx0T3BlcmFu
ZCwgaW50cmluc2ljLCBmaXJzdEFyZywgbGFzdEFyZykpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gTkVYVF9PUENPREUoKSBoYXMgdG8gYmUgaW5zaWRlIGJyYWNlcy4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzEsMTEgKzI3MSwx
MSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYXQobm9kZUluZGV4KS5pc0Jvb2xl
YW5Db25zdGFudChjb2RlQmxvY2spOwogICAgIH0KLSAgICBib29sIGlzRnVuY3Rpb25Db25zdGFu
dChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOb2RlSW5k
ZXggbm9kZUluZGV4KQorICAgIGJvb2wgaXNGdW5jdGlvbkNvbnN0YW50KENvZGVCbG9jayogY29k
ZUJsb2NrLCBOb2RlSW5kZXggbm9kZUluZGV4KQogICAgIHsKICAgICAgICAgaWYgKCFpc0pTQ29u
c3RhbnQobm9kZUluZGV4KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYg
KCFnZXRKU0Z1bmN0aW9uKGdsb2JhbERhdGEsIHZhbHVlT2ZKU0NvbnN0YW50KGNvZGVCbG9jaywg
bm9kZUluZGV4KSkpCisgICAgICAgIGlmICghZ2V0SlNGdW5jdGlvbih2YWx1ZU9mSlNDb25zdGFu
dChjb2RlQmxvY2ssIG5vZGVJbmRleCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yOTgsOSArMjk4LDkgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIHZhbHVlT2ZKU0NvbnN0YW50Tm9kZShjb2RlQmxvY2ssIG5vZGVJ
bmRleCkuZ2V0Qm9vbGVhbigpOwogICAgIH0KLSAgICBKU0Z1bmN0aW9uKiB2YWx1ZU9mRnVuY3Rp
b25Db25zdGFudChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBOb2RlSW5kZXggbm9kZUluZGV4KQorICAgIEpTRnVuY3Rpb24qIHZhbHVlT2ZGdW5jdGlvbkNv
bnN0YW50KENvZGVCbG9jayogY29kZUJsb2NrLCBOb2RlSW5kZXggbm9kZUluZGV4KQogICAgIHsK
LSAgICAgICAgSlNDZWxsKiBmdW5jdGlvbiA9IGdldEpTRnVuY3Rpb24oZ2xvYmFsRGF0YSwgdmFs
dWVPZkpTQ29uc3RhbnQoY29kZUJsb2NrLCBub2RlSW5kZXgpKTsKKyAgICAgICAgSlNDZWxsKiBm
dW5jdGlvbiA9IGdldEpTRnVuY3Rpb24odmFsdWVPZkpTQ29uc3RhbnQoY29kZUJsb2NrLCBub2Rl
SW5kZXgpKTsKICAgICAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKICAgICAgICAgcmV0dXJuIGFzRnVu
Y3Rpb24oZnVuY3Rpb24pOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsMTMgKzI1MSwx
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RvdWJsZUNvbnN0YW50KE5vZGVJbmRleCBub2RlSW5k
ZXgpIHsgcmV0dXJuIGdyYXBoKCkuaXNEb3VibGVDb25zdGFudChjb2RlQmxvY2soKSwgbm9kZUlu
ZGV4KTsgfQogICAgIGJvb2wgaXNOdW1iZXJDb25zdGFudChOb2RlSW5kZXggbm9kZUluZGV4KSB7
IHJldHVybiBncmFwaCgpLmlzTnVtYmVyQ29uc3RhbnQoY29kZUJsb2NrKCksIG5vZGVJbmRleCk7
IH0KICAgICBib29sIGlzQm9vbGVhbkNvbnN0YW50KE5vZGVJbmRleCBub2RlSW5kZXgpIHsgcmV0
dXJuIGdyYXBoKCkuaXNCb29sZWFuQ29uc3RhbnQoY29kZUJsb2NrKCksIG5vZGVJbmRleCk7IH0K
LSAgICBib29sIGlzRnVuY3Rpb25Db25zdGFudChOb2RlSW5kZXggbm9kZUluZGV4KSB7IHJldHVy
biBncmFwaCgpLmlzRnVuY3Rpb25Db25zdGFudChjb2RlQmxvY2soKSwgKmdsb2JhbERhdGEoKSwg
bm9kZUluZGV4KTsgfQorICAgIGJvb2wgaXNGdW5jdGlvbkNvbnN0YW50KE5vZGVJbmRleCBub2Rl
SW5kZXgpIHsgcmV0dXJuIGdyYXBoKCkuaXNGdW5jdGlvbkNvbnN0YW50KGNvZGVCbG9jaygpLCBu
b2RlSW5kZXgpOyB9CiAgICAgLy8gSGVscGVyIG1ldGhvZHMgZ2V0IGNvbnN0YW50IHZhbHVlcyBm
cm9tIG5vZGVzLgogICAgIEpTVmFsdWUgdmFsdWVPZkpTQ29uc3RhbnQoTm9kZUluZGV4IG5vZGVJ
bmRleCkgeyByZXR1cm4gZ3JhcGgoKS52YWx1ZU9mSlNDb25zdGFudChjb2RlQmxvY2soKSwgbm9k
ZUluZGV4KTsgfQogICAgIGludDMyX3QgdmFsdWVPZkludDMyQ29uc3RhbnQoTm9kZUluZGV4IG5v
ZGVJbmRleCkgeyByZXR1cm4gZ3JhcGgoKS52YWx1ZU9mSW50MzJDb25zdGFudChjb2RlQmxvY2so
KSwgbm9kZUluZGV4KTsgfQogICAgIGRvdWJsZSB2YWx1ZU9mTnVtYmVyQ29uc3RhbnQoTm9kZUlu
ZGV4IG5vZGVJbmRleCkgeyByZXR1cm4gZ3JhcGgoKS52YWx1ZU9mTnVtYmVyQ29uc3RhbnQoY29k
ZUJsb2NrKCksIG5vZGVJbmRleCk7IH0KICAgICBib29sIHZhbHVlT2ZCb29sZWFuQ29uc3RhbnQo
Tm9kZUluZGV4IG5vZGVJbmRleCkgeyByZXR1cm4gZ3JhcGgoKS52YWx1ZU9mQm9vbGVhbkNvbnN0
YW50KGNvZGVCbG9jaygpLCBub2RlSW5kZXgpOyB9Ci0gICAgSlNGdW5jdGlvbiogdmFsdWVPZkZ1
bmN0aW9uQ29uc3RhbnQoTm9kZUluZGV4IG5vZGVJbmRleCkgeyByZXR1cm4gZ3JhcGgoKS52YWx1
ZU9mRnVuY3Rpb25Db25zdGFudChjb2RlQmxvY2soKSwgKmdsb2JhbERhdGEoKSwgbm9kZUluZGV4
KTsgfQorICAgIEpTRnVuY3Rpb24qIHZhbHVlT2ZGdW5jdGlvbkNvbnN0YW50KE5vZGVJbmRleCBu
b2RlSW5kZXgpIHsgcmV0dXJuIGdyYXBoKCkudmFsdWVPZkZ1bmN0aW9uQ29uc3RhbnQoY29kZUJs
b2NrKCksIG5vZGVJbmRleCk7IH0KIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgSklUIGdlbmVyYXRl
IGR5bmFtaWMsIGRlYnVnLW9ubHkgY2hlY2tzIC0gYWtpbiB0byBBU1NFUlRzLgogI2lmIEVOQUJM
RShERkdfSklUX0FTU0VSVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAkocmV2aXNpb24gOTU2NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTksNyArNTE5LDcgQEAg
aW5saW5lIHZvaWQqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbAogICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUg
PSBleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCk7Ci0gICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0
aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oKmdsb2JhbERhdGEsIGNhbGxlZUFzVmFsdWUpOworICAg
IEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFs
dWUpOwogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpCiAgICAgICAgIHJldHVybiBoYW5k
bGVIb3N0Q2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc1ZhbHVlLCBraW5kKTsKICAgICBKU0Z1bmN0
aW9uKiBjYWxsZWUgPSBhc0Z1bmN0aW9uKGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKQEAgLTU2OCw5
ICs1NjgsOCBAQCB2b2lkKiBvcGVyYXRpb25MaW5rQ29uc3RydWN0V2l0aFJldHVybkFkCiBpbmxp
bmUgdm9pZCogdmlydHVhbEZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCkKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBleGVjQ2FsbGVlLT5jYWxs
ZXJGcmFtZSgpOwotICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZleGVjLT5nbG9iYWxE
YXRhKCk7CiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Y2FsbGVlQXNW
YWx1ZSgpOwotICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9u
KCpnbG9iYWxEYXRhLCBjYWxsZWVBc1ZhbHVlKTsKKyAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rp
b25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhbGxlZUFzRnVuY3Rpb25DZWxsKSkKICAgICAgICAgcmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4
ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGtpbmQpOwogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiA5
NTY1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxNjksNyArNDE2OSw3IEBAIHNraXBfaWRfY3VzdG9tX3Nl
bGY6CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2stPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2Rl
IHx8ICFjb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKSB8fCBjYWxsRnJhbWUtPnIoY29k
ZUJsb2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKSkuanNWYWx1ZSgpKTsKICAgICAgICAgSlNWYWx1
ZSBmdW5jVmFsID0gY2FsbEZyYW1lLT5yKGZ1bmMpLmpzVmFsdWUoKTsKIAotICAgICAgICBpZiAo
aXNIb3N0RnVuY3Rpb24oY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGZ1bmNWYWwsIGdsb2JhbEZ1
bmNFdmFsKSkgeworICAgICAgICBpZiAoaXNIb3N0RnVuY3Rpb24oZnVuY1ZhbCwgZ2xvYmFsRnVu
Y0V2YWwpKSB7CiAgICAgICAgICAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lID0gY2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0OwogICAgICAgICAgICAgUmVnaXN0ZXIqIGFy
Z3YgPSBuZXdDYWxsRnJhbWUgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBh
cmdDb3VudDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiA5NTY1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
Miw2ICszMTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0TG9hZERvdWJs
ZSh1bnNpZ25lZCBpbmRleCwgRlBSZWdpc3RlcklEIHZhbHVlKTsKICAgICAgICAgdm9pZCBlbWl0
TG9hZEludDMyVG9Eb3VibGUodW5zaWduZWQgaW5kZXgsIEZQUmVnaXN0ZXJJRCB2YWx1ZSk7CiAg
ICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdE9iamVjdChSZWdpc3RlcklEIHN0cnVjdHVyZVJlZyk7
CisgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdFR5cGUoUmVnaXN0ZXJJRCBiYXNlUmVnLCBSZWdp
c3RlcklEIHNjcmF0Y2hSZWcsIEpTVHlwZSk7CiAKICAgICAgICAgdm9pZCB0ZXN0UHJvdG90eXBl
KEpTVmFsdWUsIEp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCShyZXZpc2lvbiA5NTY1MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzIsNyArNzIsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MoSW5zdHJ1Y3RpCiAg
ICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0KSwgcmVnVDIsIHJlZ1QzKTsgLy8gcmVnaXN0
ZXJPZmZzZXQKIAogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChjYWxsZWUsIHJlZ1Qx
KTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBU
cnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNGdW5jdGlvblZQdHIpKSk7CisgICAgYWRkU2xv
d0Nhc2UoZW1pdEp1bXBJZk5vdFR5cGUocmVnVDAsIHJlZ1QxLCBKU0Z1bmN0aW9uVHlwZSkpOwog
CiAgICAgLy8gU3BlY3VsYXRpdmVseSByb2xsIHRoZSBjYWxsZnJhbWUsIGFzc3VtaW5nIGFyZ0Nv
dW50IHdpbGwgbWF0Y2ggdGhlIGFyaXR5LgogICAgIG11bDMyKFRydXN0ZWRJbW0zMihzaXplb2Yo
UmVnaXN0ZXIpKSwgcmVnVDMsIHJlZ1QzKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIEpJVDo6
Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKEluc3RydWN0CiAKICAgICAvLyBGYXN0IGNoZWNrIGZvciBK
UyBmdW5jdGlvbi4KICAgICBKdW1wIGNhbGxMaW5rRmFpbE5vdE9iamVjdCA9IGJyYW5jaDMyKE5v
dEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKLSAgICBKdW1w
IGNhbGxMaW5rRmFpbE5vdEpTRnVuY3Rpb24gPSBicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3Mo
cmVnVDApLCBUcnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNGdW5jdGlvblZQdHIpKTsKKyAg
ICBKdW1wIGNhbGxMaW5rRmFpbE5vdEpTRnVuY3Rpb24gPSBlbWl0SnVtcElmTm90VHlwZShyZWdU
MCwgcmVnVDEsIEpTRnVuY3Rpb25UeXBlKTsKIAogICAgIC8vIFNwZWN1bGF0aXZlbHkgcm9sbCB0
aGUgY2FsbGZyYW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNoIHRoZSBhcml0eS4KICAg
ICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9yKFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAkocmV2aXNpb24gOTU2NTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsVmFyYXJncyhJbnN0cnVj
dGkKIAogICAgIC8vIENoZWNrIGZvciBKU0Z1bmN0aW9ucy4KICAgICBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RKU0NlbGwocmVnVDApOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMCksIFRydXN0ZWRJbW1QdHIobV9nbG9iYWxEYXRhLT5qc0Z1bmN0aW9uVlB0
cikpKTsKKyAgICBhZGRTbG93Q2FzZShlbWl0SnVtcElmTm90VHlwZShyZWdUMCwgcmVnVDMsIEpT
RnVuY3Rpb25UeXBlKSk7CiAKICAgICAvLyBTcGVjdWxhdGl2ZWx5IHJvbGwgdGhlIGNhbGxmcmFt
ZSwgYXNzdW1pbmcgYXJnQ291bnQgd2lsbCBtYXRjaCB0aGUgYXJpdHkuCiAgICAgbXVsMzIoVHJ1
c3RlZEltbTMyKHNpemVvZihSZWdpc3RlcikpLCByZWdUMiwgcmVnVDIpOwpAQCAtMTcxLDcgKzE3
MSw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoSW5zdHJ1Y3QKIAogICAgIC8v
IEZhc3QgY2hlY2sgZm9yIEpTIGZ1bmN0aW9uLgogICAgIEp1bXAgY2FsbExpbmtGYWlsTm90T2Jq
ZWN0ID0gZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMCk7Ci0gICAgSnVtcCBjYWxsTGlua0ZhaWxO
b3RKU0Z1bmN0aW9uID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3Rl
ZEltbVB0cihtX2dsb2JhbERhdGEtPmpzRnVuY3Rpb25WUHRyKSk7CisgICAgSnVtcCBjYWxsTGlu
a0ZhaWxOb3RKU0Z1bmN0aW9uID0gZW1pdEp1bXBJZk5vdFR5cGUocmVnVDAsIHJlZ1QzLCBKU0Z1
bmN0aW9uVHlwZSk7CiAKICAgICAvLyBTcGVjdWxhdGl2ZWx5IHJvbGwgdGhlIGNhbGxmcmFtZSwg
YXNzdW1pbmcgYXJnQ291bnQgd2lsbCBtYXRjaCB0aGUgYXJpdHkuCiAgICAgc3RvcmVQdHIoY2Fs
bEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChSZWdpc3RlckZpbGU6
OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2Yo
UmVnaXN0ZXIpKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVN
ZXRob2RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVNZXRob2RzLmgJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVNZXRob2RzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNiw2ICszMjYsMTIgQEAg
QUxXQVlTX0lOTElORSBKSVQ6Okp1bXAgSklUOjplbWl0SnVtcElmTgogICAgIHJldHVybiBicmFu
Y2g4KEJlbG93LCBBZGRyZXNzKHN0cnVjdHVyZVJlZywgU3RydWN0dXJlOjp0eXBlSW5mb1R5cGVP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihPYmplY3RUeXBlKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUg
SklUOjpKdW1wIEpJVDo6ZW1pdEp1bXBJZk5vdFR5cGUoUmVnaXN0ZXJJRCBiYXNlUmVnLCBSZWdp
c3RlcklEIHNjcmF0Y2hSZWcsIEpTVHlwZSB0eXBlKQoreworICAgIGxvYWRQdHIoQWRkcmVzcyhi
YXNlUmVnLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc2NyYXRjaFJlZyk7CisgICAgcmV0
dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3Moc2NyYXRjaFJlZywgU3RydWN0dXJlOjp0eXBl
SW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMih0eXBlKSk7Cit9CisKICNpZiBFTkFCTEUo
U0FNUExJTkdfRkxBR1MpCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpzZXRTYW1wbGluZ0ZsYWco
aW50MzJfdCBmbGFnKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzODksNyArMzM4OSw3IEBAIERFRklORV9TVFVCX0ZV
TkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF8KICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBzdGFj
a0ZyYW1lLmFyZ3NbMV0uaW50MzIoKTsKICAgICBpbnQgYXJnQ291bnQgPSBzdGFja0ZyYW1lLmFy
Z3NbMl0uaW50MzIoKTsKIAotICAgIGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbEZyYW1lLT5nbG9i
YWxEYXRhKCksIGZ1bmNWYWwsIGdsb2JhbEZ1bmNFdmFsKSkKKyAgICBpZiAoIWlzSG9zdEZ1bmN0
aW9uKGZ1bmNWYWwsIGdsb2JhbEZ1bmNFdmFsKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1ZhbHVlKCkpOwogCiAgICAgUmVnaXN0ZXIqIG5ld0NhbGxGcmFtZSA9IGNhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MjAs
OSArNjIwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxO
YXRpdmVFeGVjdXRhYmxlKj4obV9leGVjdXRhYmxlLmdldCgpKS0+ZnVuY3Rpb24oKTsKICAgICB9
CiAKLSAgICBpbmxpbmUgYm9vbCBpc0hvc3RGdW5jdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgdmFsdWUsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKQorICAgIGlu
bGluZSBib29sIGlzSG9zdEZ1bmN0aW9uKEpTVmFsdWUgdmFsdWUsIE5hdGl2ZUZ1bmN0aW9uIG5h
dGl2ZUZ1bmN0aW9uKQogICAgIHsKLSAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBzdGF0
aWNfY2FzdDxKU0Z1bmN0aW9uKj4oZ2V0SlNGdW5jdGlvbihnbG9iYWxEYXRhLCB2YWx1ZSkpOwor
ICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihn
ZXRKU0Z1bmN0aW9uKHZhbHVlKSk7CiAgICAgICAgIGlmICghZnVuY3Rpb24gfHwgIWZ1bmN0aW9u
LT5pc0hvc3RGdW5jdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24tPm5hdGl2ZUZ1bmN0aW9uKCkgPT0gbmF0aXZlRnVuY3Rpb247CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCShyZXZpc2lvbiA5
NTY1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOwotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSlNGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rp
b24oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJ
KHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBKU09iamVjdDo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29ucwogICAgIGZvciAoSlNPYmplY3QqIG9iaiA9IHRoaXM7
ICFvYmotPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCk7IG9iaiA9IGFz
T2JqZWN0KHByb3RvdHlwZSkpIHsKICAgICAgICAgcHJvdG90eXBlID0gb2JqLT5wcm90b3R5cGUo
KTsKICAgICAgICAgaWYgKHByb3RvdHlwZS5pc051bGwoKSkgewotICAgICAgICAgICAgaWYgKCFw
dXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCB0cnVl
LCBzbG90LCBnZXRKU0Z1bmN0aW9uKGdsb2JhbERhdGEsIHZhbHVlKSkgJiYgc2xvdC5pc1N0cmlj
dE1vZGUoKSkKKyAgICAgICAgICAgIGlmICghcHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0YSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwgc2xvdCwgZ2V0SlNGdW5jdGlvbih2YWx1ZSkp
ICYmIHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3Io
ZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnMKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAK
LSAgICBpZiAoIXB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIDAsIHRydWUsIHNsb3QsIGdldEpTRnVuY3Rpb24oZ2xvYmFsRGF0YSwgdmFsdWUpKSAmJiBz
bG90LmlzU3RyaWN0TW9kZSgpKQorICAgIGlmICghcHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0
YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwgc2xvdCwgZ2V0SlNGdW5jdGlvbih2YWx1
ZSkpICYmIHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMs
IFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgcmV0dXJuOwogfQpA
QCAtMTg0LDEzICsxODQsMTMgQEAgdm9pZCBKU09iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
dW5zaQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgcHV0RGlyZWN0SW50ZXJuYWwoKmdsb2JhbERhdGEsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIGNoZWNrUmVhZE9ubHksIHNsb3QsIGdldEpTRnVuY3Rpb24o
Kmdsb2JhbERhdGEsIHZhbHVlKSk7CisgICAgcHV0RGlyZWN0SW50ZXJuYWwoKmdsb2JhbERhdGEs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIGNoZWNrUmVhZE9ubHksIHNsb3QsIGdl
dEpTRnVuY3Rpb24odmFsdWUpKTsKIH0KIAogdm9pZCBKU09iamVjdDo6cHV0V2l0aEF0dHJpYnV0
ZXMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3Q7Ci0gICAgcHV0RGlyZWN0SW50ZXJuYWwoKmdsb2JhbERhdGEsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIHRydWUsIHNsb3QsIGdldEpTRnVuY3Rpb24oKmdsb2Jh
bERhdGEsIHZhbHVlKSk7CisgICAgcHV0RGlyZWN0SW50ZXJuYWwoKmdsb2JhbERhdGEsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIHRydWUsIHNsb3QsIGdldEpTRnVuY3Rpb24odmFs
dWUpKTsKIH0KIAogdm9pZCBKU09iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMpCkBAIC0yMDEsMTQgKzIwMSwxNCBAQCB2b2lkIEpTT2JqZWN0OjpwdXRX
aXRoQXR0cmlidXRlcyhKU0dsb2JhCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyhF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gZXhlYy0+Z2xv
YmFsRGF0YSgpOwotICAgIHB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIGNoZWNrUmVhZE9ubHksIHNsb3QsIGdldEpTRnVuY3Rpb24o
Z2xvYmFsRGF0YSwgdmFsdWUpKTsKKyAgICBwdXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzLCBjaGVja1JlYWRPbmx5LCBzbG90LCBnZXRK
U0Z1bmN0aW9uKHZhbHVlKSk7CiB9CiAKIHZvaWQgSlNPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVz
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
OwogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsKLSAg
ICBwdXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRy
aWJ1dGVzLCB0cnVlLCBzbG90LCBnZXRKU0Z1bmN0aW9uKGdsb2JhbERhdGEsIHZhbHVlKSk7Cisg
ICAgcHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0
cmlidXRlcywgdHJ1ZSwgc2xvdCwgZ2V0SlNGdW5jdGlvbih2YWx1ZSkpOwogfQogCiB2b2lkIEpT
T2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gOTU2NTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgaW5saW5lIEpTQ2VsbCog
Z2V0SlNGdW5jdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgdmFsdWUpCisg
ICAgaW5saW5lIEpTQ2VsbCogZ2V0SlNGdW5jdGlvbihKU1ZhbHVlIHZhbHVlKQogICAgIHsKLSAg
ICAgICAgaWYgKHZhbHVlLmlzQ2VsbCgpICYmICh2YWx1ZS5hc0NlbGwoKS0+dnB0cigpID09IGds
b2JhbERhdGEuanNGdW5jdGlvblZQdHIpKQorICAgICAgICBpZiAodmFsdWUuaXNDZWxsKCkgJiYg
KHZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkgPT0gSlNGdW5j
dGlvblR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CkBAIC03MDIsMjQgKzcwMiwyNCBAQCBpbmxpbmUgYm9vbCBKU09iamVj
dDo6cHV0RGlyZWN0KEpTR2xvYmFsCiAgICAgQVNTRVJUKHZhbHVlKTsKICAgICBBU1NFUlQoIUhl
YXA6OmhlYXAodmFsdWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhpcykp
OwogCi0gICAgcmV0dXJuIHB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIGNoZWNrUmVhZE9ubHksIHNsb3QsIGdldEpTRnVuY3Rpb24o
Z2xvYmFsRGF0YSwgdmFsdWUpKTsKKyAgICByZXR1cm4gcHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFs
RGF0YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgY2hlY2tSZWFkT25seSwgc2xv
dCwgZ2V0SlNGdW5jdGlvbih2YWx1ZSkpOwogfQogCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6cHV0
RGlyZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIFB1dFBy
b3BlcnR5U2xvdCBzbG90OwotICAgIHB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMsIGZhbHNlLCBzbG90LCBnZXRKU0Z1bmN0aW9uKGds
b2JhbERhdGEsIHZhbHVlKSk7CisgICAgcHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0YSwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgZmFsc2UsIHNsb3QsIGdldEpTRnVuY3Rpb24o
dmFsdWUpKTsKIH0KIAogaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdChKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBwdXREaXJlY3RJbnRl
cm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBmYWxzZSwgc2xvdCwgZ2V0
SlNGdW5jdGlvbihnbG9iYWxEYXRhLCB2YWx1ZSkpOworICAgIHJldHVybiBwdXREaXJlY3RJbnRl
cm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBmYWxzZSwgc2xvdCwgZ2V0
SlNGdW5jdGlvbih2YWx1ZSkpOwogfQogCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7
CiAgICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpOwotICAgIHNpemVfdCBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+YWRkUHJvcGVy
dHlXaXRob3V0VHJhbnNpdGlvbihnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMs
IGdldEpTRnVuY3Rpb24oZ2xvYmFsRGF0YSwgdmFsdWUpKTsKKyAgICBzaXplX3Qgb2Zmc2V0ID0g
c3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgcHJv
cGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSk7CiAgICAgaWYgKGN1
cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkK
ICAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFj
aXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CiAgICAgcHV0RGly
ZWN0T2Zmc2V0KGdsb2JhbERhdGEsIG9mZnNldCwgdmFsdWUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgJKHJldmlzaW9uIDk1NjUxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAgZW51bSBKU1R5cGUgewogICAgIC8vIFRoZSBPYmplY3RUeXBlIHZhbHVlIG11c3QgY29tZSBi
ZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QuCiAgICAgT2Jq
ZWN0VHlwZSAgICAgICAgICA9IDEwLAogICAgIEZpbmFsT2JqZWN0VHlwZSAgICAgPSAxMSwKKyAg
ICBKU0Z1bmN0aW9uVHlwZSAgICAgID0gMTIsCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="105114"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>