<?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>69058</bug_id>
          
          <creation_ts>2011-09-28 20:42:25 -0700</creation_ts>
          <short_desc>DFG operation calls should be stdcall in Linux JSVALUE32_64 DFG JIT</short_desc>
          <delta_ts>2011-10-05 05:06:22 -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>69413</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yuqiang Xian">yuqiang.xian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475210</commentid>
    <comment_count>0</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-09-28 20:42:25 -0700</bug_when>
    <thetext>With the STDCALL prefix, on Linux a function pointer is not implicitly converted to a FunctionPtr obj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475214</commentid>
    <comment_count>1</comment_count>
      <attachid>109118</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-09-28 20:48:33 -0700</bug_when>
    <thetext>Created attachment 109118
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475268</commentid>
    <comment_count>2</comment_count>
      <attachid>109118</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-28 23:59:31 -0700</bug_when>
    <thetext>Comment on attachment 109118
the patch

Looks like this patch is pre r96293, is there still a problem post-r96293?
I don&apos;t think we want to take this change.  We should be able to give FunctionPtr an appropriate set of constructors.
If Linux defaults to stdcall, it is possible that the &apos;#if CPU(X86) &amp;&amp; COMPILER(GCC)&apos; check in  DFGOperations.h should be &apos;#if CALLING_CONVENTION_IS_CDECL&apos;.
We should be able to fix the problem without littering the JIT with explicit constructor calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475274</commentid>
    <comment_count>3</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-09-29 00:06:17 -0700</bug_when>
    <thetext>Hi Gavin, Linux also defaults to cdecl. And surely we expects stdcall for JSValue32_64 DFG operations (which was a bug in previous code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475379</commentid>
    <comment_count>4</comment_count>
      <attachid>109153</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-09-29 05:07:57 -0700</bug_when>
    <thetext>Created attachment 109153
patch

This patch fixed the stdcall FunctionPtr constructors issue on Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475585</commentid>
    <comment_count>5</comment_count>
      <attachid>109153</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-29 12:09:35 -0700</bug_when>
    <thetext>Comment on attachment 109153
patch

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

&gt; Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:55
&gt; +#if CPU(X86) &amp;&amp; COMPILER(GCC)

I don&apos;t think GCC is the right test here. It will definitely be wrong for people building with clang. But I think it may also be wrong for people building with GCC on non-cdecl platforms, since cdecl is a property of the platform ABI, not the compiler.

I&apos;d suggest (OS(DARWIN) || OS(LINUX)) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475602</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-29 12:35:32 -0700</bug_when>
    <thetext>I think stdcall is only a convention in windows, so per geoff&apos;s comments I&apos;m going to make this !PLATFORM(WINDOWS), r+ &amp; land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475605</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-29 12:37:00 -0700</bug_when>
    <thetext>Fixed in r96347</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475610</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-29 12:42:35 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think stdcall is only a convention in windows, so per geoff&apos;s comments I&apos;m going to make this !PLATFORM(WINDOWS), r+ &amp; land.

But what about Open Watcom C++??? :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109118</attachid>
            <date>2011-09-28 20:48:33 -0700</date>
            <delta_ts>2011-09-29 05:07:57 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>69058.patch</filename>
            <type>text/plain</type>
            <size>27385</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTYyOTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDggQEAK
KzIwMTEtMDktMjggIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+CisKKyAg
ICAgICAgRXhwbGljaXRseSB3cmFwIERGRyBvcGVyYXRpb25zIHdpdGggRnVuY3Rpb25QdHIgd2hl
biBiZWluZyBjYWxsZWQgaW4gSlNWQUxVRTMyXzY0IERGRyBKSVQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2l0aCB0aGUgU1REQ0FMTCBwcmVmaXgsIG9u
IExpbnV4IGEgZnVuY3Rpb24gcG9pbnRlciBpcyBub3QgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8g
YSBGdW5jdGlvblB0ciBvYmouCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmg6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjp1bmxpbmspOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJh
dG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZn
L0RGR0pJVENvZGVHZW5lcmF0b3IzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29k
ZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVWYWx1ZVRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVZhbHVlVG9JbnQzMik6CisgICAg
ICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVLbm93bkNvbnN0
YW50QXJpdGhPcCk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3Bl
Y3VsYXRpdmVCYXNpY0FyaXRoT3ApOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0
b3I6Om5vblNwZWN1bGF0aXZlQXJpdGhNb2QpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVH
ZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlQ2hlY2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6
OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVJbnN0YW5jZU9mKToKKyAgICAg
ICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKToK
KyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZU5vblBl
ZXBob2xlQ29tcGFyZSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9u
U3BlY3VsYXRpdmVQZWVwaG9sZVN0cmljdEVxKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2Rl
R2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlU3RyaWN0RXEpOgorICAgICAgICAo
SlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OmVtaXRCcmFuY2gpOgorICAgICAgICAoSlNDOjpE
Rkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlTG9naWNhbE5vdCk6CisgICAgICAg
ICogZGZnL0RGR0pJVENvbXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENv
bXBpbGVyOjpjb21waWxlQm9keSk6CisgICAgICAgICogZGZnL0RGR1JlcGF0Y2guY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRGRzo6ZGZn
UmVwYXRjaEdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERkc6OmRmZ1JlcGF0Y2hHZXRNZXRob2RG
YXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpkZmdSZXBhdGNoR2V0TWV0aG9kKToKKyAgICAgICAg
KEpTQzo6REZHOjpkZmdCdWlsZEdldEJ5SURMaXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpkZmdC
dWlsZEdldEJ5SURQcm90b0xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OnRyeUNhY2hlUHV0QnlJ
RCk6CisgICAgICAgIChKU0M6OkRGRzo6ZGZnUmVwYXRjaFB1dEJ5SUQpOgorICAgICAgICAoSlND
OjpERkc6OmRmZ0xpbmtGb3IpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisKIDIw
MTEtMDktMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVp
bGQgZml4IGF0dGVtcHQgZm9yIHI5NjI4Ni4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24g
OTYyOTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
Q29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBACiAjZGVmaW5lIEFTU0VS
VF9WQUxJRF9DT0RFX09GRlNFVChvZmZzZXQpIC8vIEFueXRoaW5nIGdvZXMhCiAjZW5kaWYKIAot
I2lmIENQVShYODYpICYmIFBMQVRGT1JNKE1BQykKKyNpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihH
Q0MpCiAjZGVmaW5lIENBTExJTkdfQ09OVkVOVElPTl9JU19DREVDTCAxCiAjZWxzZQogI2RlZmlu
ZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfQ0RFQ0wgMApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDk2MjkxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4MDcsNyArMTgwNyw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoSlNHbG9iYWxEYXRh
JiAKICAgICAKICAgICBpZiAoaXNERkcpIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmsoQ29kZUxvY2F0aW9uQ2FsbChjYWxsUmV0dXJuTG9jYXRpb24p
LCBpc0NhbGwgPyBvcGVyYXRpb25MaW5rQ2FsbCA6IG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QpOwor
ICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhDb2RlTG9jYXRpb25DYWxsKGNhbGxSZXR1cm5M
b2NhdGlvbiksIGlzQ2FsbCA/IEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkxpbmtDYWxsKSA6IEZ1bmN0
aW9uUHRyKG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QpKTsKICNlbHNlCiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGVHZW5lcmF0b3IzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwCShyZXZpc2lvbiA5NjI5MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvcjMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTA1LDcgKzUwNSw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRv
cjo6bm9uU3BlY3VsYXRpdmVWYWwKICAgICBtX2ppdC5wdXNoKHRhZ0dQUik7CiAgICAgbV9qaXQu
cHVzaChwYXlsb2FkR1BSKTsKICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyKTsKLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVl
VG9OdW1iZXIpOworICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIo
ZGZnQ29udmVydEpTVmFsdWVUb051bWJlcikpOwogICAgIGJveERvdWJsZShGUFJJbmZvOjpyZXR1
cm5WYWx1ZUZQUiwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSLCBtX2ppdC5ncmFwaCgp
W21fY29tcGlsZUluZGV4XS52aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgc2lsZW50RmlsbEFsbFJl
Z2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIEpJVENvbXBpbGVy
OjpKdW1wIGhhc0NhbGxlZFRvTnVtYmVyID0gbV9qaXQuanVtcCgpOwpAQCAtNTQyLDggKzU0Miwx
MCBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlVmFsCiAKICAgICAgICAg
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoZ3ByKTsKIAotICAgICAgICBtX2ppdC5tb3ZlRG91Ymxl
KGZwciwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKKyAgICAgICAgbV9qaXQuc3ViUHRyKFRydXN0
ZWRJbW0zMihzaXplb2YoZG91YmxlKSksIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgICAgIG1faml0LnN0b3JlRG91YmxlKGZwciwgSklUQ29tcGlsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayh0b0lu
dDMyKTsKKyAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihzaXplb2YoZG91YmxlKSks
IEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIG1faml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGdwcik7CiAKICAgICAgICAgc2lsZW50RmlsbEFsbFJl
Z2lzdGVycyhncHIpOwpAQCAtNTY3LDcgKzU2OSw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6
bm9uU3BlY3VsYXRpdmVWYWwKICAgICBtX2ppdC5wdXNoKHRhZ0dQUik7CiAgICAgbV9qaXQucHVz
aChwYXlsb2FkR1BSKTsKICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVlVG9J
bnQzMik7CisgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhGdW5jdGlvblB0cihkZmdD
b252ZXJ0SlNWYWx1ZVRvSW50MzIpKTsKICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCByZXN1bHRHUFIpOwogICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKICAgICBKSVRDb21waWxlcjo6SnVtcCBoYXNDYWxsZWRUb0ludDMyID0gbV9qaXQuanVtcCgp
OwpAQCAtNzMzLDcgKzczNSw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRp
dmVLbm8KICAgICAgICAgICAgIG1faml0LnB1c2gocmVnQXJnUGF5bG9hZEdQUik7CiAgICAgICAg
IH0KICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAg
ICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1i
ZXIpOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9w
ZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKSk7CiAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRU
YWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgICAgICAKQEAgLTk3Miw3
ICs5NzQsNyBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlQmFzCiAgICAg
ICAgIG1faml0LnB1c2goYXJnMVRhZ0dQUik7CiAgICAgICAgIG1faml0LnB1c2goYXJnMVBheWxv
YWRHUFIpOwogICAgICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsK
LSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25WYWx1ZUFkZE5v
dE51bWJlcik7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25Q
dHIob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpKTsKICAgICAgICAgc2V0dXBSZXN1bHRzKHJl
c3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdp
c3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKIApAQCAtMTA0Miw3ICsxMDQ0
LDcgQEAgdm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZUFyaQogICAgICAgICBt
X2ppdC5wdXNoKG9wMVRhZ0dQUik7CiAgICAgICAgIG1faml0LnB1c2gob3AxUGF5bG9hZEdQUik7
CiAgICAgICAgIG1faml0LnB1c2goR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAg
ICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkFyaXRoTW9kKTsKKyAgICAg
ICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhGdW5jdGlvblB0cihvcGVyYXRpb25Bcml0
aE1vZCkpOwogICAgICAgICBzZXR1cFJlc3VsdHMoWDg2UmVnaXN0ZXJzOjplYXgsIFg4NlJlZ2lz
dGVyczo6ZWR4KTsKICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhYODZSZWdpc3RlcnM6
OmVheCwgWDg2UmVnaXN0ZXJzOjplZHgpOwogICAgIH0KQEAgLTEwNzgsNyArMTA4MCw3IEBAIHZv
aWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVDaGUKICAgICAvLyBBdCBzb21lIHBv
aW50IHdlIGNvdWxkIG9wdGltaXplIHRoaXMgdG8gcGxhbnQgYSBkaXJlY3QganVtcCwgcmF0aGVy
IHRoZW4gY2hlY2tpbmcKICAgICAvLyBmb3IgYW4gZXhjZXB0aW9uIChvcGVyYXRpb25UaHJvd0hh
c0luc3RhbmNlRXJyb3IgYWx3YXlzIHRocm93cykuIFByb2JhYmx5IG5vdCB3b3J0aAogICAgIC8v
IGFkZGluZyB0aGUgZXh0cmEgaW50ZXJmYWNlIHRvIGRvIHRoaXMgbm93LCBidXQgd2UgbWF5IGFs
c28gd2FudCB0aGlzIGZvciBvcF90aHJvdy4KLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKG9wZXJhdGlvblRocm93SGFzSW5zdGFuY2VFcnJvcik7CisgICAgYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhGdW5jdGlvblB0cihvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNlRXJyb3Ip
KTsKIAogICAgIGltcGxlbWVudHNIYXNJbnN0YW5jZS5saW5rKCZtX2ppdCk7CiAgICAgbm9SZXN1
bHQobV9jb21waWxlSW5kZXgpOwpAQCAtMTE1OCw3ICsxMTYwLDcgQEAgdm9pZCBKSVRDb2RlR2Vu
ZXJhdG9yOjpub25TcGVjdWxhdGl2ZUlucwogICAgIG1faml0LmVtaXRMb2FkUGF5bG9hZChub2Rl
LmNoaWxkMygpLCB2YWx1ZVJlZyk7CiAgICAgbV9qaXQucHVzaCh2YWx1ZVJlZyk7CiAgICAgbV9q
aXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb25JbnN0YW5jZU9mKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkluc3RhbmNlT2YpKTsKICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCB3YXNOb3REZWZhdWx0SGFzSW5zdGFuY2UgPSBtX2ppdC5qdW1wKCk7
CiAKICAgICBpc0luc3RhbmNlLmxpbmsoJm1faml0KTsKQEAgLTExOTcsMTEgKzExOTksMTEgQEAg
SklUQ29tcGlsZXI6OkNhbGwgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaAogICAgIEpJVENvbXBpbGVy
OjpDYWxsIGZ1bmN0aW9uQ2FsbDsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBH
ZXRCeUlkOgotICAgICAgICBmdW5jdGlvbkNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSk7CisgICAgICAgIGZ1bmN0aW9uQ2FsbCA9IGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlJZE9w
dGltaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIEdldE1ldGhvZDoK
LSAgICAgICAgZnVuY3Rpb25DYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb25HZXRNZXRob2RPcHRpbWl6ZSk7CisgICAgICAgIGZ1bmN0aW9uQ2FsbCA9IGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1p
emUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6CkBAIC0xMzgwLDcg
KzEzODIsNyBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6OmNhY2hlZFB1dEJ5SWQoR1BSCiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIG9wdGltaXplZENhbGwgPSBvcGVyYXRpb25QdXRCeUlkTm9u
U3RyaWN0T3B0aW1pemU7CiAgICAgfQotICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2Fs
bCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3B0aW1pemVkQ2FsbCk7CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgZnVuY3Rpb25DYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhGdW5jdGlvblB0cihvcHRpbWl6ZWRDYWxsKSk7CiAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVy
cyhJbnZhbGlkR1BSUmVnKTsKIAogICAgIGRvbmUubGluaygmbV9qaXQpOwpAQCAtMTU4Miw3ICsx
NTg0LDcgQEAgdm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVBlZQogICAgICAg
ICAgICAgbV9qaXQucHVzaChhcmcxVGFnR1BSKTsKICAgICAgICAgICAgIG1faml0LnB1c2goYXJn
MVBheWxvYWRHUFIpOwogICAgICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlcik7Ci0gICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGhlbHBl
ckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVu
Y3Rpb25QdHIoaGVscGVyRnVuY3Rpb24pKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgICAgICBzaWxlbnRGaWxsQWxs
UmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIApAQCAtMTY0Nyw3ICsxNjQ5LDcgQEAgdm9p
ZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZU5vbgogICAgICAgICAgICAgbV9qaXQu
cHVzaChhcmcxVGFnR1BSKTsKICAgICAgICAgICAgIG1faml0LnB1c2goYXJnMVBheWxvYWRHUFIp
OwogICAgICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0g
ICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGhlbHBlckZ1bmN0aW9uKTsK
KyAgICAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIoaGVs
cGVyRnVuY3Rpb24pKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICAKQEAgLTE3MTgs
NyArMTcyMCw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVQZWUKICAg
ICAgICAgbV9qaXQucHVzaChhcmcxVGFnR1BSKTsKICAgICAgICAgbV9qaXQucHVzaChhcmcxUGF5
bG9hZEdQUik7CiAgICAgICAgIG1faml0LnB1c2goR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
OwotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNvbXBhcmVT
dHJpY3RFcUNlbGwpOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0
aW9uUHRyKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwpKTsKICAgICAgICAgbV9qaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIApAQCAtMTcz
Miw3ICsxNzM0LDcgQEAgdm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVBlZQog
ICAgICAgICBtX2ppdC5wdXNoKGFyZzFUYWdHUFIpOwogICAgICAgICBtX2ppdC5wdXNoKGFyZzFQ
YXlsb2FkR1BSKTsKICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0gICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uQ29tcGFy
ZVN0cmljdEVxKTsKKyAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhGdW5jdGlv
blB0cihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEpKTsKICAgICAgICAgbV9qaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIHNpbGVudEZp
bGxBbGxSZWdpc3RlcnMocmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIApAQCAtMTc3Niw3ICsx
Nzc4LDcgQEAgdm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZU5vbgogICAgICAg
ICBtX2ppdC5wdXNoKGFyZzFUYWdHUFIpOwogICAgICAgICBtX2ppdC5wdXNoKGFyZzFQYXlsb2Fk
R1BSKTsKICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0g
ICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxQ2VsbCk7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25Q
dHIob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCkpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKICAgICAgICAgc2lsZW50
RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAg
ICAKQEAgLTE3OTIsNyArMTc5NCw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb24KICAgICAgICAgbV9qaXQucHVzaChhcmcxVGFnR1BSKTsKICAgICAgICAgbV9qaXQu
cHVzaChhcmcxUGF5bG9hZEdQUik7CiAgICAgICAgIG1faml0LnB1c2goR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIpOwotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbkNvbXBhcmVTdHJpY3RFcSk7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2soRnVuY3Rpb25QdHIob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxKSk7CiAgICAgICAgIG1faml0
Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7
CiAgICAgICAgIApAQCAtMTg1Miw3ICsxODU0LDcgQEAgdm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpl
bWl0QnJhbmNoKE5vZGUmIAogICAgIG1faml0LnB1c2godmFsdWVUYWdHUFIpOwogICAgIG1faml0
LnB1c2godmFsdWVQYXlsb2FkR1BSKTsKICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsKLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGRmZ0NvbnZlcnRK
U1ZhbHVlVG9Cb29sZWFuKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0
aW9uUHRyKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKSk7CiAgICAgbV9qaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdEdQUik7CiAgICAgCkBAIC0xODgxLDcgKzE4ODMsNyBAQCB2b2lkIEpJVENvZGVH
ZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlTG9nCiAgICAgbV9qaXQucHVzaChhcmcxVGFnR1BSKTsK
ICAgICBtX2ppdC5wdXNoKGFyZzFQYXlsb2FkR1BSKTsKICAgICBtX2ppdC5wdXNoKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGRm
Z0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKEZ1bmN0aW9uUHRyKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKSk7CiAgICAgbV9qaXQu
bW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgc2ls
ZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAg
IEpJVENvbXBpbGVyOjpKdW1wIGRvTm90ID0gbV9qaXQuanVtcCgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDk2
MjkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExODIsNyArMTE4Miw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
bV9qaXQucHVzaChKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKHJlaW50ZXJwcmV0X2Nhc3Q8aW50
Pihwb2ludGVyKSkpOwogICAgICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyKTsKIAotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0
aW9uKSk7CiAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRUYWcsIHJlc3VsdFBheWxvYWQpOwog
ICAgIH0KICAgICB2b2lkIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUkgb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgSWRlbnRpZmllciogaWRl
bnRpZmllcikKQEAgLTExOTcsNyArMTE5Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9qaXQu
cHVzaChKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKHJlaW50ZXJwcmV0X2Nhc3Q8aW50Pihwb2lu
dGVyKSkpOwogICAgICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsK
IAotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAg
ICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0aW9uKSk7
CiAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRUYWcsIHJlc3VsdFBheWxvYWQpOwogICAgIH0K
ICAgICB2b2lkIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRVNTIG9wZXJhdGlvbiwgR1BS
UmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIGludCBzdGFydENvbnN0YW50LCBp
bnQgbnVtQ29uc3RhbnRzKQpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBtX2ppdC5wdXNoKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tMzIoc3RhcnRDb25zdGFudCkpOwog
ICAgICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKIAotICAgICAg
ICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgICAgIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0aW9uKSk7CiAgICAgICAg
IHNldHVwUmVzdWx0cyhyZXN1bHRUYWcsIHJlc3VsdFBheWxvYWQpOwogICAgIH0KICAgICB2b2lk
IGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpQIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBh
eWxvYWQsIHZvaWQqIHBvaW50ZXIpCkBAIC0xMjIwLDcgKzEyMjAsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIG1faml0LnB1c2goYXJnMVBheWxvYWQpOwogICAgICAgICBtX2ppdC5wdXNoKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKIAotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
RnVuY3Rpb25QdHIob3BlcmF0aW9uKSk7CiAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRUYWcs
IHJlc3VsdFBheWxvYWQpOwogICAgIH0KICAgICB2b2lkIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVy
YXRpb25fRUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxv
YWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIElkZW50aWZpZXIqIGlkZW50
aWZpZXIpCkBAIC0xMjM1LDcgKzEyMzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1faml0LnB1
c2goYXJnMVBheWxvYWQpOwogICAgICAgICBtX2ppdC5wdXNoKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKIAotICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3Bl
cmF0aW9uKSk7CiAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRUYWcsIHJlc3VsdFBheWxvYWQp
OwogICAgIH0KICAgICB2b2lkIGNhbGxPcGVyYXRpb24oWl9ERkdPcGVyYXRpb25fRUogb3BlcmF0
aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkKQpA
QCAtMTI0Niw3ICsxMjQ2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5wdXNoKGFyZzFQ
YXlsb2FkKTsKICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
CiAKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAg
ICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9wZXJhdGlvbikp
OwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOwog
ICAgIH0KICAgICB2b2lkIGNhbGxPcGVyYXRpb24oWl9ERkdPcGVyYXRpb25fRUpKIG9wZXJhdGlv
biwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BS
UmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKQEAgLTEyNTksNyArMTI1OSw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgbV9qaXQucHVzaChhcmcxUGF5bG9hZCk7CiAgICAgICAgIG1faml0
LnB1c2goR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogCi0gICAgICAgIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhGdW5jdGlvblB0cihvcGVyYXRpb24pKTsKICAgICAgICAgbV9qaXQubW92ZShH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0KTsKICAgICB9CiAgICAgdm9pZCBjYWxsT3Bl
cmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQ
UlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBH
UFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQpAQCAtMTI3Miw3ICsxMjcyLDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5wdXNoKGFyZzFQYXlsb2FkKTsKICAgICAgICAgbV9q
aXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAKLSAgICAgICAgYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9wZXJhdGlvbikpOwogICAgICAgICBzZXR1cFJlc3Vs
dHMocmVzdWx0VGFnLCByZXN1bHRQYXlsb2FkKTsKICAgICB9CiAgICAgdm9pZCBjYWxsT3BlcmF0
aW9uKFZfREZHT3BlcmF0aW9uX0VKSlAgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVn
IGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCB2b2lkKiBw
b2ludGVyKQpAQCAtMTI4Niw3ICsxMjg2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5w
dXNoKGFyZzFQYXlsb2FkKTsKICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlcik7CiAKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9w
ZXJhdGlvbikpOwogICAgIH0KICAgICB2b2lkIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVyYXRpb25f
RUpKSSBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJl
ZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIElkZW50aWZpZXIqIGlkZW50aWZpZXIpCiAg
ICAgewpAQCAtMTMwNCw3ICsxMzA0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5wdXNo
KGFyZzFQYXlsb2FkKTsKICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3Rlcik7CiAKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24p
OworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9wZXJh
dGlvbikpOwogICAgIH0KIAogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihEX0RGR09wZXJhdGlvbl9E
RCBvcGVyYXRpb24sIEZQUlJlZyByZXN1bHQsIEZQUlJlZyBhcmcxLCBGUFJSZWcgYXJnMikKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlcjMyXzY0
LmNwcAkocmV2aXNpb24gOTYyOTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyArNTYwLDcgQEAgdm9p
ZCBKSVRDb21waWxlcjo6Y29tcGlsZUJvZHkoKQogICAgICAgICBwZWVrKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSwgLTEpOwogICAgICAgICBwdXNoKEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAg
ICAgIHB1c2goR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICBtX2NhbGxzLmFw
cGVuZChDYWxsUmVjb3JkKGNhbGwoKSwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOworICAgICAg
ICBtX2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwoKSwgRnVuY3Rpb25QdHIobG9va3VwRXhj
ZXB0aW9uSGFuZGxlcikpKTsKICAgICAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBsZWF2
ZXMgdGhlIGhhbmRsZXIgQ2FsbEZyYW1lKiBpbiB0aGUgcmV0dXJuVmFsdWVHUFIsCiAgICAgICAg
IC8vIGFuZCB0aGUgYWRkcmVzcyBvZiB0aGUgaGFuZGxlciBpbiByZXR1cm5WYWx1ZUdQUjIuCiAg
ICAgICAgIGp1bXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAkocmV2aXNpb24gOTYyOTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgs
NyArMjA4LDcgQEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZQogICAg
ICAgICAKICAgICAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CiAg
ICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5q
dW1wQXRPZmZzZXQoc3R1YkluZm8uZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjayksIENvZGVMb2NhdGlv
bkxhYmVsKHN0dWJJbmZvLnN0dWJSb3V0aW5lLmNvZGUoKSkpOwotICAgICAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWQp
OworICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24sIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5SWQpKTsKICAgICAgICAgCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgYm9vbCB0cnlDYWNo
ZUdldEJ5SUQoRXhlY1N0YXRlKiBlCiAgICAgICAgIGlmICgoc2xvdC5jYWNoZWRQcm9wZXJ0eVR5
cGUoKSAhPSBQcm9wZXJ0eVNsb3Q6OlZhbHVlKSB8fCAoKHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBz
aXplb2YoSlNWYWx1ZSkpID4gKHVuc2lnbmVkKU1hY3JvQXNzZW1ibGVyOjpNYXhpbXVtQ29tcGFj
dFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICBkZmdSZXBhdGNoQnlJZFNlbGZBY2Nlc3MoY29kZUJsb2NrLCBzdHViSW5mbywgc3Ry
dWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0LCB0
cnVlKTsKKyAgICAgICAgZGZnUmVwYXRjaEJ5SWRTZWxmQWNjZXNzKGNvZGVCbG9jaywgc3R1Yklu
Zm8sIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9u
R2V0QnlJZEJ1aWxkTGlzdCksIHRydWUpOwogICAgICAgICBzdHViSW5mby5pbml0R2V0QnlJZFNl
bGYoKmdsb2JhbERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMg
Ym9vbCB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBlCiAgICAgCiAgICAgUmVwYXRjaEJ1ZmZl
ciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoc3R1
YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmp1bXBBdE9mZnNldChzdHViSW5mby5kZWx0YUNhbGxU
b1N0cnVjdENoZWNrKSwgQ29kZUxvY2F0aW9uTGFiZWwoc3R1YkluZm8uc3R1YlJvdXRpbmUuY29k
ZSgpKSk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoc3R1YkluZm8uY2FsbFJldHVybkxvY2F0
aW9uLCBvcGVyYXRpb25HZXRCeUlkUHJvdG9CdWlsZExpc3QpOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgRnVuY3Rpb25QdHIob3BlcmF0aW9u
R2V0QnlJZFByb3RvQnVpbGRMaXN0KSk7CiAgICAgCiAgICAgc3R1YkluZm8uaW5pdEdldEJ5SWRD
aGFpbigqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3RydWN0dXJl
LCBwcm90b3R5cGVDaGFpbik7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjUsNyArMjY1LDcgQEAg
dm9pZCBkZmdSZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIAogewogICAgIGJvb2wgY2Fj
aGVkID0gdHJ5Q2FjaGVHZXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90
LCBzdHViSW5mbyk7CiAgICAgaWYgKCFjYWNoZWQpCi0gICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4
ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdl
dEJ5SWQpOworICAgICAgICBkZmdSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeUlkKSk7CiB9
CiAKIHN0YXRpYyB2b2lkIGRmZ1JlcGF0Y2hHZXRNZXRob2RGYXN0KEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhvZENhbGxMaW5rSW5mbyYgbWV0aG9k
SW5mbywgSlNPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBz
bG90QmFzZU9iamVjdCkKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgdm9pZCBkZmdSZXBhdGNo
R2V0TWV0aG9kRmFzdChKU0dsCiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVC
bG9jayk7CiAKICAgICAvLyBPbmx5IG9wdGltaXplIG9uY2UhCi0gICAgcmVwYXRjaEJ1ZmZlci5y
ZWxpbmsobWV0aG9kSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsobWV0aG9kSW5mby5jYWxsUmV0dXJuTG9j
YXRpb24sIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSkpOwogCiAgICAgbWV0
aG9kSW5mby5jYWNoZWRTdHJ1Y3R1cmUuc2V0KCpnbG9iYWxEYXRhLCBvd25lciwgc3RydWN0dXJl
KTsKICAgICBtZXRob2RJbmZvLmNhY2hlZFByb3RvdHlwZVN0cnVjdHVyZS5zZXQoKmdsb2JhbERh
dGEsIG93bmVyLCBzbG90QmFzZU9iamVjdC0+c3RydWN0dXJlKCkpOwpAQCAtMzIyLDcgKzMyMiw3
IEBAIHZvaWQgZGZnUmVwYXRjaEdldE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMKIHsKICAgICBib29s
IGNhY2hlZCA9IHRyeUNhY2hlR2V0TWV0aG9kKGV4ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlOYW1l
LCBzbG90LCBtZXRob2RJbmZvKTsKICAgICBpZiAoIWNhY2hlZCkKLSAgICAgICAgZGZnUmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIG1ldGhvZEluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBv
cGVyYXRpb25HZXRCeUlkT3B0aW1pemUpOworICAgICAgICBkZmdSZXBhdGNoQ2FsbChleGVjLT5j
b2RlQmxvY2soKSwgbWV0aG9kSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIEZ1bmN0aW9uUHRyKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSkpOwogfQogCiBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5
SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZp
ZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5m
bykKQEAgLTQwNCw3ICs0MDQsNyBAQCB2b2lkIGRmZ0J1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRl
KiBleGVjCiB7CiAgICAgYm9vbCBkb250Q2hhbmdlQ2FsbCA9IHRyeUJ1aWxkR2V0QnlJRExpc3Qo
ZXhlYywgYmFzZVZhbHVlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvKTsKICAgICBpZiAo
IWRvbnRDaGFuZ2VDYWxsKQotICAgICAgICBkZmdSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2so
KSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkKTsKKyAgICAg
ICAgZGZnUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlJZCkpOwogfQogCiBzdGF0aWMgYm9v
bCB0cnlCdWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
IHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKQEAgLTQ3MCw3ICs0NzAsNyBAQCB2
b2lkIGRmZ0J1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqCiB7CiAgICAgYm9vbCBkb250
Q2hhbmdlQ2FsbCA9IHRyeUJ1aWxkR2V0QnlJRFByb3RvTGlzdChleGVjLCBiYXNlVmFsdWUsIHBy
b3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8pOwogICAgIGlmICghZG9udENoYW5nZUNhbGwpCi0g
ICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0
dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWQpOworICAgICAgICBkZmdSZXBhdGNoQ2FsbChl
eGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBGdW5jdGlvblB0
cihvcGVyYXRpb25HZXRCeUlkKSk7CiB9CiAKIHN0YXRpYyBWX0RGR09wZXJhdGlvbl9FSkpJIGFw
cHJvcHJpYXRlUHV0QnlJZEZ1bmN0aW9uKGNvbnN0IFB1dFByb3BlcnR5U2xvdCAmc2xvdCwgUHV0
S2luZCBwdXRLaW5kKQpAQCAtNjA2LDE0ICs2MDYsMTQgQEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVQ
dXRCeUlEKEV4ZWNTdGF0ZSogZQogICAgICAgICAgICAgCiAgICAgICAgICAgICBSZXBhdGNoQnVm
ZmVyIHJlcGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5qdW1wQXRPZmZzZXQoc3R1YkluZm8u
ZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjayksIENvZGVMb2NhdGlvbkxhYmVsKHN0dWJJbmZvLnN0dWJS
b3V0aW5lLmNvZGUoKSkpOwotICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLCBhcHByb3ByaWF0ZVB1dEJ5SWRGdW5jdGlvbihzbG90LCBw
dXRLaW5kKSk7CisgICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhzdHViSW5mby5jYWxs
UmV0dXJuTG9jYXRpb24sIEZ1bmN0aW9uUHRyKGFwcHJvcHJpYXRlUHV0QnlJZEZ1bmN0aW9uKHNs
b3QsIHB1dEtpbmQpKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRQ
dXRCeUlkVHJhbnNpdGlvbigqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KSwgb2xkU3RydWN0dXJlLCBzdHJ1Y3R1cmUsIHByb3RvdHlwZUNoYWluKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBkZmdSZXBh
dGNoQnlJZFNlbGZBY2Nlc3MoY29kZUJsb2NrLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNh
Y2hlZE9mZnNldCgpLCBhcHByb3ByaWF0ZVB1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSwg
ZmFsc2UpOworICAgICAgICBkZmdSZXBhdGNoQnlJZFNlbGZBY2Nlc3MoY29kZUJsb2NrLCBzdHVi
SW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCBGdW5jdGlvblB0cihhcHByb3By
aWF0ZVB1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSksIGZhbHNlKTsKICAgICAgICAgc3R1
YkluZm8uaW5pdFB1dEJ5SWRSZXBsYWNlKCpnbG9iYWxEYXRhLCBjb2RlQmxvY2stPm93bmVyRXhl
Y3V0YWJsZSgpLCBzdHJ1Y3R1cmUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC02
MjYsNyArNjI2LDcgQEAgdm9pZCBkZmdSZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIAog
ewogICAgIGJvb2wgY2FjaGVkID0gdHJ5Q2FjaGVQdXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgcHJv
cGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgcHV0S2luZCk7CiAgICAgaWYgKCFjYWNoZWQpCi0g
ICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0
dXJuTG9jYXRpb24sIGFwcHJvcHJpYXRlUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsK
KyAgICAgICAgZGZnUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiwgRnVuY3Rpb25QdHIoYXBwcm9wcmlhdGVQdXRCeUlkRnVuY3Rpb24oc2xv
dCwgcHV0S2luZCkpKTsKIH0KIAogdm9pZCBkZmdMaW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2Fs
bExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBKU0Z1
bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQpCkBAIC02NDUsMTEgKzY0NSwxMSBAQCB2b2lkIGRmZ0xpbmtGb3Io
RXhlY1N0YXRlKiBleGVjLCBDYWxsTGluCiAgICAgfQogICAgIAogICAgIGlmIChraW5kID09IENv
ZGVGb3JDYWxsKSB7Ci0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKENvZGVMb2NhdGlvbkNh
bGwoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiksIG9wZXJhdGlvblZpcnR1YWxDYWxs
KTsKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoQ29kZUxvY2F0aW9uQ2FsbChjYWxsTGlu
a0luZm8uY2FsbFJldHVybkxvY2F0aW9uKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uVmlydHVhbENh
bGwpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9y
Q29uc3RydWN0KTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhDb2RlTG9jYXRpb25DYWxsKGNh
bGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24pLCBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0
KTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluayhDb2RlTG9jYXRpb25DYWxsKGNhbGxMaW5rSW5m
by5jYWxsUmV0dXJuTG9jYXRpb24pLCBGdW5jdGlvblB0cihvcGVyYXRpb25WaXJ0dWFsQ29uc3Ry
dWN0KSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2
aXNpb24gOTYyOTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIG1faml0LnB1c2gocHJv
cGVydHlSZWcpOwogICAgICAgICBtX2ppdC5wdXNoKGJhc2VSZWcpOwogICAgICAgICBtX2ppdC5w
dXNoKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgSklUQ29tcGlsZXI6OkNh
bGwgZnVuY3Rpb25DYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzKTsKKyAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgZnVu
Y3Rpb25DYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhGdW5jdGlvblB0cihvcGVy
YXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzKSk7CiAgICAgICAgIHNpbGVudEZpbGxBbGxS
ZWdpc3RlcnMoc2NyYXRjaFJlZyk7CiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIHdhc0JleW9u
ZEFycmF5Qm91bmRzID0gbV9qaXQuanVtcCgpOwogCkBAIC0xNTQwLDcgKzE1NDAsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICBtX2ppdC5w
dXNoKG9wMVRhZ0dQUik7CiAgICAgICAgICAgICBtX2ppdC5wdXNoKG9wMVBheWxvYWRHUFIpOwog
ICAgICAgICAgICAgbV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblRvUHJpbWl0aXZl
KTsKKyAgICAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIo
b3BlcmF0aW9uVG9QcmltaXRpdmUpKTsKICAgICAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRU
YWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICAgICAgCkBAIC0x
Njc2LDcgKzE2NzYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUp
CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIG1f
aml0Lm1vdmUocHJvdG9HUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIG1faml0
Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uQ3JlYXRlVGhp
cyk7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3Bl
cmF0aW9uQ3JlYXRlVGhpcykpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCByZXN1bHRHUFIpOwogICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3Vs
dEdQUik7CiAgICAgICAgIApAQCAtMTcwMyw3ICsxNzAzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAKICAgICAgICAgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25OZXdPYmplY3QpOworICAgICAgICBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKEZ1bmN0aW9uUHRyKG9wZXJhdGlvbk5ld09iamVjdCkpOwogICAg
ICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwogICAg
ICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIApAQCAtMjA4
OCw3ICsyMDg4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICBtX2ppdC5wdXNoKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tMzIocmVpbnRlcnByZXRf
Y2FzdDxpbnQ+KCZtX2ppdC5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihkYXRhLmlkZW50aWZpZXJO
dW1iZXIpKSkpOwogICAgICAgICBtX2ppdC5wdXNoKHJlc29sdmVJbmZvR1BSKTsKICAgICAgICAg
bV9qaXQucHVzaChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIEpJVENvbXBp
bGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uUmVzb2x2ZUdsb2JhbCk7CisgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9u
Q2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soRnVuY3Rpb25QdHIob3BlcmF0aW9u
UmVzb2x2ZUdsb2JhbCkpOwogICAgICAgICBzZXR1cFJlc3VsdHMocmVzdWx0VGFnR1BSLCByZXN1
bHRQYXlsb2FkR1BSKTsKICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdH
UFIsIHJlc3VsdFBheWxvYWRHUFIpOwogCg==
</data>
<flag name="review"
          id="106268"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109153</attachid>
            <date>2011-09-29 05:07:57 -0700</date>
            <delta_ts>2011-09-29 12:35:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>69058.1.patch</filename>
            <type>text/plain</type>
            <size>2920</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTYzMjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDktMjkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+CisKKyAg
ICAgICAgREZHIG9wZXJhdGlvbiBjYWxscyBzaG91bGQgYmUgc3RkY2FsbCBpbiBMaW51eCBKU1ZB
TFVFMzJfNjQgREZHIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjkwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBbHNvIEZpeGVkIHRoZSBzdGRjYWxsIEZ1bmN0aW9uUHRyIGNvbnN0cnVjdG9ycyB0
byBtYWtlIHRoZW0gY29tcGlsZWQgY29ycmVjdGx5IG9uIExpbnV4CisKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUHRy
OjpGdW5jdGlvblB0cik6CisKIDIwMTEtMDktMjkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlh
bkBpbnRlbC5jb20+CiAKICAgICAgICAgSlNWQUxVRTMyXzY0IERGRyBKSVQgZmFpbGVkIHRvIGJl
IGJ1aWx0IG9uIDMyLWJpdCBMaW51eCBkdWUgdG8gaW5jb3JyZWN0IG92ZXJsb2FkZWQgT3BJbmZv
IGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQ29kZVJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgJKHJldmlzaW9uIDk2MzIwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBBU1NFUlRfVkFMSURfQ09ERV9P
RkZTRVQob2Zmc2V0KSAvLyBBbnl0aGluZyBnb2VzIQogI2VuZGlmCiAKLSNpZiBDUFUoWDg2KSAm
JiBQTEFURk9STShNQUMpCisjaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoR0NDKQogI2RlZmluZSBD
QUxMSU5HX0NPTlZFTlRJT05fSVNfQ0RFQ0wgMQogI2Vsc2UKICNkZWZpbmUgQ0FMTElOR19DT05W
RU5USU9OX0lTX0NERUNMIDAKQEAgLTEwOSwzNSArMTA5LDM1IEBAIHB1YmxpYzoKICNpZiBDQUxM
SU5HX0NPTlZFTlRJT05fSVNfQ0RFQ0wKICNkZWZpbmUgU1REQ0FMTCBfX2F0dHJpYnV0ZV9fICgo
c3RkY2FsbCkpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgcmV0dXJuVHlwZT4KLSAgICBGdW5jdGlv
blB0cihyZXR1cm5UeXBlIFNURENBTEwoKnZhbHVlKSgpKQorICAgIEZ1bmN0aW9uUHRyKHJldHVy
blR5cGUgKFNURENBTEwgKnZhbHVlKSgpKQogICAgICAgICA6IG1fdmFsdWUoKHZvaWQqKXZhbHVl
KQogICAgIHsKICAgICAgICAgQVNTRVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSByZXR1cm5UeXBlLCB0eXBlbmFtZSBhcmdUeXBl
MT4KLSAgICBGdW5jdGlvblB0cihyZXR1cm5UeXBlIFNURENBTEwoKnZhbHVlKShhcmdUeXBlMSkp
CisgICAgRnVuY3Rpb25QdHIocmV0dXJuVHlwZSAoU1REQ0FMTCAqdmFsdWUpKGFyZ1R5cGUxKSkK
ICAgICAgICAgOiBtX3ZhbHVlKCh2b2lkKil2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9W
QUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgcmV0dXJuVHlwZSwgdHlwZW5hbWUgYXJnVHlwZTEsIHR5cGVuYW1lIGFyZ1R5cGUyPgotICAg
IEZ1bmN0aW9uUHRyKHJldHVyblR5cGUgU1REQ0FMTCgqdmFsdWUpKGFyZ1R5cGUxLCBhcmdUeXBl
MikpCisgICAgRnVuY3Rpb25QdHIocmV0dXJuVHlwZSAoU1REQ0FMTCAqdmFsdWUpKGFyZ1R5cGUx
LCBhcmdUeXBlMikpCiAgICAgICAgIDogbV92YWx1ZSgodm9pZCopdmFsdWUpCiAgICAgewogICAg
ICAgICBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKG1fdmFsdWUpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIHJldHVyblR5cGUsIHR5cGVuYW1lIGFyZ1R5cGUxLCB0eXBlbmFtZSBh
cmdUeXBlMiwgdHlwZW5hbWUgYXJnVHlwZTM+Ci0gICAgRnVuY3Rpb25QdHIocmV0dXJuVHlwZSBT
VERDQUxMKCp2YWx1ZSkoYXJnVHlwZTEsIGFyZ1R5cGUyLCBhcmdUeXBlMykpCisgICAgRnVuY3Rp
b25QdHIocmV0dXJuVHlwZSAoU1REQ0FMTCAqdmFsdWUpKGFyZ1R5cGUxLCBhcmdUeXBlMiwgYXJn
VHlwZTMpKQogICAgICAgICA6IG1fdmFsdWUoKHZvaWQqKXZhbHVlKQogICAgIHsKICAgICAgICAg
QVNTRVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSByZXR1cm5UeXBlLCB0eXBlbmFtZSBhcmdUeXBlMSwgdHlwZW5hbWUgYXJnVHlw
ZTIsIHR5cGVuYW1lIGFyZ1R5cGUzLCB0eXBlbmFtZSBhcmdUeXBlND4KLSAgICBGdW5jdGlvblB0
cihyZXR1cm5UeXBlIFNURENBTEwoKnZhbHVlKShhcmdUeXBlMSwgYXJnVHlwZTIsIGFyZ1R5cGUz
LCBhcmdUeXBlNCkpCisgICAgRnVuY3Rpb25QdHIocmV0dXJuVHlwZSAoU1REQ0FMTCAqdmFsdWUp
KGFyZ1R5cGUxLCBhcmdUeXBlMiwgYXJnVHlwZTMsIGFyZ1R5cGU0KSkKICAgICAgICAgOiBtX3Zh
bHVlKCh2b2lkKil2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9WQUxJRF9DT0RFX1BPSU5U
RVIobV92YWx1ZSk7Cg==
</data>
<flag name="review"
          id="106317"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>