<?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>100897</bug_id>
          
          <creation_ts>2012-10-31 15:29:37 -0700</creation_ts>
          <short_desc>[V8] Unify the V8GCController visitors</short_desc>
          <delta_ts>2012-11-05 08:31:44 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100707</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755677</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 15:29:37 -0700</bug_when>
    <thetext>[V8] Unify the V8GCController visitors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755678</commentid>
    <comment_count>1</comment_count>
      <attachid>171730</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 15:32:13 -0700</bug_when>
    <thetext>Created attachment 171730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755681</commentid>
    <comment_count>2</comment_count>
      <attachid>171732</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 15:37:51 -0700</bug_when>
    <thetext>Created attachment 171732
patch (rebased onto bug 100707)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755835</commentid>
    <comment_count>3</comment_count>
      <attachid>171732</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-31 20:34:57 -0700</bug_when>
    <thetext>Comment on attachment 171732
patch (rebased onto bug 100707)

LGTM.  Presumably you&apos;ll want to wait for haraken too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755901</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 22:54:49 -0700</bug_when>
    <thetext>@haraken: Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755967</commentid>
    <comment_count>5</comment_count>
      <attachid>171732</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-01 00:48:15 -0700</bug_when>
    <thetext>Comment on attachment 171732
patch (rebased onto bug 100707)

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

LGTM with some nits.

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:176
&gt; +class GCHandleVisitor : public v8::PersistentHandleVisitor {

Nit: I would prefer DOMWrapperVisitor than GCHandleVisitor.

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:178
&gt; +    virtual void VisitPersistentHandle(v8::Persistent&lt;v8::Value&gt; value, uint16_t classId) OVERRIDE

VisitDOMWrapper() or VisitDOMWrapperHandle() ?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:220
&gt; +        } else {
&gt; +            ASSERT(classId == v8DOMObjectClassId);
&gt; +            m_grouper.addToGroup(type-&gt;opaqueRootForGC(object, wrapper), wrapper);
&gt; +        }

} else if (classId == v8DOMObjectClassId) {
    m_grouper.addToGroup(type-&gt;opaqueRootForGC(object, wrapper), wrapper);
  } else {
    ASSERT_NOT_REACHED();
  }

might be better, to avoid executing m_grouper.addToGroup() for unexpected objects in a release build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756088</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 04:30:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 171732 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171732&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:178
&gt; &gt; +    virtual void VisitPersistentHandle(v8::Persistent&lt;v8::Value&gt; value, uint16_t classId) OVERRIDE
&gt; 
&gt; VisitDOMWrapper() or VisitDOMWrapperHandle() ?

This name comes from the V8 API.  I&apos;ll make your other suggested changes, however.  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756089</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-01 04:31:51 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; &gt; +    virtual void VisitPersistentHandle(v8::Persistent&lt;v8::Value&gt; value, uint16_t classId) OVERRIDE
&gt; &gt; 
&gt; &gt; VisitDOMWrapper() or VisitDOMWrapperHandle() ?
&gt; 
&gt; This name comes from the V8 API.  I&apos;ll make your other suggested changes, however.  ;)

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756154</commentid>
    <comment_count>8</comment_count>
      <attachid>171828</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 06:24:12 -0700</bug_when>
    <thetext>Created attachment 171828
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756170</commentid>
    <comment_count>9</comment_count>
      <attachid>171828</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 06:46:24 -0700</bug_when>
    <thetext>Comment on attachment 171828
Patch for landing

