<?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>110846</bug_id>
          
          <creation_ts>2013-02-25 22:17:06 -0800</creation_ts>
          <short_desc>[JSC] static methods with Callback should not have this pointer</short_desc>
          <delta_ts>2013-02-26 13:42:04 -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>Tools / Tests</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>
          
          <blocked>108196</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kaustubh Atrawalkar">kaustubh.ra</reporter>
          <assigned_to name="Vineet Chaudhary (vineetc)">code.vineet</assigned_to>
          <cc>abarth</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841634</commentid>
    <comment_count>0</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2013-02-25 22:17:06 -0800</bug_when>
    <thetext>Current JSC bindings generator does not support Optional callback as method&apos;s argument. Need to add support for the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842141</commentid>
    <comment_count>1</comment_count>
      <attachid>190322</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2013-02-26 10:18:58 -0800</bug_when>
    <thetext>Created attachment 190322
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842143</commentid>
    <comment_count>2</comment_count>
      <attachid>190322</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-26 10:23:52 -0800</bug_when>
    <thetext>Comment on attachment 190322
patch

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

The change to CodeGeneratorJS.pm looks good.

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:150
&gt; +    void    staticMethodWithCallbackAndOptionalArg(in [Callback, Optional] TestCallback callback);
&gt; +    void    staticMethodWithCallbackArg(in [Callback] TestCallback callback);

You need to add &apos;static&apos; to these methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842154</commentid>
    <comment_count>3</comment_count>
      <attachid>190324</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2013-02-26 10:38:01 -0800</bug_when>
    <thetext>Created attachment 190324
updated_patch

Sorry for Copypasta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842172</commentid>
    <comment_count>4</comment_count>
      <attachid>190324</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-26 10:48:46 -0800</bug_when>
    <thetext>Comment on attachment 190324
updated_patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842214</commentid>
    <comment_count>5</comment_count>
      <attachid>190324</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2013-02-26 11:28:35 -0800</bug_when>
    <thetext>Comment on attachment 190324
updated_patch

Thanks!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842324</commentid>
    <comment_count>6</comment_count>
      <attachid>190324</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 13:42:00 -0800</bug_when>
    <thetext>Comment on attachment 190324
updated_patch

Clearing flags on attachment: 190324

Committed r144101: &lt;http://trac.webkit.org/changeset/144101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842325</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 13:42:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190322</attachid>
            <date>2013-02-26 10:18:58 -0800</date>
            <delta_ts>2013-02-26 10:38:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>static_callback_001.diff</filename>
            <type>text/plain</type>
            <size>12472</size>
            <attacher name="Vineet Chaudhary (vineetc)">code.vineet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI2ICBDSEFVREhB
UlkgVklORUVULVJHRjc0OCAgPHJnZjc0OEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0pTQ10g
c3RhdGljIG1ldGhvZHMgd2l0aCBDYWxsYmFjayBzaG91bGQgbm90IGhhdmUgdGhpcyBwb2ludGVy
IAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODQ2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4aW5n
IHRoZSBKU0MgQ29kZWdlbmVyYXRvciBub3QgdG8gdXNlICd0aGlzJyBwb2ludGVyIGluIHN0YXRp
YyBtZXRob2RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJz
Q2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZCk6CisgICAg
ICAgIChUZXN0T2JqVjhJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6c3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRob2RDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RhdGljTWV0aG9kV2l0
aENhbGxiYWNrQXJnTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFjayk6CisKIDIwMTMtMDIt
MjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjE0Mzk4Nik6IGZhc3QvZmlsZXMvcmV2b2tlLWJsb2ItdXJsLmh0bWwgYXNzZXJ0cwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDE0NDA2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAzLDEyICsyNzAzLDIw
IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAm
JiAhZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkuaXNVbmRlZmluZWRPck51bGwoKSkge1xuIik7
CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIWV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpLmlzRnVuY3Rpb24oKSlcbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAg
ICAkbmFtZSA9ICR7Y2FsbGJhY2tDbGFzc05hbWV9OjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJn
dW1lbnQoJGFyZ3NJbmRleCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lID0gY3JlYXRlRnVuY3Rpb25P
bmx5Q2FsbGJhY2s8JHtjYWxsYmFja0NsYXNzTmFtZX0+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1l
bnQoJGFyZ3NJbmRleCkpO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZSA9ICR7Y2FsbGJh
Y2tDbGFzc05hbWV9OjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkp
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8PSAkYXJnc0luZGV4IHx8ICFleGVjLT5hcmd1bWVudCgk
YXJnc0luZGV4KS5pc0Z1bmN0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4g
JG5hbWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3Vt
ZW50KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAg
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4gJG5hbWUgPSBjcmVh
dGVGdW5jdGlvbk9ubHlDYWxsYmFjazwke2NhbGxiYWNrQ2xhc3NOYW1lfT4oZXhlYywgc3RhdGlj
X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBl
eGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPCRh
cmdUeXBlPiAkbmFtZSA9ICR7Y2FsbGJhY2tDbGFzc05hbWV9OjpjcmVhdGUoYXNPYmplY3QoZXhl
Yy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7XG4i
KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzaWYgKCRw
YXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDbGFtcCJ9KSB7CiAgICAgICAgICAgICBt
eSAkbmF0aXZlVmFsdWUgPSAiJHtuYW1lfU5hdGl2ZVZhbHVlIjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDE0
NDA2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDYgKzE0NSw5IEBAIGVudW0gVGVzdEVudW1UeXBlIHsg
IiIsICJFbnVtVmFsdWUxIiwgIkUKICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FyZyhp
biBbQ2FsbGJhY2tdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RX
aXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhpbiBsb25nIG5vbkNhbGxiYWNrLCBpbiBb
Q2FsbGJhY2tdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRo
Q2FsbGJhY2tBbmRPcHRpb25hbEFyZyhpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBUZXN0Q2FsbGJh
Y2sgY2FsbGJhY2spOworICAgIC8vIHN0YXRpYyBtZXRob2RzIHdpdGggJ0NhbGxiYWNrJyBleHRl
bmRlZCBhdHRyaWJ1dGUKKyAgICB2b2lkICAgIHN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9w
dGlvbmFsQXJnKGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7
CisgICAgdm9pZCAgICBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoaW4gW0NhbGxiYWNrXSBU
ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwogI2VuZGlmCiAKICAgICAvLyAnQ29uZGl0aW9uYWwnIGV4
dGVuZGVkIGF0dHJpYnV0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDE0NDA2NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTYsNiArMjk2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdE9ialBybwogICAgIHsgIm1ldGhvZFdpdGhDYWxsYmFja0FyZyIsIERvbnREZWxldGUg
fCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKSwgKGludHB0cl90
KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2Fs
bGJhY2tBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKSwgKGludHB0cl90KTIsIE5vSW50cmluc2ljIH0s
CiAgICAgeyAibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBEb250RGVsZXRlIHwg
SlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKSwg
KGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCisgICAgeyAic3RhdGljTWV0aG9kV2l0aENhbGxi
YWNrQW5kT3B0aW9uYWxBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0
YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKSwgKGludHB0cl90KTEsIE5vSW50
cmluc2ljIH0sCisgICAgeyAic3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQXJnIiwgRG9udERlbGV0
ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcpLCAo
aW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICB7
ICJjb25kaXRpb25hbE1ldGhvZDEiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsTWV0aG9kMSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogI2VuZGlm
CkBAIC0zMjUsNyArMzI3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9i
alBybwogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5zaWMgfQogfTsKIAotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsgMjY2LCAyNTUsIEpTVGVzdE9i
alByb3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVz
dE9ialByb3RvdHlwZVRhYmxlID0geyAyNjcsIDI1NSwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVW
YWx1ZXMsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RPYmplY3RQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0T2JqUHJvdG90
eXBlVGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqUHJvdG90eXBlKSB9Owog
CiBKU09iamVjdCogSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTIwMzUsNiArMjAzNyw0MSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlv
bmFsQXJnKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2Jq
OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1Zh
bHVlKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0
T2JqOjpzX2luZm8pOworICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjazsK
KyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCku
aXNVbmRlZmluZWRPck51bGwoKSkgeworICAgICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlz
RnVuY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICBjYWxsYmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+
YXJndW1lbnQoMCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CisgICAgfQorICAgIGlt
cGwtPnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKGNhbGxiYWNrKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljTWV0aG9k
V2l0aENhbGxiYWNrQXJnKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNUZXN0T2JqOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmpl
Y3QodGhpc1ZhbHVlKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCAmSlNUZXN0T2JqOjpzX2luZm8pOworICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
PSAwIHx8ICFleGVjLT5hcmd1bWVudCgwKS5pc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNr
ID0gSlNUZXN0Q2FsbGJhY2s6OmNyZWF0ZShhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSksIGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKTsKKyAgICBpbXBsLT5zdGF0aWNNZXRob2RXaXRoQ2Fs
bGJhY2tBcmcoY2FsbGJhY2spOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CisKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEoRXhl
Y1N0YXRlKiBleGVjKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMTQ0MDY3KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xODcsNiArMTg3LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhKU0M6OkV4ZWNTdGF0ZSopOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoSlNDOjpFeGVjU3RhdGUqKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKEpTQzo6RXhlY1N0YXRlKik7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNDOjpFeGVjU3RhdGUqKTsKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMShKU0M6OkV4ZWNTdGF0ZSop
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAkocmV2aXNpb24gMTQ0MDY3KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMzksNiArMjEzOSw0MSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1l
dGhvZFdpdGhDCiAgICAgcmV0dXJuIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoQ2FsbGJh
Y2tBbmRPcHRpb25hbEFyZ01ldGhvZChhcmdzKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZChjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4gY2FsbGJh
Y2s7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFhcmdzWzBdLT5Jc051bGwoKSAmJiAh
YXJnc1swXS0+SXNVbmRlZmluZWQoKSkgeworICAgICAgICBpZiAoIWFyZ3NbMF0tPklzRnVuY3Rp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigwLCBhcmdzLkdldElzb2xh
dGUoKSk7CisgICAgICAgIGNhbGxiYWNrID0gVjhUZXN0Q2FsbGJhY2s6OmNyZWF0ZShhcmdzWzBd
LCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIH0KKyAgICBpbXAtPnN0YXRpY01l
dGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKGNhbGxiYWNrKTsKKyAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgcmV0dXJuIFRlc3RPYmpWOEludGVybmFsOjpzdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZChhcmdzKTsKK30KKworc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2QoY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDAgfHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24o
KSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKDAsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
KyAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjayA9IFY4VGVzdENhbGxiYWNrOjpjcmVh
dGUoYXJnc1swXSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpbXAtPnN0YXRp
Y01ldGhvZFdpdGhDYWxsYmFja0FyZyhjYWxsYmFjayk7CisgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RhdGljTWV0aG9kV2l0aENh
bGxiYWNrQXJnTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICByZXR1cm4gVGVzdE9ialY4SW50ZXJuYWw6OnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZ01l
dGhvZChhcmdzKTsKK30KKwogI2lmIEVOQUJMRShDb25kaXRpb24xKQogCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbmRpdGlvbmFsTWV0aG9kMU1ldGhvZChjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQpAQCAtMjkyOCw2ICsyOTYzLDggQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmln
dXJhdGlvbjo6QmF0Y2hlZAogICAgIHsibWV0aG9kV2l0aENhbGxiYWNrQXJnIiwgVGVzdE9ialY4
SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FyZ01ldGhvZENhbGxiYWNrfSwKICAgICB7Im1l
dGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6
Om1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnTWV0aG9kQ2FsbGJhY2t9LAog
ICAgIHsibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBUZXN0T2JqVjhJbnRlcm5h
bDo6bWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRob2RDYWxsYmFja30sCisgICAg
eyJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVy
bmFsOjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNr
fSwKKyAgICB7InN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyIsIFRlc3RPYmpWOEludGVybmFs
OjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFja30sCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjEpCiAgICAgeyJjb25kaXRpb25hbE1ldGhvZDEiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6Y29uZGl0aW9uYWxNZXRob2QxTWV0aG9kQ2FsbGJhY2t9LAogI2VuZGlmCg==
</data>
<flag name="review"
          id="210955"
          type_id="1"
          status="-"
          setter="haraken"
    />
    <flag name="commit-queue"
          id="210956"
          type_id="3"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190324</attachid>
            <date>2013-02-26 10:38:01 -0800</date>
            <delta_ts>2013-02-26 13:42:00 -0800</delta_ts>
            <desc>updated_patch</desc>
            <filename>static_callback_002.diff</filename>
            <type>text/plain</type>
            <size>12929</size>
            <attacher name="Vineet Chaudhary (vineetc)">code.vineet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTI2ICBDSEFVREhB