Rejecting attachment 171828 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ler.cpp:252: error: &apos;visitor&apos; was not declared in this scope
cc1plus: warnings being treated as errors
Source/WebCore/bindings/v8/V8GCController.cpp: At global scope:
Source/WebCore/bindings/v8/V8GCController.cpp:136: error: &apos;void WebCore::addImplicitReferencesForNodeWithEventListeners(WebCore::Node*, v8::Persistent&lt;v8::Object&gt;)&apos; defined but not used
make: *** [out/Release/obj.target/webcore_remaining/Source/WebCore/bindings/v8/V8GCController.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/14561603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756215</commentid>
    <comment_count>10</comment_count>
      <attachid>171843</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 07:19:24 -0700</bug_when>
    <thetext>Created attachment 171843
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756245</commentid>
    <comment_count>11</comment_count>
      <attachid>171843</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 07:52:28 -0700</bug_when>
    <thetext>Comment on attachment 171843
Patch for landing

Clearing flags on attachment: 171843

Committed r133169: &lt;http://trac.webkit.org/changeset/133169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756246</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 07:52:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758459</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 05:49:30 -0800</bug_when>
    <thetext>BTW, classID should be stored not in global handles but in WrapperTypeInfo, shouldn&apos;t it? Then we can remove the code to set/get class IDs. If that&apos;s the case, I&apos;ll upload a patch. (Hopefully we want to eliminate a class_id_ field from global handles of V8, but it would be difficult for compatibility reasons.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758561</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 08:31:44 -0800</bug_when>
    <thetext>&gt; BTW, classID should be stored not in global handles but in WrapperTypeInfo, shouldn&apos;t it? Then we can remove the code to set/get class IDs. If that&apos;s the case, I&apos;ll upload a patch. (Hopefully we want to eliminate a class_id_ field from global handles of V8, but it would be difficult for compatibility reasons.)

We need to store the class ID in the handle, not in the WrapperTypeInfo.  We use them to know that a handle has a WrapperTypeInfo field in the first place.  There&apos;s lots of code that might open persistent V8 handles.  When we enumerate the handles, we need to know whether the current handle is a DOM wrapper or some other kind of handle.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171730</attachid>
            <date>2012-10-31 15:32:13 -0700</date>
            <delta_ts>2012-10-31 15:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100897-20121031153036.patch</filename>
            <type>text/plain</type>
            <size>11383</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhhNmYwNDk2MWYzNzZm
MDMwODExNzQ2ZDdkN2E4NzEyNDgwMzM1Mi4uNDA1ZjhjZjJkMDVkOWI3MjE1OTY4NzljYjhlOGRm
YWZjNzI4OTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTMxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBVbmlmeSB0aGUgVjhH
Q0NvbnRyb2xsZXIgdmlzaXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gsIHdlIHVzZSBhIHNpbmdsZSB2aXNpdG9yIGZv
ciBhbGwgRE9NIHdyYXBwZXJzLAorICAgICAgICByZWdhcmRsZXNzIG9mIHR5cGUuIFdlIGFsc28g
dmlzaXQgYWxsIHRoZSB3cmFwcGVycyBpbiBvbmUgcGFzcyBieQorICAgICAgICBjYWxsaW5nIHY4
OjpWODo6VmlzaXRIYW5kbGVzV2l0aENsYXNzSWRzIGRpcmVjdGx5IHJhdGhlciB0aGFuIHZpYQor
ICAgICAgICB2aXNpdEFsbERPTU5vZGVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRy
b2R1Y2VzIGEgd3JhcHBlciBjbGFzcyBJRCBmb3Igbm9uLU5vZGUgRE9NIG9iamVjdHMuCisgICAg
ICAgIFByZXZpb3VzbHksIG9ubHkgRE9NIG5vZGVzIGhhZCBhIGNsYXNzIElELgorCisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJldGFpbmVkRE9N
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhET01NYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlz
aXRBbGxET01Ob2Rlcyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NTm9kZSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NIYW5kbGVW
aXNpdG9yOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChHQ0hhbmRsZVZpc2l0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHQ0NvbnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlKToKKwog
MjAxMi0xMC0zMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg3OQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCmluZGV4IGY0
NjViMTY4Yzc0ZDIwYTlhYmU3OGVlYzI5MjljMjRjNDE4MjhhZTMuLmRjY2ZkMTA3ZjkzOGQxMDgx
MjQwZmI3M2MzYzAyOTI1MDhiN2NhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXQoTm9kZSogbm9kZSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gd3JhcHBlcikgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlICYmIG5v
ZGUtPndyYXBwZXIoKS5Jc0VtcHR5KCkpOwotICAgICAgICBBU1NFUlQod3JhcHBlci5XcmFwcGVy
Q2xhc3NJZCgpID09IHY4RE9NU3VidHJlZUNsYXNzSWQpOworICAgICAgICBBU1NFUlQod3JhcHBl
ci5XcmFwcGVyQ2xhc3NJZCgpID09IHY4RE9NTm9kZUNsYXNzSWQpOwogICAgICAgICBub2RlLT5z
ZXRXcmFwcGVyKHdyYXBwZXIpOwogICAgICAgICB3cmFwcGVyLk1ha2VXZWFrKG5vZGUsIHdlYWtD
YWxsYmFjayk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0UHJvZmlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJv
ZmlsZXIuY3BwCmluZGV4IDFiNzE5MWNhYTRhODQ4MDUzYzRmMzMxMTRjOGQ1NzE1OTYxNTllMjIu
Ljc4ZTdlMDdmNWYxMmE2NzM1NGMwYzA2Yjk3ZGE2OWVkMjljYWVmMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKQEAgLTE2NSw3ICsxNjUsNyBA
QCBQYXNzUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gU2NyaXB0UHJvZmlsZXI6OnRha2VIZWFw
U25hcHNob3QoY29uc3QgU3RyaW5nJiB0aQogCiBzdGF0aWMgdjg6OlJldGFpbmVkT2JqZWN0SW5m
byogcmV0YWluZWRET01JbmZvKHVpbnQxNl90IGNsYXNzSWQsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB3cmFwcGVyKQogewotICAgIEFTU0VSVChjbGFzc0lkID09IHY4RE9NU3VidHJlZUNsYXNzSWQp
OworICAgIEFTU0VSVChjbGFzc0lkID09IHY4RE9NTm9kZUNsYXNzSWQpOwogICAgIGlmICghd3Jh
cHBlci0+SXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgTm9kZSogbm9kZSA9IFY4
Tm9kZTo6dG9OYXRpdmUod3JhcHBlci5Bczx2ODo6T2JqZWN0PigpKTsKQEAgLTE3NCw3ICsxNzQs
NyBAQCBzdGF0aWMgdjg6OlJldGFpbmVkT2JqZWN0SW5mbyogcmV0YWluZWRET01JbmZvKHVpbnQx
Nl90IGNsYXNzSWQsIHY4OjpIYW5kbGU8djg6OgogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjppbml0
aWFsaXplKCkKIHsKLSAgICB2ODo6SGVhcFByb2ZpbGVyOjpEZWZpbmVXcmFwcGVyQ2xhc3ModjhE
T01TdWJ0cmVlQ2xhc3NJZCwgJnJldGFpbmVkRE9NSW5mbyk7CisgICAgdjg6OkhlYXBQcm9maWxl
cjo6RGVmaW5lV3JhcHBlckNsYXNzKHY4RE9NTm9kZUNsYXNzSWQsICZyZXRhaW5lZERPTUluZm8p
OwogfQogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjp2aXNpdE5vZGVXcmFwcGVycyhXcmFwcGVkTm9k
ZVZpc2l0b3IqIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5jcHAK
aW5kZXggZjY2MWRkOTc4ZmQyMDQzYmI1YWJmMGE3YTkwODk1OGVkNDBhNmIxZS4uYWM0Y2Q4ZDgw
NzVmZGJlMjQ1ZmNhMjg0NTljNGQzOWI0OWFhNjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01NYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NTWFwLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIHZpc2l0QWxsRE9NTm9kZXMo
Tm9kZVdyYXBwZXJWaXNpdG9yKiB2aXNpdG9yKQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBWaXNp
dFBlcnNpc3RlbnRIYW5kbGUodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwgdWludDE2
X3QgY2xhc3NJZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGNsYXNzSWQgIT0gdjhET01T
dWJ0cmVlQ2xhc3NJZCkKKyAgICAgICAgICAgIGlmIChjbGFzc0lkICE9IHY4RE9NTm9kZUNsYXNz
SWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgQVNTRVJUKFY4Tm9kZTo6
SGFzSW5zdGFuY2UodmFsdWUpKTsKICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZS0+SXNPYmplY3Qo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRleCBi
NjhhODc2ZGI0NzdmYzU1YmU5YmRmM2I3ZTc5YmZlYjgyOWQ5ODFiLi43ODNjYWJmNTZmNDU5ZDk4
MDJhMGQzZDI5OWNiZThlMWExZjE3Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01Ob2RlKFBhc3NSZWZQdHI8Tm9k
ZT4KIHsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyh3cmFwcGVyKTsKICAgICBBU1NFUlQobWF5YmVE
T01XcmFwcGVyKHdyYXBwZXJIYW5kbGUpKTsKLSAgICB3cmFwcGVySGFuZGxlLlNldFdyYXBwZXJD
bGFzc0lkKHY4RE9NU3VidHJlZUNsYXNzSWQpOworICAgIHdyYXBwZXJIYW5kbGUuU2V0V3JhcHBl
ckNsYXNzSWQodjhET01Ob2RlQ2xhc3NJZCk7CiAgICAgZ2V0RE9NTm9kZU1hcChpc29sYXRlKS5z
ZXQobm9kZS5sZWFrUmVmKCksIHdyYXBwZXJIYW5kbGUpOwogICAgIHJldHVybiB3cmFwcGVySGFu
ZGxlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFw
cGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRleCBh
NTI5MjNiNWIyM2Y1ZTRiOGM0NDg0ZTZmYjFiODhkNDkxNmEwYzExLi43MjFkMjk1YTc3YTliNGU1
ODI2YWYwMGY0Y2E0NGYwMWY0ZGVlMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuaApAQCAtMTMxLDYgKzEzMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICB7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIpOwogICAgICAgICBBU1NFUlQo
bWF5YmVET01XcmFwcGVyKHdyYXBwZXJIYW5kbGUpKTsKKyAgICAgICAgd3JhcHBlckhhbmRsZS5T
ZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU9iamVjdENsYXNzSWQpOwogICAgICAgICBnZXRET01PYmpl
Y3RNYXAoaXNvbGF0ZSkuc2V0KG9iamVjdC5sZWFrUmVmKCksIHdyYXBwZXJIYW5kbGUpOwogICAg
ICAgICByZXR1cm4gd3JhcHBlckhhbmRsZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggZTkyOTcyNzBmYmEzZjYyODRhNjIyNzRh
NzU1OGJmOGNlMWYwOWVmNS4uZDVkN2JjMTFkNWQ1NTljMWVmZDllYTEyYjhmN2FkYzRiYzgxZjI4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApA
QCAtMTMyLDM3ICsxMzIsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxJbXBsaWNpdENvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbnM7CiB9OwogCi1jbGFzcyBPYmplY3RWaXNpdG9yIDogcHVibGljIERP
TVdyYXBwZXJWaXNpdG9yPHZvaWQ+IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBPYmplY3RWaXNp
dG9yKFdyYXBwZXJHcm91cGVyKiBncm91cGVyKQotICAgICAgICA6IG1fZ3JvdXBlcihncm91cGVy
KQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUq
LCB2b2lkKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCi0gICAg
ewotICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBw
ZXJUeXBlKHdyYXBwZXIpOwotCi0gICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFs
cyh0eXBlKSkgewotICAgICAgICAgICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0
J3MgZW50YW5nbGVkLiBGb3Igc2ltcGxpY2l0eSdzIHNha2UsCi0gICAgICAgICAgICAvLyB3ZSBh
c3N1bWUgYWxsIHBvcnRzIGFyZSByZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1
bSBwb3J0Ci0gICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZm
ZXJlbmNlLgotICAgICAgICAgICAgTWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNz
YWdlUG9ydCo+KG9iamVjdCk7Ci0gICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8
fCBwb3J0LT5oYXNQZW5kaW5nQWN0aXZpdHkoKSkKLSAgICAgICAgICAgICAgICBtX2dyb3VwZXIt
PmtlZXBBbGl2ZSh3cmFwcGVyKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFjdGl2
ZURPTU9iamVjdCogYWN0aXZlRE9NT2JqZWN0ID0gdHlwZS0+dG9BY3RpdmVET01PYmplY3Qod3Jh
cHBlcik7Ci0gICAgICAgICAgICBpZiAoYWN0aXZlRE9NT2JqZWN0ICYmIGFjdGl2ZURPTU9iamVj
dC0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpCi0gICAgICAgICAgICAgICAgbV9ncm91cGVyLT5rZWVw
QWxpdmUod3JhcHBlcik7Ci0gICAgICAgIH0KLQotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3Jv
dXAodHlwZS0+b3BhcXVlUm9vdEZvckdDKG9iamVjdCwgd3JhcHBlciksIHdyYXBwZXIpOwotICAg
IH0KLQotcHJpdmF0ZToKLSAgICBXcmFwcGVyR3JvdXBlciogbV9ncm91cGVyOwotfTsKLQogLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHVzZSBvcGFxdWUgR0Mgcm9vdHMuCiBzdGF0aWMgdm9pZCBhZGRJ
bXBsaWNpdFJlZmVyZW5jZXNGb3JOb2RlV2l0aEV2ZW50TGlzdGVuZXJzKE5vZGUqIG5vZGUsIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiB7CkBAIC0yMDQsMjkgKzE3Myw2MCBA
QCB2b2lkKiBWOEdDQ29udHJvbGxlcjo6b3BhcXVlUm9vdEZvckdDKE5vZGUqIG5vZGUpCiAgICAg
cmV0dXJuIG5vZGU7CiB9CiAKLWNsYXNzIE5vZGVWaXNpdG9yIDogcHVibGljIE5vZGVXcmFwcGVy
VmlzaXRvciB7CitjbGFzcyBHQ0hhbmRsZVZpc2l0b3IgOiBwdWJsaWMgdjg6OlBlcnNpc3RlbnRI
YW5kbGVWaXNpdG9yIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBOb2RlVmlzaXRvcihXcmFwcGVy
R3JvdXBlciogZ3JvdXBlcikKLSAgICAgICAgOiBtX2dyb3VwZXIoZ3JvdXBlcikKKyAgICB2aXJ0
dWFsIHZvaWQgVmlzaXRQZXJzaXN0ZW50SGFuZGxlKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4g
dmFsdWUsIHVpbnQxNl90IGNsYXNzSWQpIE9WRVJSSURFCiAgICAgewotICAgIH0KKyAgICAgICAg
QVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gd3JhcHBlciA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKTsK
IAotICAgIHZvaWQgdmlzaXROb2RlV3JhcHBlcihOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiB3cmFwcGVyKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc0V2ZW50TGlz
dGVuZXJzKCkpCi0gICAgICAgICAgICBhZGRJbXBsaWNpdFJlZmVyZW5jZXNGb3JOb2RlV2l0aEV2
ZW50TGlzdGVuZXJzKG5vZGUsIHdyYXBwZXIpOworICAgICAgICBpZiAoY2xhc3NJZCAhPSB2OERP
TU5vZGVDbGFzc0lkICYmIGNsYXNzSWQgIT0gdjhET01PYmplY3RDbGFzc0lkKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChWOERPTVdyYXBwZXI6Om1heWJlRE9NV3JhcHBl
cih2YWx1ZSkpOworCisgICAgICAgIGlmICh2YWx1ZS5Jc0luZGVwZW5kZW50KCkpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlID0gVjhET01XcmFw
cGVyOjpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKKyAgICAgICAgdm9pZCogb2JqZWN0ID0gdG9O
YXRpdmUod3JhcHBlcik7CisKKyAgICAgICAgaWYgKFY4TWVzc2FnZVBvcnQ6OmluZm8uZXF1YWxz
KHR5cGUpKSB7CisgICAgICAgICAgICAvLyBNYXJrIGVhY2ggcG9ydCBhcyBpbi11c2UgaWYgaXQn
cyBlbnRhbmdsZWQuIEZvciBzaW1wbGljaXR5J3Mgc2FrZSwKKyAgICAgICAgICAgIC8vIHdlIGFz
c3VtZSBhbGwgcG9ydHMgYXJlIHJlbW90ZWx5IGVudGFuZ2xlZCwgc2luY2UgdGhlIENocm9taXVt
IHBvcnQKKyAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbid0IHRlbGwgdGhlIGRpZmZl
cmVuY2UuCisgICAgICAgICAgICBNZXNzYWdlUG9ydCogcG9ydCA9IHN0YXRpY19jYXN0PE1lc3Nh
Z2VQb3J0Kj4ob2JqZWN0KTsKKyAgICAgICAgICAgIGlmIChwb3J0LT5pc0VudGFuZ2xlZCgpIHx8
IHBvcnQtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgICAgICAgICAgICAgIG1fZ3JvdXBlci5r
ZWVwQWxpdmUod3JhcHBlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBY3RpdmVE
T01PYmplY3QqIGFjdGl2ZURPTU9iamVjdCA9IHR5cGUtPnRvQWN0aXZlRE9NT2JqZWN0KHdyYXBw
ZXIpOworICAgICAgICAgICAgaWYgKGFjdGl2ZURPTU9iamVjdCAmJiBhY3RpdmVET01PYmplY3Qt
Pmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgICAgICAgICAgICAgIG1fZ3JvdXBlci5rZWVwQWxp
dmUod3JhcHBlcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2xhc3NJZCA9PSB2OERPTU5v
ZGVDbGFzc0lkKSB7CisgICAgICAgICAgICBBU1NFUlQoVjhOb2RlOjpIYXNJbnN0YW5jZSh3cmFw
cGVyKSk7CisgICAgICAgICAgICBBU1NFUlQoIXdyYXBwZXIuSXNJbmRlcGVuZGVudCgpKTsKKwor
ICAgICAgICAgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PE5vZGUqPihvYmplY3QpOwogCi0g
ICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZSA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5
cGUod3JhcHBlcik7ICAKKyAgICAgICAgICAgIGlmIChub2RlLT5oYXNFdmVudExpc3RlbmVycygp
KQorICAgICAgICAgICAgICAgIGFkZEltcGxpY2l0UmVmZXJlbmNlc0Zvck5vZGVXaXRoRXZlbnRM
aXN0ZW5lcnMobm9kZSwgd3JhcHBlcik7CiAKLSAgICAgICAgQWN0aXZlRE9NT2JqZWN0KiBhY3Rp
dmVET01PYmplY3QgPSB0eXBlLT50b0FjdGl2ZURPTU9iamVjdCh3cmFwcGVyKTsKLSAgICAgICAg
aWYgKGFjdGl2ZURPTU9iamVjdCAmJiBhY3RpdmVET01PYmplY3QtPmhhc1BlbmRpbmdBY3Rpdml0
eSgpKQotICAgICAgICAgICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7CisgICAgICAg
ICAgICBtX2dyb3VwZXIuYWRkVG9Hcm91cChWOEdDQ29udHJvbGxlcjo6b3BhcXVlUm9vdEZvckdD
KG5vZGUpLCB3cmFwcGVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChj
bGFzc0lkID09IHY4RE9NT2JqZWN0Q2xhc3NJZCk7CisgICAgICAgICAgICBtX2dyb3VwZXIuYWRk
VG9Hcm91cCh0eXBlLT5vcGFxdWVSb290Rm9yR0Mob2JqZWN0LCB3cmFwcGVyKSwgd3JhcHBlcik7
CisgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgbV9ncm91cGVyLT5hZGRUb0dyb3VwKFY4R0ND
b250cm9sbGVyOjpvcGFxdWVSb290Rm9yR0Mobm9kZSksIHdyYXBwZXIpOworICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoKQorICAgIHsKKyAgICAgICAgbV9ncm91cGVyLmFwcGx5KCk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFdyYXBwZXJHcm91cGVyKiBtX2dyb3VwZXI7CisgICAgV3JhcHBlckdy
b3VwZXIgbV9ncm91cGVyOwogfTsKIAogdm9pZCBWOEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSh2
ODo6R0NUeXBlIHR5cGUsIHY4OjpHQ0NhbGxiYWNrRmxhZ3MgZmxhZ3MpCkBAIC0yNDcsMTQgKzI0
Nyw5IEBAIHZvaWQgVjhHQ0NvbnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSgpCiAKICAgICB2ODo6
SGFuZGxlU2NvcGUgc2NvcGU7CiAKLSAgICBXcmFwcGVyR3JvdXBlciBncm91cGVyOwotCi0gICAg
Tm9kZVZpc2l0b3Igbm9kZVZpc2l0b3IoJmdyb3VwZXIpOwotICAgIE9iamVjdFZpc2l0b3Igb2Jq
ZWN0VmlzaXRvcigmZ3JvdXBlcik7Ci0gICAgdmlzaXRBbGxET01Ob2Rlcygmbm9kZVZpc2l0b3Ip
OwotICAgIHZpc2l0RE9NT2JqZWN0cygmb2JqZWN0VmlzaXRvcik7Ci0KLSAgICBncm91cGVyLmFw
cGx5KCk7CisgICAgR0NIYW5kbGVWaXNpdG9yIHZpc2l0b3I7CisgICAgdjg6OlY4OjpWaXNpdEhh
bmRsZXNXaXRoQ2xhc3NJZHMoJnZpc2l0b3IpOworICAgIHZpc2l0b3Iubm90aWZ5RmluaXNoZWQo
KTsKIAogICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJy
ZW50KCk7CiAgICAgZGF0YS0+c3RyaW5nQ2FjaGUoKS0+Y2xlYXJPbkdDKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCmluZGV4IDI3YzdlZjZiNzY5MTcx
YTMxYjIyMDEzY2I2MGI3YjI0NjZjNWRjMDUuLjBjYjRiOTU5YjhiOTZjNTViYTc1ZDdmZjhlNzY3
YTYzMjQ5MTI3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBw
ZXJUeXBlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBl
SW5mby5oCkBAIC00Miw3ICs0Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBzdGF0aWMg
Y29uc3QgaW50IHY4RE9NV3JhcHBlck9iamVjdEluZGV4ID0gMTsKICAgICBzdGF0aWMgY29uc3Qg
aW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAyOwogCi0gICAgc3RhdGlj
IGNvbnN0IHVpbnQxNl90IHY4RE9NU3VidHJlZUNsYXNzSWQgPSAxOworICAgIHN0YXRpYyBjb25z
dCB1aW50MTZfdCB2OERPTU5vZGVDbGFzc0lkID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDE2
X3QgdjhET01PYmplY3RDbGFzc0lkID0gMjsKIAogICAgIHR5cGVkZWYgdjg6OlBlcnNpc3RlbnQ8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVtcGxhdGVGdW5jdGlvbikoKTsKICAgICB0eXBl
ZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9uKSh2b2lkKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171732</attachid>
            <date>2012-10-31 15:37:51 -0700</date>
            <delta_ts>2012-11-01 06:24:09 -0700</delta_ts>
            <desc>patch (rebased onto bug 100707)</desc>
            <filename>bug-100897-20121031153614.patch</filename>
            <type>text/plain</type>
            <size>11536</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2Y2IwMmM3NDk1MzNl
M2YyMjkwODVmMjNiYzIzODkwMjNiMGEwOC4uNzgwYmEyMjJhMmFlNjE2MGQ3MjU1MWJiNTAzZDEy
YTk1M2YxMTY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTMxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBVbmlmeSB0aGUgVjhH
Q0NvbnRyb2xsZXIgdmlzaXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gsIHdlIHVzZSBhIHNpbmdsZSB2aXNpdG9yIGZv
ciBhbGwgRE9NIHdyYXBwZXJzLAorICAgICAgICByZWdhcmRsZXNzIG9mIHR5cGUuIFdlIGFsc28g
dmlzaXQgYWxsIHRoZSB3cmFwcGVycyBpbiBvbmUgcGFzcyBieQorICAgICAgICBjYWxsaW5nIHY4
OjpWODo6VmlzaXRIYW5kbGVzV2l0aENsYXNzSWRzIGRpcmVjdGx5IHJhdGhlciB0aGFuIHZpYQor
ICAgICAgICB2aXNpdEFsbERPTU5vZGVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRy
b2R1Y2VzIGEgd3JhcHBlciBjbGFzcyBJRCBmb3Igbm9uLU5vZGUgRE9NIG9iamVjdHMuCisgICAg
ICAgIFByZXZpb3VzbHksIG9ubHkgRE9NIG5vZGVzIGhhZCBhIGNsYXNzIElELgorCisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJldGFpbmVkRE9N
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhET01NYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlz
aXRBbGxET01Ob2Rlcyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NTm9kZSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NIYW5kbGVW
aXNpdG9yOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChHQ0hhbmRsZVZpc2l0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHQ0NvbnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlKToKKwor
MjAxMi0xMC0zMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtW
OF0gR2FyYmFnZSBjb2xsZWN0aW9uIHNob3VsZCB1c2Ugb3BhcXVlIHJvb3RzIHJhdGhlciB0aGFu
IGltcGxpY2l0IHJlZmVyZW5jZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDcwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKaW5kZXggZjQ2NWIxNjhjNzRkMjBhOWFiZTc4ZWVj
MjkyOWMyNGM0MTgyOGFlMy4uZGNjZmQxMDdmOTM4ZDEwODEyNDBmYjczYzNjMDI5MjUwOGI3Y2E3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3Jh
cHBlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdy
YXBwZXJNYXAuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dChOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKSBPVkVSUklE
RQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+d3JhcHBlcigpLklzRW1wdHko
KSk7Ci0gICAgICAgIEFTU0VSVCh3cmFwcGVyLldyYXBwZXJDbGFzc0lkKCkgPT0gdjhET01TdWJ0
cmVlQ2xhc3NJZCk7CisgICAgICAgIEFTU0VSVCh3cmFwcGVyLldyYXBwZXJDbGFzc0lkKCkgPT0g
djhET01Ob2RlQ2xhc3NJZCk7CiAgICAgICAgIG5vZGUtPnNldFdyYXBwZXIod3JhcHBlcik7CiAg
ICAgICAgIHdyYXBwZXIuTWFrZVdlYWsobm9kZSwgd2Vha0NhbGxiYWNrKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKaW5kZXggMWI3MTkx
Y2FhNGE4NDgwNTNjNGYzMzExNGM4ZDU3MTU5NjE1OWUyMi4uNzhlN2UwN2Y1ZjEyYTY3MzU0YzBj
MDZiOTdkYTY5ZWQyOWNhZWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFByb2ZpbGVyLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIFBhc3NSZWZQdHI8U2NyaXB0SGVh
cFNuYXBzaG90PiBTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcm
IHRpCiAKIHN0YXRpYyB2ODo6UmV0YWluZWRPYmplY3RJbmZvKiByZXRhaW5lZERPTUluZm8odWlu
dDE2X3QgY2xhc3NJZCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIpCiB7Ci0gICAgQVNT
RVJUKGNsYXNzSWQgPT0gdjhET01TdWJ0cmVlQ2xhc3NJZCk7CisgICAgQVNTRVJUKGNsYXNzSWQg
PT0gdjhET01Ob2RlQ2xhc3NJZCk7CiAgICAgaWYgKCF3cmFwcGVyLT5Jc09iamVjdCgpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSh3cmFwcGVy
LkFzPHY4OjpPYmplY3Q+KCkpOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyB2ODo6UmV0YWlu
ZWRPYmplY3RJbmZvKiByZXRhaW5lZERPTUluZm8odWludDE2X3QgY2xhc3NJZCwgdjg6OkhhbmRs
ZTx2ODo6CiAKIHZvaWQgU2NyaXB0UHJvZmlsZXI6OmluaXRpYWxpemUoKQogewotICAgIHY4OjpI
ZWFwUHJvZmlsZXI6OkRlZmluZVdyYXBwZXJDbGFzcyh2OERPTVN1YnRyZWVDbGFzc0lkLCAmcmV0
YWluZWRET01JbmZvKTsKKyAgICB2ODo6SGVhcFByb2ZpbGVyOjpEZWZpbmVXcmFwcGVyQ2xhc3Mo
djhET01Ob2RlQ2xhc3NJZCwgJnJldGFpbmVkRE9NSW5mbyk7CiB9CiAKIHZvaWQgU2NyaXB0UHJv
ZmlsZXI6OnZpc2l0Tm9kZVdyYXBwZXJzKFdyYXBwZWROb2RlVmlzaXRvciogdmlzaXRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcAppbmRleCBmNjYxZGQ5NzhmZDIwNDNi
YjVhYmYwYTdhOTA4OTU4ZWQ0MGE2YjFlLi5hYzRjZDhkODA3NWZkYmUyNDVmY2EyODQ1OWM0ZDM5
YjQ5YWE2NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1h
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAuY3BwCkBAIC02
OSw3ICs2OSw3IEBAIHZvaWQgdmlzaXRBbGxET01Ob2RlcyhOb2RlV3JhcHBlclZpc2l0b3IqIHZp
c2l0b3IpCiAKICAgICAgICAgdmlydHVhbCB2b2lkIFZpc2l0UGVyc2lzdGVudEhhbmRsZSh2ODo6
UGVyc2lzdGVudDx2ODo6VmFsdWU+IHZhbHVlLCB1aW50MTZfdCBjbGFzc0lkKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoY2xhc3NJZCAhPSB2OERPTVN1YnRyZWVDbGFzc0lkKQorICAgICAg
ICAgICAgaWYgKGNsYXNzSWQgIT0gdjhET01Ob2RlQ2xhc3NJZCkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICBBU1NFUlQoVjhOb2RlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpOwog
ICAgICAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IGI2OGE4NzZkYjQ3N2ZjNTViZTliZGYz
YjdlNzliZmViODI5ZDk4MWIuLjc4M2NhYmY1NmY0NTlkOTgwMmEwZDNkMjk5Y2JlOGUxYTFmMTdj
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAt
NzIsNyArNzIsNyBAQCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6OnNl
dEpTV3JhcHBlckZvckRPTU5vZGUoUGFzc1JlZlB0cjxOb2RlPgogewogICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
Pjo6TmV3KHdyYXBwZXIpOwogICAgIEFTU0VSVChtYXliZURPTVdyYXBwZXIod3JhcHBlckhhbmRs
ZSkpOwotICAgIHdyYXBwZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01TdWJ0cmVlQ2xh
c3NJZCk7CisgICAgd3JhcHBlckhhbmRsZS5TZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU5vZGVDbGFz
c0lkKTsKICAgICBnZXRET01Ob2RlTWFwKGlzb2xhdGUpLnNldChub2RlLmxlYWtSZWYoKSwgd3Jh
cHBlckhhbmRsZSk7CiAgICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCmluZGV4IGE1MjkyM2I1YjIzZjVlNGI4YzQ0ODRl
NmZiMWI4OGQ0OTE2YTBjMTEuLjcyMWQyOTVhNzdhOWI0ZTU4MjZhZjAwZjRjYTQ0ZjAxZjRkZWUz
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCkBAIC0xMzEs
NiArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHsKICAgICAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+OjpOZXcod3JhcHBlcik7CiAgICAgICAgIEFTU0VSVChtYXliZURPTVdyYXBwZXIod3JhcHBl
ckhhbmRsZSkpOworICAgICAgICB3cmFwcGVySGFuZGxlLlNldFdyYXBwZXJDbGFzc0lkKHY4RE9N
T2JqZWN0Q2xhc3NJZCk7CiAgICAgICAgIGdldERPTU9iamVjdE1hcChpc29sYXRlKS5zZXQob2Jq
ZWN0LmxlYWtSZWYoKSwgd3JhcHBlckhhbmRsZSk7CiAgICAgICAgIHJldHVybiB3cmFwcGVySGFu
ZGxlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0ND
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcAppbmRleCBmZjdkZmJjOWNhODg0MGU1MTY4MTFkNDViZTY5ZTM1OGM5MmNlMzk3Li5kNWQ3
YmMxMWQ1ZDU1OWMxZWZkOWVhMTJiOGY3YWRjNGJjODFmMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC0xMzIsNDAgKzEzMiw2IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPEltcGxpY2l0Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uczsKIH07
CiAKLWNsYXNzIE9iamVjdFZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlclZpc2l0b3I8dm9pZD4g
ewotcHVibGljOgotICAgIGV4cGxpY2l0IE9iamVjdFZpc2l0b3IoV3JhcHBlckdyb3VwZXIqIGdy
b3VwZXIpCi0gICAgICAgIDogbV9ncm91cGVyKGdyb3VwZXIpCi0gICAgewotICAgIH0KLQotICAg
IHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqIG9iamVjdCwgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKLSAgICB7Ci0gICAgICAgIGlmICh3cmFwcGVy
LklzSW5kZXBlbmRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBXcmFwcGVy
VHlwZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOwot
Ci0gICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlKSkgewotICAgICAg
ICAgICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVkLiBGb3Ig
c2ltcGxpY2l0eSdzIHNha2UsCi0gICAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHBvcnRzIGFy
ZSByZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0Ci0gICAgICAgICAg
ICAvLyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlLgotICAgICAgICAg
ICAgTWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9iamVjdCk7
Ci0gICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8fCBwb3J0LT5oYXNQZW5kaW5n
QWN0aXZpdHkoKSkKLSAgICAgICAgICAgICAgICBtX2dyb3VwZXItPmtlZXBBbGl2ZSh3cmFwcGVy
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFjdGl2ZURPTU9iamVjdCogYWN0aXZl
RE9NT2JqZWN0ID0gdHlwZS0+dG9BY3RpdmVET01PYmplY3Qod3JhcHBlcik7Ci0gICAgICAgICAg
ICBpZiAoYWN0aXZlRE9NT2JqZWN0ICYmIGFjdGl2ZURPTU9iamVjdC0+aGFzUGVuZGluZ0FjdGl2
aXR5KCkpCi0gICAgICAgICAgICAgICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3JvdXAodHlwZS0+b3BhcXVlUm9v
dEZvckdDKG9iamVjdCwgd3JhcHBlciksIHdyYXBwZXIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAg
ICBXcmFwcGVyR3JvdXBlciogbV9ncm91cGVyOwotfTsKLQogLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHVzZSBvcGFxdWUgR0Mgcm9vdHMuCiBzdGF0aWMgdm9pZCBhZGRJbXBsaWNpdFJlZmVyZW5jZXNG
b3JOb2RlV2l0aEV2ZW50TGlzdGVuZXJzKE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+IHdyYXBwZXIpCiB7CkBAIC0yMDcsMjkgKzE3Myw2MCBAQCB2b2lkKiBWOEdDQ29udHJv
bGxlcjo6b3BhcXVlUm9vdEZvckdDKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAK
LWNsYXNzIE5vZGVWaXNpdG9yIDogcHVibGljIE5vZGVXcmFwcGVyVmlzaXRvciB7CitjbGFzcyBH
Q0hhbmRsZVZpc2l0b3IgOiBwdWJsaWMgdjg6OlBlcnNpc3RlbnRIYW5kbGVWaXNpdG9yIHsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBOb2RlVmlzaXRvcihXcmFwcGVyR3JvdXBlciogZ3JvdXBlcikK
LSAgICAgICAgOiBtX2dyb3VwZXIoZ3JvdXBlcikKKyAgICB2aXJ0dWFsIHZvaWQgVmlzaXRQZXJz
aXN0ZW50SGFuZGxlKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gdmFsdWUsIHVpbnQxNl90IGNs
YXNzSWQpIE9WRVJSSURFCiAgICAgewotICAgIH0KKyAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09i
amVjdCgpKTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKTsKIAotICAgIHZvaWQgdmlzaXRO
b2RlV3JhcHBlcihOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVy
KQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKCkpCi0gICAgICAg
ICAgICBhZGRJbXBsaWNpdFJlZmVyZW5jZXNGb3JOb2RlV2l0aEV2ZW50TGlzdGVuZXJzKG5vZGUs
IHdyYXBwZXIpOworICAgICAgICBpZiAoY2xhc3NJZCAhPSB2OERPTU5vZGVDbGFzc0lkICYmIGNs
YXNzSWQgIT0gdjhET01PYmplY3RDbGFzc0lkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIEFTU0VSVChWOERPTVdyYXBwZXI6Om1heWJlRE9NV3JhcHBlcih2YWx1ZSkpOworCisgICAg
ICAgIGlmICh2YWx1ZS5Jc0luZGVwZW5kZW50KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlID0gVjhET01XcmFwcGVyOjpkb21XcmFwcGVyVHlw
ZSh3cmFwcGVyKTsKKyAgICAgICAgdm9pZCogb2JqZWN0ID0gdG9OYXRpdmUod3JhcHBlcik7CisK
KyAgICAgICAgaWYgKFY4TWVzc2FnZVBvcnQ6OmluZm8uZXF1YWxzKHR5cGUpKSB7CisgICAgICAg
ICAgICAvLyBNYXJrIGVhY2ggcG9ydCBhcyBpbi11c2UgaWYgaXQncyBlbnRhbmdsZWQuIEZvciBz
aW1wbGljaXR5J3Mgc2FrZSwKKyAgICAgICAgICAgIC8vIHdlIGFzc3VtZSBhbGwgcG9ydHMgYXJl
IHJlbW90ZWx5IGVudGFuZ2xlZCwgc2luY2UgdGhlIENocm9taXVtIHBvcnQKKyAgICAgICAgICAg
IC8vIGltcGxlbWVudGF0aW9uIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2UuCisgICAgICAgICAg
ICBNZXNzYWdlUG9ydCogcG9ydCA9IHN0YXRpY19jYXN0PE1lc3NhZ2VQb3J0Kj4ob2JqZWN0KTsK
KyAgICAgICAgICAgIGlmIChwb3J0LT5pc0VudGFuZ2xlZCgpIHx8IHBvcnQtPmhhc1BlbmRpbmdB
Y3Rpdml0eSgpKQorICAgICAgICAgICAgICAgIG1fZ3JvdXBlci5rZWVwQWxpdmUod3JhcHBlcik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBY3RpdmVET01PYmplY3QqIGFjdGl2ZURP
TU9iamVjdCA9IHR5cGUtPnRvQWN0aXZlRE9NT2JqZWN0KHdyYXBwZXIpOworICAgICAgICAgICAg
aWYgKGFjdGl2ZURPTU9iamVjdCAmJiBhY3RpdmVET01PYmplY3QtPmhhc1BlbmRpbmdBY3Rpdml0
eSgpKQorICAgICAgICAgICAgICAgIG1fZ3JvdXBlci5rZWVwQWxpdmUod3JhcHBlcik7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoY2xhc3NJZCA9PSB2OERPTU5vZGVDbGFzc0lkKSB7CisgICAg
ICAgICAgICBBU1NFUlQoVjhOb2RlOjpIYXNJbnN0YW5jZSh3cmFwcGVyKSk7CisgICAgICAgICAg
ICBBU1NFUlQoIXdyYXBwZXIuSXNJbmRlcGVuZGVudCgpKTsKIAotICAgICAgICBXcmFwcGVyVHlw
ZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOyAgCisg
ICAgICAgICAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KG9iamVjdCk7CiAKLSAg
ICAgICAgQWN0aXZlRE9NT2JqZWN0KiBhY3RpdmVET01PYmplY3QgPSB0eXBlLT50b0FjdGl2ZURP
TU9iamVjdCh3cmFwcGVyKTsKLSAgICAgICAgaWYgKGFjdGl2ZURPTU9iamVjdCAmJiBhY3RpdmVE
T01PYmplY3QtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQotICAgICAgICAgICAgbV9ncm91cGVyLT5r
ZWVwQWxpdmUod3JhcHBlcik7CisgICAgICAgICAgICBpZiAobm9kZS0+aGFzRXZlbnRMaXN0ZW5l
cnMoKSkKKyAgICAgICAgICAgICAgICBhZGRJbXBsaWNpdFJlZmVyZW5jZXNGb3JOb2RlV2l0aEV2
ZW50TGlzdGVuZXJzKG5vZGUsIHdyYXBwZXIpOwogCi0gICAgICAgIG1fZ3JvdXBlci0+YWRkVG9H
cm91cChWOEdDQ29udHJvbGxlcjo6b3BhcXVlUm9vdEZvckdDKG5vZGUpLCB3cmFwcGVyKTsKKyAg
ICAgICAgICAgIG1fZ3JvdXBlci5hZGRUb0dyb3VwKFY4R0NDb250cm9sbGVyOjpvcGFxdWVSb290
Rm9yR0Mobm9kZSksIHdyYXBwZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNT
RVJUKGNsYXNzSWQgPT0gdjhET01PYmplY3RDbGFzc0lkKTsKKyAgICAgICAgICAgIG1fZ3JvdXBl
ci5hZGRUb0dyb3VwKHR5cGUtPm9wYXF1ZVJvb3RGb3JHQyhvYmplY3QsIHdyYXBwZXIpLCB3cmFw
cGVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKQorICAg
IHsKKyAgICAgICAgbV9ncm91cGVyLmFwcGx5KCk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFdy
YXBwZXJHcm91cGVyKiBtX2dyb3VwZXI7CisgICAgV3JhcHBlckdyb3VwZXIgbV9ncm91cGVyOwog
fTsKIAogdm9pZCBWOEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSh2ODo6R0NUeXBlIHR5cGUsIHY4
OjpHQ0NhbGxiYWNrRmxhZ3MgZmxhZ3MpCkBAIC0yNTAsMTQgKzI0Nyw5IEBAIHZvaWQgVjhHQ0Nv
bnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSgpCiAKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7
CiAKLSAgICBXcmFwcGVyR3JvdXBlciBncm91cGVyOwotCi0gICAgTm9kZVZpc2l0b3Igbm9kZVZp
c2l0b3IoJmdyb3VwZXIpOwotICAgIE9iamVjdFZpc2l0b3Igb2JqZWN0VmlzaXRvcigmZ3JvdXBl
cik7Ci0gICAgdmlzaXRBbGxET01Ob2Rlcygmbm9kZVZpc2l0b3IpOwotICAgIHZpc2l0RE9NT2Jq
ZWN0cygmb2JqZWN0VmlzaXRvcik7Ci0KLSAgICBncm91cGVyLmFwcGx5KCk7CisgICAgR0NIYW5k
bGVWaXNpdG9yIHZpc2l0b3I7CisgICAgdjg6OlY4OjpWaXNpdEhhbmRsZXNXaXRoQ2xhc3NJZHMo
JnZpc2l0b3IpOworICAgIHZpc2l0b3Iubm90aWZ5RmluaXNoZWQoKTsKIAogICAgIFY4UGVySXNv
bGF0ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CiAgICAgZGF0YS0+
c3RyaW5nQ2FjaGUoKS0+Y2xlYXJPbkdDKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dyYXBwZXJUeXBlSW5mby5oCmluZGV4IDI3YzdlZjZiNzY5MTcxYTMxYjIyMDEzY2I2MGI3YjI0
NjZjNWRjMDUuLjBjYjRiOTU5YjhiOTZjNTViYTc1ZDdmZjhlNzY3YTYzMjQ5MTI3MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCkBAIC00Miw3ICs0
Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3Jh
cHBlck9iamVjdEluZGV4ID0gMTsKICAgICBzdGF0aWMgY29uc3QgaW50IHY4RGVmYXVsdFdyYXBw
ZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAyOwogCi0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHY4
RE9NU3VidHJlZUNsYXNzSWQgPSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCB2OERPTU5v
ZGVDbGFzc0lkID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdjhET01PYmplY3RDbGFz
c0lkID0gMjsKIAogICAgIHR5cGVkZWYgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+ICgqR2V0VGVtcGxhdGVGdW5jdGlvbikoKTsKICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9i
amVjdEZ1bmN0aW9uKSh2b2lkKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171828</attachid>
            <date>2012-11-01 06:24:12 -0700</date>
            <delta_ts>2012-11-01 07:19:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100897-20121101062234.patch</filename>
            <type>text/plain</type>
            <size>10942</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTAxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBVbmlmeSB0aGUgVjhHQ0Nv
bnRyb2xsZXIgdmlzaXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDg5NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisg
ICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gsIHdlIHVzZSBhIHNpbmdsZSB2aXNpdG9yIGZvciBhbGwg
RE9NIHdyYXBwZXJzLAorICAgICAgICByZWdhcmRsZXNzIG9mIHR5cGUuIFdlIGFsc28gdmlzaXQg
YWxsIHRoZSB3cmFwcGVycyBpbiBvbmUgcGFzcyBieQorICAgICAgICBjYWxsaW5nIHY4OjpWODo6
VmlzaXRIYW5kbGVzV2l0aENsYXNzSWRzIGRpcmVjdGx5IHJhdGhlciB0aGFuIHZpYQorICAgICAg
ICB2aXNpdEFsbERPTU5vZGVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2Vz
IGEgd3JhcHBlciBjbGFzcyBJRCBmb3Igbm9uLU5vZGUgRE9NIG9iamVjdHMuCisgICAgICAgIFBy
ZXZpb3VzbHksIG9ubHkgRE9NIG5vZGVzIGhhZCBhIGNsYXNzIElELgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJldGFpbmVkRE9NSW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhET01NYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlzaXRBbGxE
T01Ob2Rlcyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NTm9kZSk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NIYW5kbGVWaXNpdG9y
Ojpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChHQ0hhbmRsZVZpc2l0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6VjhHQ0NvbnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0x
MS0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSZW1vdmUgb2Jzb2xldGUgY29kZSBmcm9tIEphdmFTY3JpcHRTb3VyY2VG
cmFtZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBl
ck1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2
ZURPTVdyYXBwZXJNYXAuaAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG5vZGUsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpIE9WRVJSSURFCiAgICAgewogICAgICAgICBB
U1NFUlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKLSAgICAgICAgQVNTRVJU
KHdyYXBwZXIuV3JhcHBlckNsYXNzSWQoKSA9PSB2OERPTVN1YnRyZWVDbGFzc0lkKTsKKyAgICAg
ICAgQVNTRVJUKHdyYXBwZXIuV3JhcHBlckNsYXNzSWQoKSA9PSB2OERPTU5vZGVDbGFzc0lkKTsK
ICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih3cmFwcGVyKTsKICAgICAgICAgd3JhcHBlci5NYWtl
V2Vhayhub2RlLCB3ZWFrQ2FsbGJhY2spOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAJKHJldmlzaW9uIDEzMzE0OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY1LDcgKzE2NSw3IEBAIFBhc3NSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBTY3Jp
cHRQcm8KIAogc3RhdGljIHY4OjpSZXRhaW5lZE9iamVjdEluZm8qIHJldGFpbmVkRE9NSW5mbyh1
aW50MTZfdCBjbGFzc0lkLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlcikKIHsKLSAgICBB
U1NFUlQoY2xhc3NJZCA9PSB2OERPTVN1YnRyZWVDbGFzc0lkKTsKKyAgICBBU1NFUlQoY2xhc3NJ
ZCA9PSB2OERPTU5vZGVDbGFzc0lkKTsKICAgICBpZiAoIXdyYXBwZXItPklzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKHdyYXBw
ZXIuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHY4OjpSZXRh
aW5lZE9iamVjdEluZm8qIHJldGFpbmVkRAogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjppbml0aWFs
aXplKCkKIHsKLSAgICB2ODo6SGVhcFByb2ZpbGVyOjpEZWZpbmVXcmFwcGVyQ2xhc3ModjhET01T
dWJ0cmVlQ2xhc3NJZCwgJnJldGFpbmVkRE9NSW5mbyk7CisgICAgdjg6OkhlYXBQcm9maWxlcjo6
RGVmaW5lV3JhcHBlckNsYXNzKHY4RE9NTm9kZUNsYXNzSWQsICZyZXRhaW5lZERPTUluZm8pOwog
fQogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjp2aXNpdE5vZGVXcmFwcGVycyhXcmFwcGVkTm9kZVZp
c2l0b3IqIHZpc2l0b3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1h
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAu
Y3BwCShyZXZpc2lvbiAxMzMxNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCB2aXNpdEFsbERP
TU5vZGVzKE5vZGVXcmFwcGVyVmlzaXRvcgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBWaXNpdFBl
cnNpc3RlbnRIYW5kbGUodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwgdWludDE2X3Qg
Y2xhc3NJZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGNsYXNzSWQgIT0gdjhET01TdWJ0
cmVlQ2xhc3NJZCkKKyAgICAgICAgICAgIGlmIChjbGFzc0lkICE9IHY4RE9NTm9kZUNsYXNzSWQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgQVNTRVJUKFY4Tm9kZTo6SGFz
SW5zdGFuY2UodmFsdWUpKTsKICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJKHJl
dmlzaW9uIDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gVjhET01XcmFwcGVyOgogewogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIp
OwogICAgIEFTU0VSVChtYXliZURPTVdyYXBwZXIod3JhcHBlckhhbmRsZSkpOwotICAgIHdyYXBw
ZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01TdWJ0cmVlQ2xhc3NJZCk7CisgICAgd3Jh
cHBlckhhbmRsZS5TZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU5vZGVDbGFzc0lkKTsKICAgICBnZXRE
T01Ob2RlTWFwKGlzb2xhdGUpLnNldChub2RlLmxlYWtSZWYoKSwgd3JhcHBlckhhbmRsZSk7CiAg
ICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5l
dyh3cmFwcGVyKTsKICAgICAgICAgQVNTRVJUKG1heWJlRE9NV3JhcHBlcih3cmFwcGVySGFuZGxl
KSk7CisgICAgICAgIHdyYXBwZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01PYmplY3RD
bGFzc0lkKTsKICAgICAgICAgZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLnNldChvYmplY3QubGVh
a1JlZigpLCB3cmFwcGVySGFuZGxlKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhH
Q0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNDAgKzEzMiw2IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPEltcGxpY2l0Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uczsKIH07CiAK
LWNsYXNzIE9iamVjdFZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlclZpc2l0b3I8dm9pZD4gewot
cHVibGljOgotICAgIGV4cGxpY2l0IE9iamVjdFZpc2l0b3IoV3JhcHBlckdyb3VwZXIqIGdyb3Vw
ZXIpCi0gICAgICAgIDogbV9ncm91cGVyKGdyb3VwZXIpCi0gICAgewotICAgIH0KLQotICAgIHZv
aWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqIG9iamVjdCwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKLSAgICB7Ci0gICAgICAgIGlmICh3cmFwcGVyLklz
SW5kZXBlbmRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBXcmFwcGVyVHlw
ZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOwotCi0g
ICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlKSkgewotICAgICAgICAg
ICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVkLiBGb3Igc2lt
cGxpY2l0eSdzIHNha2UsCi0gICAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHBvcnRzIGFyZSBy
ZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0Ci0gICAgICAgICAgICAv
LyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlLgotICAgICAgICAgICAg
TWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9iamVjdCk7Ci0g
ICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8fCBwb3J0LT5oYXNQZW5kaW5nQWN0
aXZpdHkoKSkKLSAgICAgICAgICAgICAgICBtX2dyb3VwZXItPmtlZXBBbGl2ZSh3cmFwcGVyKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFjdGl2ZURPTU9iamVjdCogYWN0aXZlRE9N
T2JqZWN0ID0gdHlwZS0+dG9BY3RpdmVET01PYmplY3Qod3JhcHBlcik7Ci0gICAgICAgICAgICBp
ZiAoYWN0aXZlRE9NT2JqZWN0ICYmIGFjdGl2ZURPTU9iamVjdC0+aGFzUGVuZGluZ0FjdGl2aXR5
KCkpCi0gICAgICAgICAgICAgICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3JvdXAodHlwZS0+b3BhcXVlUm9vdEZv
ckdDKG9iamVjdCwgd3JhcHBlciksIHdyYXBwZXIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBX
cmFwcGVyR3JvdXBlciogbV9ncm91cGVyOwotfTsKLQogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVz
ZSBvcGFxdWUgR0Mgcm9vdHMuCiBzdGF0aWMgdm9pZCBhZGRJbXBsaWNpdFJlZmVyZW5jZXNGb3JO
b2RlV2l0aEV2ZW50TGlzdGVuZXJzKE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHdyYXBwZXIpCiB7CkBAIC0yMDcsMjkgKzE3Myw2MSBAQCB2b2lkKiBWOEdDQ29udHJvbGxl
cjo6b3BhcXVlUm9vdEZvckdDKE5vCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLWNsYXNzIE5vZGVW
aXNpdG9yIDogcHVibGljIE5vZGVXcmFwcGVyVmlzaXRvciB7CitjbGFzcyBET01XcmFwcGVyVmlz
aXRvciA6IHB1YmxpYyB2ODo6UGVyc2lzdGVudEhhbmRsZVZpc2l0b3IgewogcHVibGljOgotICAg
IGV4cGxpY2l0IE5vZGVWaXNpdG9yKFdyYXBwZXJHcm91cGVyKiBncm91cGVyKQotICAgICAgICA6
IG1fZ3JvdXBlcihncm91cGVyKQorICAgIHZpcnR1YWwgdm9pZCBWaXNpdFBlcnNpc3RlbnRIYW5k
bGUodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwgdWludDE2X3QgY2xhc3NJZCkgT1ZF
UlJJREUKICAgICB7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWUtPklzT2JqZWN0KCkpOwor
ICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpOwogCi0gICAgdm9pZCB2aXNpdE5vZGVXcmFwcGVy
KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCi0gICAgewot
ICAgICAgICBpZiAobm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKLSAgICAgICAgICAgIGFkZElt
cGxpY2l0UmVmZXJlbmNlc0Zvck5vZGVXaXRoRXZlbnRMaXN0ZW5lcnMobm9kZSwgd3JhcHBlcik7
CisgICAgICAgIGlmIChjbGFzc0lkICE9IHY4RE9NTm9kZUNsYXNzSWQgJiYgY2xhc3NJZCAhPSB2
OERPTU9iamVjdENsYXNzSWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJU
KFY4RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVyKHZhbHVlKSk7CisKKyAgICAgICAgaWYgKHZh
bHVlLklzSW5kZXBlbmRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBXcmFw
cGVyVHlwZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIp
OyAgCisgICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZSA9IFY4RE9NV3JhcHBlcjo6ZG9tV3Jh
cHBlclR5cGUod3JhcHBlcik7CisgICAgICAgIHZvaWQqIG9iamVjdCA9IHRvTmF0aXZlKHdyYXBw
ZXIpOworCisgICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlKSkgewor
ICAgICAgICAgICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVk
LiBGb3Igc2ltcGxpY2l0eSdzIHNha2UsCisgICAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHBv
cnRzIGFyZSByZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0CisgICAg
ICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlLgorICAg
ICAgICAgICAgTWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9i
amVjdCk7CisgICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8fCBwb3J0LT5oYXNQ
ZW5kaW5nQWN0aXZpdHkoKSkKKyAgICAgICAgICAgICAgICBtX2dyb3VwZXIua2VlcEFsaXZlKHdy
YXBwZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQWN0aXZlRE9NT2JqZWN0KiBh
Y3RpdmVET01PYmplY3QgPSB0eXBlLT50b0FjdGl2ZURPTU9iamVjdCh3cmFwcGVyKTsKKyAgICAg
ICAgICAgIGlmIChhY3RpdmVET01PYmplY3QgJiYgYWN0aXZlRE9NT2JqZWN0LT5oYXNQZW5kaW5n
QWN0aXZpdHkoKSkKKyAgICAgICAgICAgICAgICBtX2dyb3VwZXIua2VlcEFsaXZlKHdyYXBwZXIp
OworICAgICAgICB9CiAKLSAgICAgICAgQWN0aXZlRE9NT2JqZWN0KiBhY3RpdmVET01PYmplY3Qg
PSB0eXBlLT50b0FjdGl2ZURPTU9iamVjdCh3cmFwcGVyKTsKLSAgICAgICAgaWYgKGFjdGl2ZURP
TU9iamVjdCAmJiBhY3RpdmVET01PYmplY3QtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQotICAgICAg
ICAgICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7CisgICAgICAgIGlmIChjbGFzc0lk
ID09IHY4RE9NTm9kZUNsYXNzSWQpIHsKKyAgICAgICAgICAgIEFTU0VSVChWOE5vZGU6Okhhc0lu
c3RhbmNlKHdyYXBwZXIpKTsKKyAgICAgICAgICAgIEFTU0VSVCghd3JhcHBlci5Jc0luZGVwZW5k
ZW50KCkpOworCisgICAgICAgICAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KG9i
amVjdCk7CisKKyAgICAgICAgICAgIGlmIChub2RlLT5oYXNFdmVudExpc3RlbmVycygpKQorICAg
ICAgICAgICAgICAgIGFkZEltcGxpY2l0UmVmZXJlbmNlc0Zvck5vZGVXaXRoRXZlbnRMaXN0ZW5l
cnMobm9kZSwgd3JhcHBlcik7CisKKyAgICAgICAgICAgIG1fZ3JvdXBlci5hZGRUb0dyb3VwKFY4
R0NDb250cm9sbGVyOjpvcGFxdWVSb290Rm9yR0Mobm9kZSksIHdyYXBwZXIpOworICAgICAgICB9
IGVsc2UgaWYgKGNsYXNzSWQgPT0gdjhET01PYmplY3RDbGFzc0lkKSB7CisgICAgICAgICAgICBt
X2dyb3VwZXIuYWRkVG9Hcm91cCh0eXBlLT5vcGFxdWVSb290Rm9yR0Mob2JqZWN0LCB3cmFwcGVy
KSwgd3JhcHBlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgfQorICAgIH0KIAotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3Jv
dXAoVjhHQ0NvbnRyb2xsZXI6Om9wYXF1ZVJvb3RGb3JHQyhub2RlKSwgd3JhcHBlcik7CisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZCgpCisgICAgeworICAgICAgICBtX2dyb3VwZXIuYXBwbHkoKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV3JhcHBlckdyb3VwZXIqIG1fZ3JvdXBlcjsKKyAgICBX
cmFwcGVyR3JvdXBlciBtX2dyb3VwZXI7CiB9OwogCiB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1By
b2xvZ3VlKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncykKQEAgLTI1
MCwxNCArMjQ4LDkgQEAgdm9pZCBWOEdDQ29udHJvbGxlcjo6bWFqb3JHQ1Byb2xvZ3VlKCkKIAog
ICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAgIFdyYXBwZXJHcm91cGVyIGdyb3VwZXI7
Ci0KLSAgICBOb2RlVmlzaXRvciBub2RlVmlzaXRvcigmZ3JvdXBlcik7Ci0gICAgT2JqZWN0Vmlz
aXRvciBvYmplY3RWaXNpdG9yKCZncm91cGVyKTsKLSAgICB2aXNpdEFsbERPTU5vZGVzKCZub2Rl
VmlzaXRvcik7Ci0gICAgdmlzaXRET01PYmplY3RzKCZvYmplY3RWaXNpdG9yKTsKLQotICAgIGdy
b3VwZXIuYXBwbHkoKTsKKyAgICBET01XcmFwcGVyVmlzaXRvciB2aXNpdG9yOworICAgIHY4OjpW
ODo6VmlzaXRIYW5kbGVzV2l0aENsYXNzSWRzKCZ2aXNpdG9yKTsKKyAgICB2aXNpdG9yLm5vdGlm
eUZpbmlzaGVkKCk7CiAKICAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRl
RGF0YTo6Y3VycmVudCgpOwogICAgIGRhdGEtPnN0cmluZ0NhY2hlKCktPmNsZWFyT25HQygpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgJKHJl
dmlzaW9uIDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBl
SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlck9iamVjdEluZGV4ID0gMTsKICAg
ICBzdGF0aWMgY29uc3QgaW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAy
OwogCi0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHY4RE9NU3VidHJlZUNsYXNzSWQgPSAxOwor
ICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCB2OERPTU5vZGVDbGFzc0lkID0gMTsKKyAgICBzdGF0
aWMgY29uc3QgdWludDE2X3QgdjhET01PYmplY3RDbGFzc0lkID0gMjsKIAogICAgIHR5cGVkZWYg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVtcGxhdGVGdW5jdGlv
bikoKTsKICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9uKSh2b2lkKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171843</attachid>
            <date>2012-11-01 07:19:24 -0700</date>
            <delta_ts>2012-11-01 07:52:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100897-20121101071745.patch</filename>
            <type>text/plain</type>
            <size>10936</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTAxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBVbmlmeSB0aGUgVjhHQ0Nv
bnRyb2xsZXIgdmlzaXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDg5NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisg
ICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gsIHdlIHVzZSBhIHNpbmdsZSB2aXNpdG9yIGZvciBhbGwg
RE9NIHdyYXBwZXJzLAorICAgICAgICByZWdhcmRsZXNzIG9mIHR5cGUuIFdlIGFsc28gdmlzaXQg
YWxsIHRoZSB3cmFwcGVycyBpbiBvbmUgcGFzcyBieQorICAgICAgICBjYWxsaW5nIHY4OjpWODo6
VmlzaXRIYW5kbGVzV2l0aENsYXNzSWRzIGRpcmVjdGx5IHJhdGhlciB0aGFuIHZpYQorICAgICAg
ICB2aXNpdEFsbERPTU5vZGVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2Vz
IGEgd3JhcHBlciBjbGFzcyBJRCBmb3Igbm9uLU5vZGUgRE9NIG9iamVjdHMuCisgICAgICAgIFBy
ZXZpb3VzbHksIG9ubHkgRE9NIG5vZGVzIGhhZCBhIGNsYXNzIElELgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJldGFpbmVkRE9NSW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhET01NYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlzaXRBbGxE
T01Ob2Rlcyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NTm9kZSk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NIYW5kbGVWaXNpdG9y
Ojpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChHQ0hhbmRsZVZpc2l0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6VjhHQ0NvbnRyb2xsZXI6Om1ham9yR0NQcm9sb2d1ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0x
MS0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSZW1vdmUgb2Jzb2xldGUgY29kZSBmcm9tIEphdmFTY3JpcHRTb3VyY2VG
cmFtZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBl
ck1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2
ZURPTVdyYXBwZXJNYXAuaAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG5vZGUsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpIE9WRVJSSURFCiAgICAgewogICAgICAgICBB
U1NFUlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKLSAgICAgICAgQVNTRVJU
KHdyYXBwZXIuV3JhcHBlckNsYXNzSWQoKSA9PSB2OERPTVN1YnRyZWVDbGFzc0lkKTsKKyAgICAg
ICAgQVNTRVJUKHdyYXBwZXIuV3JhcHBlckNsYXNzSWQoKSA9PSB2OERPTU5vZGVDbGFzc0lkKTsK
ICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih3cmFwcGVyKTsKICAgICAgICAgd3JhcHBlci5NYWtl
V2Vhayhub2RlLCB3ZWFrQ2FsbGJhY2spOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAJKHJldmlzaW9uIDEzMzE0OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY1LDcgKzE2NSw3IEBAIFBhc3NSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBTY3Jp
cHRQcm8KIAogc3RhdGljIHY4OjpSZXRhaW5lZE9iamVjdEluZm8qIHJldGFpbmVkRE9NSW5mbyh1
aW50MTZfdCBjbGFzc0lkLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlcikKIHsKLSAgICBB
U1NFUlQoY2xhc3NJZCA9PSB2OERPTVN1YnRyZWVDbGFzc0lkKTsKKyAgICBBU1NFUlQoY2xhc3NJ
ZCA9PSB2OERPTU5vZGVDbGFzc0lkKTsKICAgICBpZiAoIXdyYXBwZXItPklzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKHdyYXBw
ZXIuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHY4OjpSZXRh
aW5lZE9iamVjdEluZm8qIHJldGFpbmVkRAogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjppbml0aWFs
aXplKCkKIHsKLSAgICB2ODo6SGVhcFByb2ZpbGVyOjpEZWZpbmVXcmFwcGVyQ2xhc3ModjhET01T
dWJ0cmVlQ2xhc3NJZCwgJnJldGFpbmVkRE9NSW5mbyk7CisgICAgdjg6OkhlYXBQcm9maWxlcjo6
RGVmaW5lV3JhcHBlckNsYXNzKHY4RE9NTm9kZUNsYXNzSWQsICZyZXRhaW5lZERPTUluZm8pOwog
fQogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjp2aXNpdE5vZGVXcmFwcGVycyhXcmFwcGVkTm9kZVZp
c2l0b3IqIHZpc2l0b3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1h
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAu
Y3BwCShyZXZpc2lvbiAxMzMxNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCB2aXNpdEFsbERP
TU5vZGVzKE5vZGVXcmFwcGVyVmlzaXRvcgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBWaXNpdFBl
cnNpc3RlbnRIYW5kbGUodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwgdWludDE2X3Qg
Y2xhc3NJZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGNsYXNzSWQgIT0gdjhET01TdWJ0
cmVlQ2xhc3NJZCkKKyAgICAgICAgICAgIGlmIChjbGFzc0lkICE9IHY4RE9NTm9kZUNsYXNzSWQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgQVNTRVJUKFY4Tm9kZTo6SGFz
SW5zdGFuY2UodmFsdWUpKTsKICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJKHJl
dmlzaW9uIDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gVjhET01XcmFwcGVyOgogewogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIp
OwogICAgIEFTU0VSVChtYXliZURPTVdyYXBwZXIod3JhcHBlckhhbmRsZSkpOwotICAgIHdyYXBw
ZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01TdWJ0cmVlQ2xhc3NJZCk7CisgICAgd3Jh
cHBlckhhbmRsZS5TZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU5vZGVDbGFzc0lkKTsKICAgICBnZXRE
T01Ob2RlTWFwKGlzb2xhdGUpLnNldChub2RlLmxlYWtSZWYoKSwgd3JhcHBlckhhbmRsZSk7CiAg
ICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5l
dyh3cmFwcGVyKTsKICAgICAgICAgQVNTRVJUKG1heWJlRE9NV3JhcHBlcih3cmFwcGVySGFuZGxl
KSk7CisgICAgICAgIHdyYXBwZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01PYmplY3RD
bGFzc0lkKTsKICAgICAgICAgZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLnNldChvYmplY3QubGVh
a1JlZigpLCB3cmFwcGVySGFuZGxlKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMTMzMTQ5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhH
Q0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNDAgKzEzMiw2IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPEltcGxpY2l0Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uczsKIH07CiAK
LWNsYXNzIE9iamVjdFZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlclZpc2l0b3I8dm9pZD4gewot
cHVibGljOgotICAgIGV4cGxpY2l0IE9iamVjdFZpc2l0b3IoV3JhcHBlckdyb3VwZXIqIGdyb3Vw
ZXIpCi0gICAgICAgIDogbV9ncm91cGVyKGdyb3VwZXIpCi0gICAgewotICAgIH0KLQotICAgIHZv
aWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqIG9iamVjdCwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKLSAgICB7Ci0gICAgICAgIGlmICh3cmFwcGVyLklz
SW5kZXBlbmRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBXcmFwcGVyVHlw
ZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOwotCi0g
ICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlKSkgewotICAgICAgICAg
ICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVkLiBGb3Igc2lt
cGxpY2l0eSdzIHNha2UsCi0gICAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHBvcnRzIGFyZSBy
ZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0Ci0gICAgICAgICAgICAv
LyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlLgotICAgICAgICAgICAg
TWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9iamVjdCk7Ci0g
ICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8fCBwb3J0LT5oYXNQZW5kaW5nQWN0
aXZpdHkoKSkKLSAgICAgICAgICAgICAgICBtX2dyb3VwZXItPmtlZXBBbGl2ZSh3cmFwcGVyKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFjdGl2ZURPTU9iamVjdCogYWN0aXZlRE9N
T2JqZWN0ID0gdHlwZS0+dG9BY3RpdmVET01PYmplY3Qod3JhcHBlcik7Ci0gICAgICAgICAgICBp
ZiAoYWN0aXZlRE9NT2JqZWN0ICYmIGFjdGl2ZURPTU9iamVjdC0+aGFzUGVuZGluZ0FjdGl2aXR5
KCkpCi0gICAgICAgICAgICAgICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3JvdXAodHlwZS0+b3BhcXVlUm9vdEZv
ckdDKG9iamVjdCwgd3JhcHBlciksIHdyYXBwZXIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBX
cmFwcGVyR3JvdXBlciogbV9ncm91cGVyOwotfTsKLQogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVz
ZSBvcGFxdWUgR0Mgcm9vdHMuCiBzdGF0aWMgdm9pZCBhZGRJbXBsaWNpdFJlZmVyZW5jZXNGb3JO
b2RlV2l0aEV2ZW50TGlzdGVuZXJzKE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHdyYXBwZXIpCiB7CkBAIC0yMDcsMjkgKzE3Myw2MSBAQCB2b2lkKiBWOEdDQ29udHJvbGxl
cjo6b3BhcXVlUm9vdEZvckdDKE5vCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLWNsYXNzIE5vZGVW
aXNpdG9yIDogcHVibGljIE5vZGVXcmFwcGVyVmlzaXRvciB7CitjbGFzcyBXcmFwcGVyVmlzaXRv
ciA6IHB1YmxpYyB2ODo6UGVyc2lzdGVudEhhbmRsZVZpc2l0b3IgewogcHVibGljOgotICAgIGV4
cGxpY2l0IE5vZGVWaXNpdG9yKFdyYXBwZXJHcm91cGVyKiBncm91cGVyKQotICAgICAgICA6IG1f
Z3JvdXBlcihncm91cGVyKQorICAgIHZpcnR1YWwgdm9pZCBWaXNpdFBlcnNpc3RlbnRIYW5kbGUo
djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwgdWludDE2X3QgY2xhc3NJZCkgT1ZFUlJJ
REUKICAgICB7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWUtPklzT2JqZWN0KCkpOworICAg
ICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD46OkNhc3QodmFsdWUpOwogCi0gICAgdm9pZCB2aXNpdE5vZGVXcmFwcGVyKE5v
ZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCi0gICAgewotICAg
ICAgICBpZiAobm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKLSAgICAgICAgICAgIGFkZEltcGxp
Y2l0UmVmZXJlbmNlc0Zvck5vZGVXaXRoRXZlbnRMaXN0ZW5lcnMobm9kZSwgd3JhcHBlcik7Cisg
ICAgICAgIGlmIChjbGFzc0lkICE9IHY4RE9NTm9kZUNsYXNzSWQgJiYgY2xhc3NJZCAhPSB2OERP
TU9iamVjdENsYXNzSWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKFY4
RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVyKHZhbHVlKSk7CisKKyAgICAgICAgaWYgKHZhbHVl
LklzSW5kZXBlbmRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBXcmFwcGVy
VHlwZUluZm8qIHR5cGUgPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOyAg
CisgICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZSA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBl
clR5cGUod3JhcHBlcik7CisgICAgICAgIHZvaWQqIG9iamVjdCA9IHRvTmF0aXZlKHdyYXBwZXIp
OworCisgICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlKSkgeworICAg
ICAgICAgICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVkLiBG
b3Igc2ltcGxpY2l0eSdzIHNha2UsCisgICAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHBvcnRz
IGFyZSByZW1vdGVseSBlbnRhbmdsZWQsIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0CisgICAgICAg
ICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlLgorICAgICAg
ICAgICAgTWVzc2FnZVBvcnQqIHBvcnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9iamVj
dCk7CisgICAgICAgICAgICBpZiAocG9ydC0+aXNFbnRhbmdsZWQoKSB8fCBwb3J0LT5oYXNQZW5k
aW5nQWN0aXZpdHkoKSkKKyAgICAgICAgICAgICAgICBtX2dyb3VwZXIua2VlcEFsaXZlKHdyYXBw
ZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQWN0aXZlRE9NT2JqZWN0KiBhY3Rp
dmVET01PYmplY3QgPSB0eXBlLT50b0FjdGl2ZURPTU9iamVjdCh3cmFwcGVyKTsKKyAgICAgICAg
ICAgIGlmIChhY3RpdmVET01PYmplY3QgJiYgYWN0aXZlRE9NT2JqZWN0LT5oYXNQZW5kaW5nQWN0
aXZpdHkoKSkKKyAgICAgICAgICAgICAgICBtX2dyb3VwZXIua2VlcEFsaXZlKHdyYXBwZXIpOwor
ICAgICAgICB9CiAKLSAgICAgICAgQWN0aXZlRE9NT2JqZWN0KiBhY3RpdmVET01PYmplY3QgPSB0
eXBlLT50b0FjdGl2ZURPTU9iamVjdCh3cmFwcGVyKTsKLSAgICAgICAgaWYgKGFjdGl2ZURPTU9i
amVjdCAmJiBhY3RpdmVET01PYmplY3QtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQotICAgICAgICAg
ICAgbV9ncm91cGVyLT5rZWVwQWxpdmUod3JhcHBlcik7CisgICAgICAgIGlmIChjbGFzc0lkID09
IHY4RE9NTm9kZUNsYXNzSWQpIHsKKyAgICAgICAgICAgIEFTU0VSVChWOE5vZGU6Okhhc0luc3Rh
bmNlKHdyYXBwZXIpKTsKKyAgICAgICAgICAgIEFTU0VSVCghd3JhcHBlci5Jc0luZGVwZW5kZW50
KCkpOworCisgICAgICAgICAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KG9iamVj
dCk7CisKKyAgICAgICAgICAgIGlmIChub2RlLT5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAg
ICAgICAgICAgIGFkZEltcGxpY2l0UmVmZXJlbmNlc0Zvck5vZGVXaXRoRXZlbnRMaXN0ZW5lcnMo
bm9kZSwgd3JhcHBlcik7CisKKyAgICAgICAgICAgIG1fZ3JvdXBlci5hZGRUb0dyb3VwKFY4R0ND
b250cm9sbGVyOjpvcGFxdWVSb290Rm9yR0Mobm9kZSksIHdyYXBwZXIpOworICAgICAgICB9IGVs
c2UgaWYgKGNsYXNzSWQgPT0gdjhET01PYmplY3RDbGFzc0lkKSB7CisgICAgICAgICAgICBtX2dy
b3VwZXIuYWRkVG9Hcm91cCh0eXBlLT5vcGFxdWVSb290Rm9yR0Mob2JqZWN0LCB3cmFwcGVyKSwg
d3JhcHBlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgfQorICAgIH0KIAotICAgICAgICBtX2dyb3VwZXItPmFkZFRvR3JvdXAo
VjhHQ0NvbnRyb2xsZXI6Om9wYXF1ZVJvb3RGb3JHQyhub2RlKSwgd3JhcHBlcik7CisgICAgdm9p
ZCBub3RpZnlGaW5pc2hlZCgpCisgICAgeworICAgICAgICBtX2dyb3VwZXIuYXBwbHkoKTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgV3JhcHBlckdyb3VwZXIqIG1fZ3JvdXBlcjsKKyAgICBXcmFw
cGVyR3JvdXBlciBtX2dyb3VwZXI7CiB9OwogCiB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb2xv
Z3VlKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncykKQEAgLTI1MCwx
NCArMjQ4LDkgQEAgdm9pZCBWOEdDQ29udHJvbGxlcjo6bWFqb3JHQ1Byb2xvZ3VlKCkKIAogICAg
IHY4OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAgIFdyYXBwZXJHcm91cGVyIGdyb3VwZXI7Ci0K
LSAgICBOb2RlVmlzaXRvciBub2RlVmlzaXRvcigmZ3JvdXBlcik7Ci0gICAgT2JqZWN0VmlzaXRv
ciBvYmplY3RWaXNpdG9yKCZncm91cGVyKTsKLSAgICB2aXNpdEFsbERPTU5vZGVzKCZub2RlVmlz
aXRvcik7Ci0gICAgdmlzaXRET01PYmplY3RzKCZvYmplY3RWaXNpdG9yKTsKLQotICAgIGdyb3Vw
ZXIuYXBwbHkoKTsKKyAgICBXcmFwcGVyVmlzaXRvciB2aXNpdG9yOworICAgIHY4OjpWODo6Vmlz
aXRIYW5kbGVzV2l0aENsYXNzSWRzKCZ2aXNpdG9yKTsKKyAgICB2aXNpdG9yLm5vdGlmeUZpbmlz
aGVkKCk7CiAKICAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRlRGF0YTo6
Y3VycmVudCgpOwogICAgIGRhdGEtPnN0cmluZ0NhY2hlKCktPmNsZWFyT25HQygpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgJKHJldmlzaW9u
IDEzMzE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlck9iamVjdEluZGV4ID0gMTsKICAgICBzdGF0
aWMgY29uc3QgaW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAyOwogCi0g
ICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHY4RE9NU3VidHJlZUNsYXNzSWQgPSAxOworICAgIHN0
YXRpYyBjb25zdCB1aW50MTZfdCB2OERPTU5vZGVDbGFzc0lkID0gMTsKKyAgICBzdGF0aWMgY29u
c3QgdWludDE2X3QgdjhET01PYmplY3RDbGFzc0lkID0gMjsKIAogICAgIHR5cGVkZWYgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVtcGxhdGVGdW5jdGlvbikoKTsK
ICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9uKSh2b2lkKik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>