UlkgVklORUVUICA8cmdmNzQ4QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbSlNDXSBzdGF0aWMg
bWV0aG9kcyB3aXRoIENhbGxiYWNrIHNob3VsZCBub3QgaGF2ZSB0aGlzIHBvaW50ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDg0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGluZyB0aGUgSlND
IENvZGVnZW5lcmF0b3Igbm90IHRvIHVzZSAndGhpcycgcG9pbnRlciBpbiBzdGF0aWMgbWV0aG9k
cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0
aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZCk6CisgICAgICAg
IChUZXN0T2JqVjhJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6c3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRob2RDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RhdGljTWV0aG9kV2l0aENh
bGxiYWNrQXJnTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpz
dGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSk6CisKIDIwMTMtMDItMjYgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE0Mzk4Nik6
IGZhc3QvZmlsZXMvcmV2b2tlLWJsb2ItdXJsLmh0bWwgYXNzZXJ0cwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDE0NDA2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAzLDEyICsyNzAzLDIwIEBAIHN1YiBHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhZXhlYy0+YXJn
dW1lbnQoJGFyZ3NJbmRleCkuaXNVbmRlZmluZWRPck51bGwoKSkge1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpLmlzRnVuY3Rpb24oKSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7
Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZSA9ICR7
Y2FsbGJhY2tDbGFzc05hbWV9OjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoJGFyZ3NJ
bmRleCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8
JHtjYWxsYmFja0NsYXNzTmFtZX0+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRl
eCkpO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZSA9ICR7Y2FsbGJhY2tDbGFzc05hbWV9
OjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpLCBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8PSAkYXJnc0luZGV4IHx8ICFleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KS5p
c0Z1bmN0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4gJG5hbWUgPSAke2Nh
bGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5k
ZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAgICAgICAgICAgICAg
aWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4gJG5hbWUgPSBjcmVhdGVGdW5jdGlvbk9u
bHlDYWxsYmFjazwke2NhbGxiYWNrQ2xhc3NOYW1lfT4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT5hcmd1bWVu
dCgkYXJnc0luZGV4KSk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPCRhcmdUeXBlPiAkbmFt
ZSA9ICR7Y2FsbGJhY2tDbGFzc05hbWV9OjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJndW1lbnQo
JGFyZ3NJbmRleCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0ZXItPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDbGFtcCJ9KSB7CiAgICAgICAgICAgICBteSAkbmF0aXZlVmFs
dWUgPSAiJHtuYW1lfU5hdGl2ZVZhbHVlIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDE0NDA2NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTQ1LDYgKzE0NSw5IEBAIGVudW0gVGVzdEVudW1UeXBlIHsgIiIsICJFbnVtVmFs
dWUxIiwgIkUKICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FyZyhpbiBbQ2FsbGJhY2td
IFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uQ2FsbGJh
Y2tBcmdBbmRDYWxsYmFja0FyZyhpbiBsb25nIG5vbkNhbGxiYWNrLCBpbiBbQ2FsbGJhY2tdIFRl
c3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tBbmRP
cHRpb25hbEFyZyhpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBUZXN0Q2FsbGJhY2sgY2FsbGJhY2sp
OworICAgIC8vIHN0YXRpYyBtZXRob2RzIHdpdGggJ0NhbGxiYWNrJyBleHRlbmRlZCBhdHRyaWJ1
dGUKKyAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25h
bEFyZyhpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAg
IHN0YXRpYyB2b2lkICAgIHN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyhpbiBbQ2FsbGJhY2td
IFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAjZW5kaWYKIAogICAgIC8vICdDb25kaXRpb25hbCcg
ZXh0ZW5kZWQgYXR0cmlidXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTQ0MDY3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0T2JqQ29uCiAgICAgeyAic3RhdGljUmVhZE9ubHlMb25nQXR0ciIsIERvbnREZWxl
dGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIpLCAoaW50
cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzdGF0aWNTdHJpbmdBdHRyIiwgRG9udERl
bGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIlRl
c3RTdWJPYmoiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCisgICAgeyAic3RhdGljTWV0aG9kV2l0aENh
bGxiYWNrQW5kT3B0aW9uYWxBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcpLCAoaW50cHRyX3QpMSwg
Tm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciLCBEb250
RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNr
QXJnKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY2xhc3NNZXRob2QiLCBE
b250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QpLCAoaW50cHRy
X3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjbGFzc01ldGhvZFdpdGhPcHRpb25hbCIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25h
bCksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNsYXNzTWV0aG9kMiIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpLCAoaW50cHRy
X3QpMSwgTm9JbnRyaW5zaWMgfSwKQEAgLTE4Miw3ICsxODQsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0T2JqQ29uCiAgICAgeyAwLCAwLCAwLCAwLCBOb0ludHJpbnNpYyB9
CiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUg
PSB7IDM3LCAzMSwgSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZVZhbHVlcywgMCB9Oworc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlID0geyAzOCwgMzEsIEpT
VGVzdE9iakNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsIDAgfTsKIAogI2lmIEVOQUJMRShDb25kaXRp
b24xKQogQ09NUElMRV9BU1NFUlQoMCA9PSBUZXN0T2JqOjpDT05ESVRJT05BTF9DT05TVCwgVGVz
dE9iakVudW1DT05ESVRJT05BTF9DT05TVElzV3JvbmdVc2VEb05vdENoZWNrQ29uc3RhbnRzKTsK
QEAgLTIwMzUsNiArMjAzNywyOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
U3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoRXhlY1N0YXRlKiBleGVjKQor
eworICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOworICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgp
KSB7CisgICAgICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNGdW5jdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIGNhbGxiYWNrID0g
Y3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNUZXN0Q2FsbGJhY2s+KGV4ZWMsIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhl
Yy0+YXJndW1lbnQoMCkpOworICAgIH0KKyAgICBUZXN0T2JqOjpzdGF0aWNNZXRob2RXaXRoQ2Fs
bGJhY2tBbmRPcHRpb25hbEFyZyhjYWxsYmFjayk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQXJnKEV4ZWNT
dGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8PSAwIHx8ICFleGVjLT5h
cmd1bWVudCgwKS5pc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrID0gY3JlYXRlRnVuY3Rp
b25Pbmx5Q2FsbGJhY2s8SlNUZXN0Q2FsbGJhY2s+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIFRlc3RPYmo6OnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyhjYWxsYmFjayk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwogI2lmIEVO
QUJMRShDb25kaXRpb24xKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMShFeGVjU3RhdGUqIGV4ZWMpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCShyZXZpc2lvbiAxNDQwNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Nyw2ICsxODcs
OCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ2FsbGJhY2tBcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFj
a0FyZ0FuZENhbGxiYWNrQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tBbmRPcHRpb25hbEFyZyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRo
Q2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBcmcoSlNDOjpFeGVjU3RhdGUqKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMShKU0M6OkV4ZWNTdGF0ZSopOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAkocmV2aXNpb24gMTQ0MDY3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzksNiAr
MjEzOSwzOSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhDCiAgICAg
cmV0dXJuIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFy
Z01ldGhvZChhcmdzKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZChjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQoreworICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOworICAgIGlmIChh
cmdzLkxlbmd0aCgpID4gMCAmJiAhYXJnc1swXS0+SXNOdWxsKCkgJiYgIWFyZ3NbMF0tPklzVW5k
ZWZpbmVkKCkpIHsKKyAgICAgICAgaWYgKCFhcmdzWzBdLT5Jc0Z1bmN0aW9uKCkpCisgICAgICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpOworICAgICAg
ICBjYWxsYmFjayA9IFY4VGVzdENhbGxiYWNrOjpjcmVhdGUoYXJnc1swXSwgZ2V0U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICB9CisgICAgVGVzdE9iajo6c3RhdGljTWV0aG9kV2l0aENh
bGxiYWNrQW5kT3B0aW9uYWxBcmcoY2FsbGJhY2spOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgp
OworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0YXRpY01ldGhvZFdpdGhDYWxs
YmFja0FuZE9wdGlvbmFsQXJnTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3sKKyAgICByZXR1cm4gVGVzdE9ialY4SW50ZXJuYWw6OnN0YXRpY01ldGhvZFdpdGhDYWxs
YmFja0FuZE9wdGlvbmFsQXJnTWV0aG9kKGFyZ3MpOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZ01ldGhvZChjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQoreworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0
dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAg
IGlmIChhcmdzLkxlbmd0aCgpIDw9IDAgfHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24oKSkKKyAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKDAsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBSZWZQ
dHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjayA9IFY4VGVzdENhbGxiYWNrOjpjcmVhdGUoYXJnc1sw
XSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBUZXN0T2JqOjpzdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBcmcoY2FsbGJhY2spOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwor
fQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0YXRpY01ldGhvZFdpdGhDYWxsYmFj
a0FyZ01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgcmV0
dXJuIFRlc3RPYmpWOEludGVybmFsOjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2Qo
YXJncyk7Cit9CisKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKIAogc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25kaXRpb25hbE1ldGhvZDFNZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKQEAgLTMwNTEsNiArMzA4NCw4IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGEKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJndlttZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
QW5kVGhyb3dzQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4
VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSkgfTsKICAgICB2ODo6SGFuZGxlPHY4OjpT
aWduYXR1cmU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NTaWduYXR1cmUgPSB2
ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93
c0FyZ2MsIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmd2KTsKICAgICBwcm90
by0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0Fu
ZFRocm93cyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzTWV0aG9kQ2FsbGJhY2ssIHY4VW5kZWZp
bmVkKCksIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NTaWduYXR1cmUpKTsKKyAg
ICBkZXNjLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJzdGF0aWNNZXRob2RXaXRoQ2FsbGJh
Y2tBbmRPcHRpb25hbEFyZyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOElu
dGVybmFsOjpzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxi
YWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4oKSkpOworICAgIGRl
c2MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0Fy
ZyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpzdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6Okxv
Y2FsPHY4OjpTaWduYXR1cmU+KCkpKTsKICAgICBkZXNjLT5TZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJjbGFzc01ldGhvZCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOElu
dGVybmFsOjpjbGFzc01ldGhvZE1ldGhvZENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6TG9j
YWw8djg6OlNpZ25hdHVyZT4oKSkpOwogICAgIGRlc2MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1i
b2woImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXco
VGVzdE9ialY4SW50ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsTWV0aG9kQ2FsbGJhY2ss
IHY4VW5kZWZpbmVkKCksIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPigpKSk7CiAgICAgZGVzYy0+
U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY2xhc3NNZXRob2QyIiksIHY4OjpGdW5jdGlvblRl
bXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmNsYXNzTWV0aG9kMk1ldGhvZENhbGxiYWNr
LCB2OFVuZGVmaW5lZCgpLCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4oKSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>