<?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>34554</bug_id>
          
          <creation_ts>2010-02-03 19:40:22 -0800</creation_ts>
          <short_desc>[V8] Move Element custom methods into generic bindings</short_desc>
          <delta_ts>2010-02-08 22:49:00 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>creis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187604</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-02-03 19:40:22 -0800</bug_when>
    <thetext>[V8] Move Element custom methods into generic bindings so that they can be shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187608</commentid>
    <comment_count>1</comment_count>
      <attachid>48091</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-02-03 19:46:33 -0800</bug_when>
    <thetext>Created attachment 48091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187609</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-03 19:49:54 -0800</bug_when>
    <thetext>Attachment 48091 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bindings/generic/BindingElement.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187610</commentid>
    <comment_count>3</comment_count>
      <attachid>48092</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-02-03 19:53:47 -0800</bug_when>
    <thetext>Created attachment 48092
Patch--fixes style violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187617</commentid>
    <comment_count>4</comment_count>
      <attachid>48094</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-02-03 20:41:58 -0800</bug_when>
    <thetext>Created attachment 48094
Patch--updates WebCore.gypi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187697</commentid>
    <comment_count>5</comment_count>
      <attachid>48094</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-04 02:32:51 -0800</bug_when>
    <thetext>Comment on attachment 48094
Patch--updates WebCore.gypi

In general, this looks good, but I do think V8BindingElement.h is too verbose, as you mentioned in email.  We should find a place do do that as a typedef.

Also, we don&apos;t need V8Binding::Element since the generic bindings don&apos;t need to call back to the V8 bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188041</commentid>
    <comment_count>6</comment_count>
      <attachid>48189</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-02-04 18:06:50 -0800</bug_when>
    <thetext>Created attachment 48189
Patch--implements review feedback.

Thanks for your feedback.

I have made V8BindingElement a typedef in V8Binding.h and nixed V8BindingElement.h, V8Binding::Element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188804</commentid>
    <comment_count>7</comment_count>
      <attachid>48189</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-08 15:39:28 -0800</bug_when>
    <thetext>Comment on attachment 48189
Patch--implements review feedback.

fantabulous!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188905</commentid>
    <comment_count>8</comment_count>
      <attachid>48189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-08 22:48:54 -0800</bug_when>
    <thetext>Comment on attachment 48189
Patch--implements review feedback.

Clearing flags on attachment: 48189

Committed r54527: &lt;http://trac.webkit.org/changeset/54527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188906</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-08 22:49:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48091</attachid>
            <date>2010-02-03 19:46:33 -0800</date>
            <delta_ts>2010-02-03 19:54:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-element.patch</filename>
            <type>text/plain</type>
            <size>12165</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">RnJvbSBhNTE2MmE0ZDViYjkxYjY3ZTc1OWZjMDI0YjRjOGRjZGE4YzRmMmI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIENvb25leSA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE3OjU3OjMyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gTW92
ZXMgRWxlbWVudCBjdXN0b20gbWV0aG9kcyBpbnRvIGdlbmVyaWMgYmluZGluZ3Mgc28gdGhleSBj
YW4gYmUgc2hhcmVkLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjkgKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0VsZW1lbnQuaCAgICAgICAgICB8ICAxMDMgKysrKysrKysrKysrKysrKysrKysKIFdlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwICAgICB8ICAgMjEg
Ky0tLQogLi4uL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaCAg
fCAgIDQ2ICsrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygrKSwgMTYg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdFbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4
L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZhOTMyNi4uMjM0OWJiMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxMC0wMi0wMyAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtW
OF0gTW92ZSBFbGVtZW50IGN1c3RvbSBtZXRob2RzIGludG8gZ2VuZXJpYyBiaW5kaW5ncworCisg
ICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHNlY3VyaXR5IGNoZWNrcyBpbiBzZXRBdHRyaWJ1
dGUsCisgICAgICAgIHNldEF0dHJpYnV0ZU5vZGUsIHNldEF0dHJpYnV0ZU5TIGFuZCBzZXRBdHRy
aWJ1dGVOb2RlTlMgZnJvbQorICAgICAgICBWOEVsZW1lbnRDdXN0b20gaW50byB0aGUgZ2VuZXJp
YyBiaW5kaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlCisgICAgICAgIHJldXNlZCBpbiBvdGhlciBi
aW5kaW5ncy4gVGhpcyBpcyBpbiBhIHNpbWlsYXIgdmVpbiB0bworICAgICAgICA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9NDU4NzI+LgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDU1NAorCisgICAgICAgIExheW91
dFRlc3RzOiBOb25lCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdFbGVtZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6c2V0QXR0
cmlidXRlTlMpOgorICAgICAgICAoV2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGVOb2RlTlMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50Ojpz
ZXRBdHRyaWJ1dGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0
dHJpYnV0ZU5vZGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0
dHJpYnV0ZU5TQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50OjpzZXRBdHRy
aWJ1dGVOb2RlTlNDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRp
b24vVjhCaW5kaW5nRWxlbWVudC5oOiBBZGRlZC4KKwogMjAxMC0wMi0wMyAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgcmV2ZXJ0
IG9mIHI1NDI1OSBhcyBpdCBzZWVtcyB0byBicmVhayBjaHJvbWl1bSdzIHVuaXQgdGVzdHMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaCBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjg3YWI1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQmluZGluZ0VsZW1lbnRfaAorI2RlZmluZSBCaW5kaW5nRWxlbWVudF9oCisKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkdlbmVy
aWNCaW5kaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQXR0cjsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBC
aW5kaW5nRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgc2V0QXR0cmlidXRlKFN0
YXRlPEJpbmRpbmc+KiwgRWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21p
Y1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF0dHI+IHNldEF0
dHJpYnV0ZU5vZGUoU3RhdGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRBdHRyaWJ1dGVOUyhTdGF0ZTxCaW5kaW5nPiosIEVs
ZW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxBdHRyPiBz
ZXRBdHRyaWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2Vw
dGlvbkNvZGUmKTsKK307CisKKy8vIEltcGxlbWVudGF0aW9ucyBvZiB0ZW1wbGF0ZWQgbWV0aG9k
cyBtdXN0IGJlIGluIHRoaXMgZmlsZS4KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lk
IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGUoU3RhdGU8QmluZGluZz4qIHN0
YXRlLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChlbGVt
ZW50KTsKKworICAgIGlmICghQmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdT
cmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVsZW1lbnQsIG5hbWUsIHZhbHVlKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBlYyk7Cit9
CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50
PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGVOb2RlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVu
dCogZWxlbWVudCwgQXR0ciogbmV3QXR0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNT
RVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChuZXdBdHRyKTsKKworICAgIGlmICghQmluZGluZ1Nl
Y3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVs
ZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuIGVsZW1lbnQtPnNldEF0dHJpYnV0ZU5vZGUobmV3QXR0ciwgZWMp
OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0VsZW1lbnQ8Qmlu
ZGluZz46OnNldEF0dHJpYnV0ZU5TKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxl
bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmlu
ZyYgcXVhbGlmaWVkTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJp
dHk8QmluZGluZz46OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVu
dCwgcXVhbGlmaWVkTmFtZSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBlbGVtZW50
LT5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVt
ZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBF
bGVtZW50KiBlbGVtZW50LCBBdHRyKiBuZXdBdHRyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKG5ld0F0dHIpOworCisgICAgaWYgKCFCaW5k
aW5nU2VjdXJpdHk8QmluZGluZz46OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0
ZSwgZWxlbWVudCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1ZSgpKSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICByZXR1cm4gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0
dHIsIGVjKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGlu
Z0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggNDM5ZGZkNy4uZjA5YmE5YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC00NSwxMiArNDUsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiAgICAgY2xhc3MgRXZlbnRUYXJnZXQ7
CiAgICAgY2xhc3MgVjhCaW5kaW5nRE9NV2luZG93OworICAgIGNsYXNzIFY4QmluZGluZ0VsZW1l
bnQ7CiAKICAgICAvLyBJbnN0YW50aWF0ZSBiaW5kaW5nIHRlbXBsYXRlIGNsYXNzZXMgZm9yIFY4
LgogICAgIGNsYXNzIFY4QmluZGluZyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01X
aW5kb3cgRE9NV2luZG93OworICAgICAgICB0eXBlZGVmIFY4QmluZGluZ0VsZW1lbnQgRWxlbWVu
dDsKICAgICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5k
aW5nU2VjdXJpdHk7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEVsZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbGVt
ZW50Q3VzdG9tLmNwcAppbmRleCA5OTAxZjFiLi5kZWRiNWQxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKIAog
I2luY2x1ZGUgIlY4QXR0ci5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4
QmluZGluZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUg
IlY4Q3VzdG9tQmluZGluZy5oIgogI2luY2x1ZGUgIlY4SFRNTEVsZW1lbnQuaCIKQEAgLTU5LDEx
ICs2MCw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgU3RyaW5nIG5hbWUgPSB0b1dl
YkNvcmVTdHJpbmcoYXJnc1swXSk7CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5n
KGFyZ3NbMV0pOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5hbWUsIHZh
bHVlKSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgZWMpOwor
ICAgIFY4QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJpYnV0ZShWOEJpbmRpbmdTdGF0ZTo6T25seSgp
LCBlbGVtZW50LCBuYW1lLCB2YWx1ZSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZWMpOwogCkBAIC03OSwxMSArNzcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYQogICAgIEF0dHIqIG5ld0F0dHIgPSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1l
bnQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0
eTo6YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCks
IGVsZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBS
ZWZQdHI8QXR0cj4gcmVzdWx0ID0gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZShuZXdBdHRyLCBl
Yyk7CisgICAgUmVmUHRyPEF0dHI+IHJlc3VsdCA9IFY4QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJp
YnV0ZU5vZGUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZWxlbWVudCwgbmV3QXR0ciwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgdGhyb3dFcnJvcihlYyk7CiAKQEAgLTk4LDExICs5Myw4IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5TQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgU3RyaW5nIHF1YWxpZmllZE5hbWUgPSB0b1dl
YkNvcmVTdHJpbmcoYXJnc1sxXSk7CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5n
KGFyZ3NbMl0pOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIHF1YWxpZmll
ZE5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFj
ZVVSSSwgcXVhbGlmaWVkTmFtZSwgdmFsdWUsIGVjKTsKKyAgICBWOEJpbmRpbmdFbGVtZW50Ojpz
ZXRBdHRyaWJ1dGVOUyhWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBlbGVtZW50LCBuYW1lc3BhY2VV
UkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICB0aHJv
d0Vycm9yKGVjKTsKIApAQCAtMTE4LDExICsxMTAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlTlNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JgogICAgIEF0dHIqIG5ld0F0dHIgPSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1lbnQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6
YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVs
ZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJldHVy
biB2ODo6VW5kZWZpbmVkKCk7Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQ
dHI8QXR0cj4gcmVzdWx0ID0gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0dHIsIGVj
KTsKKyAgICBSZWZQdHI8QXR0cj4gcmVzdWx0ID0gVjhCaW5kaW5nRWxlbWVudDo6c2V0QXR0cmli
dXRlTm9kZU5TKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5ld0F0dHIsIGVjKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHRocm93RXJyb3IoZWMpOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaCBiL1dlYkNv
cmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OTUwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBWOEJpbmRpbmdFbGVtZW50X2gKKyNkZWZpbmUgVjhCaW5k
aW5nRWxlbWVudF9oCisKKyNpbmNsdWRlICJCaW5kaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIkdl
bmVyaWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVjhCaW5kaW5n
OworCitjbGFzcyBWOEJpbmRpbmdFbGVtZW50IDogcHVibGljIEJpbmRpbmdFbGVtZW50PFY4Qmlu
ZGluZz4geworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVjhCaW5k
aW5nRWxlbWVudF9oCi0tIAoxLjYuNgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48092</attachid>
            <date>2010-02-03 19:53:47 -0800</date>
            <delta_ts>2010-02-03 20:41:58 -0800</delta_ts>
            <desc>Patch--fixes style violation.</desc>
            <filename>0002-element.patch</filename>
            <type>text/plain</type>
            <size>12165</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">RnJvbSBhZmI1OWRhNWZmMjNiNTNmNTAxMjQwOGI0YjNmMDZkMTM0YzIxZDViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIENvb25leSA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE3OjU3OjMyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gTW92
ZXMgRWxlbWVudCBjdXN0b20gbWV0aG9kcyBpbnRvIGdlbmVyaWMgYmluZGluZ3Mgc28gdGhleSBj
YW4gYmUgc2hhcmVkLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjkgKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0VsZW1lbnQuaCAgICAgICAgICB8ICAxMDMgKysrKysrKysrKysrKysrKysrKysKIFdlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwICAgICB8ICAgMjEg
Ky0tLQogLi4uL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaCAg
fCAgIDQ2ICsrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygrKSwgMTYg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdFbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3Y4
L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZhOTMyNi4uMjM0OWJiMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxMC0wMi0wMyAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtW
OF0gTW92ZSBFbGVtZW50IGN1c3RvbSBtZXRob2RzIGludG8gZ2VuZXJpYyBiaW5kaW5ncworCisg
ICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHNlY3VyaXR5IGNoZWNrcyBpbiBzZXRBdHRyaWJ1
dGUsCisgICAgICAgIHNldEF0dHJpYnV0ZU5vZGUsIHNldEF0dHJpYnV0ZU5TIGFuZCBzZXRBdHRy
aWJ1dGVOb2RlTlMgZnJvbQorICAgICAgICBWOEVsZW1lbnRDdXN0b20gaW50byB0aGUgZ2VuZXJp
YyBiaW5kaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlCisgICAgICAgIHJldXNlZCBpbiBvdGhlciBi
aW5kaW5ncy4gVGhpcyBpcyBpbiBhIHNpbWlsYXIgdmVpbiB0bworICAgICAgICA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9NDU4NzI+LgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDU1NAorCisgICAgICAgIExheW91
dFRlc3RzOiBOb25lCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdFbGVtZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6c2V0QXR0
cmlidXRlTlMpOgorICAgICAgICAoV2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGVOb2RlTlMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50Ojpz
ZXRBdHRyaWJ1dGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0
dHJpYnV0ZU5vZGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0
dHJpYnV0ZU5TQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50OjpzZXRBdHRy
aWJ1dGVOb2RlTlNDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRp
b24vVjhCaW5kaW5nRWxlbWVudC5oOiBBZGRlZC4KKwogMjAxMC0wMi0wMyAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgcmV2ZXJ0
IG9mIHI1NDI1OSBhcyBpdCBzZWVtcyB0byBicmVhayBjaHJvbWl1bSdzIHVuaXQgdGVzdHMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaCBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmNmMGMyYzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQmluZGluZ0VsZW1lbnRfaAorI2RlZmluZSBCaW5kaW5nRWxlbWVudF9oCisKKyNpbmNsdWRl
ICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkdlbmVy
aWNCaW5kaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQXR0cjsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBC
aW5kaW5nRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgc2V0QXR0cmlidXRlKFN0
YXRlPEJpbmRpbmc+KiwgRWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21p
Y1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF0dHI+IHNldEF0
dHJpYnV0ZU5vZGUoU3RhdGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRBdHRyaWJ1dGVOUyhTdGF0ZTxCaW5kaW5nPiosIEVs
ZW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxBdHRyPiBz
ZXRBdHRyaWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2Vw
dGlvbkNvZGUmKTsKK307CisKKy8vIEltcGxlbWVudGF0aW9ucyBvZiB0ZW1wbGF0ZWQgbWV0aG9k
cyBtdXN0IGJlIGluIHRoaXMgZmlsZS4KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lk
IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGUoU3RhdGU8QmluZGluZz4qIHN0
YXRlLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChlbGVt
ZW50KTsKKworICAgIGlmICghQmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdT
cmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVsZW1lbnQsIG5hbWUsIHZhbHVlKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBlYyk7Cit9
CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50
PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGVOb2RlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVu
dCogZWxlbWVudCwgQXR0ciogbmV3QXR0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNT
RVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChuZXdBdHRyKTsKKworICAgIGlmICghQmluZGluZ1Nl
Y3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVs
ZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuIGVsZW1lbnQtPnNldEF0dHJpYnV0ZU5vZGUobmV3QXR0ciwgZWMp
OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0VsZW1lbnQ8Qmlu
ZGluZz46OnNldEF0dHJpYnV0ZU5TKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxl
bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmlu
ZyYgcXVhbGlmaWVkTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJp
dHk8QmluZGluZz46OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVu
dCwgcXVhbGlmaWVkTmFtZSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBlbGVtZW50
LT5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVt
ZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBF
bGVtZW50KiBlbGVtZW50LCBBdHRyKiBuZXdBdHRyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKG5ld0F0dHIpOworCisgICAgaWYgKCFCaW5k
aW5nU2VjdXJpdHk8QmluZGluZz46OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0
ZSwgZWxlbWVudCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1ZSgpKSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICByZXR1cm4gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0
dHIsIGVjKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGlu
Z0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggNDM5ZGZkNy4uZjA5YmE5YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC00NSwxMiArNDUsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiAgICAgY2xhc3MgRXZlbnRUYXJnZXQ7
CiAgICAgY2xhc3MgVjhCaW5kaW5nRE9NV2luZG93OworICAgIGNsYXNzIFY4QmluZGluZ0VsZW1l
bnQ7CiAKICAgICAvLyBJbnN0YW50aWF0ZSBiaW5kaW5nIHRlbXBsYXRlIGNsYXNzZXMgZm9yIFY4
LgogICAgIGNsYXNzIFY4QmluZGluZyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01X
aW5kb3cgRE9NV2luZG93OworICAgICAgICB0eXBlZGVmIFY4QmluZGluZ0VsZW1lbnQgRWxlbWVu
dDsKICAgICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5k
aW5nU2VjdXJpdHk7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEVsZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbGVt
ZW50Q3VzdG9tLmNwcAppbmRleCA5OTAxZjFiLi5kZWRiNWQxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKIAog
I2luY2x1ZGUgIlY4QXR0ci5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4
QmluZGluZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUg
IlY4Q3VzdG9tQmluZGluZy5oIgogI2luY2x1ZGUgIlY4SFRNTEVsZW1lbnQuaCIKQEAgLTU5LDEx
ICs2MCw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgU3RyaW5nIG5hbWUgPSB0b1dl
YkNvcmVTdHJpbmcoYXJnc1swXSk7CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5n
KGFyZ3NbMV0pOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5hbWUsIHZh
bHVlKSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgZWMpOwor
ICAgIFY4QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJpYnV0ZShWOEJpbmRpbmdTdGF0ZTo6T25seSgp
LCBlbGVtZW50LCBuYW1lLCB2YWx1ZSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZWMpOwogCkBAIC03OSwxMSArNzcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYQogICAgIEF0dHIqIG5ld0F0dHIgPSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1l
bnQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0
eTo6YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCks
IGVsZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBS
ZWZQdHI8QXR0cj4gcmVzdWx0ID0gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZShuZXdBdHRyLCBl
Yyk7CisgICAgUmVmUHRyPEF0dHI+IHJlc3VsdCA9IFY4QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJp
YnV0ZU5vZGUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZWxlbWVudCwgbmV3QXR0ciwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgdGhyb3dFcnJvcihlYyk7CiAKQEAgLTk4LDExICs5Myw4IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5TQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgU3RyaW5nIHF1YWxpZmllZE5hbWUgPSB0b1dl
YkNvcmVTdHJpbmcoYXJnc1sxXSk7CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5n
KGFyZ3NbMl0pOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIHF1YWxpZmll
ZE5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFj
ZVVSSSwgcXVhbGlmaWVkTmFtZSwgdmFsdWUsIGVjKTsKKyAgICBWOEJpbmRpbmdFbGVtZW50Ojpz
ZXRBdHRyaWJ1dGVOUyhWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBlbGVtZW50LCBuYW1lc3BhY2VV
UkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICB0aHJv
d0Vycm9yKGVjKTsKIApAQCAtMTE4LDExICsxMTAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlTlNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JgogICAgIEF0dHIqIG5ld0F0dHIgPSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1lbnQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6
YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVs
ZW1lbnQsIG5ld0F0dHItPm5hbWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJldHVy
biB2ODo6VW5kZWZpbmVkKCk7Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQ
dHI8QXR0cj4gcmVzdWx0ID0gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0dHIsIGVj
KTsKKyAgICBSZWZQdHI8QXR0cj4gcmVzdWx0ID0gVjhCaW5kaW5nRWxlbWVudDo6c2V0QXR0cmli
dXRlTm9kZU5TKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5ld0F0dHIsIGVjKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHRocm93RXJyb3IoZWMpOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaCBiL1dlYkNv
cmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OTUwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBWOEJpbmRpbmdFbGVtZW50X2gKKyNkZWZpbmUgVjhCaW5k
aW5nRWxlbWVudF9oCisKKyNpbmNsdWRlICJCaW5kaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIkdl
bmVyaWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVjhCaW5kaW5n
OworCitjbGFzcyBWOEJpbmRpbmdFbGVtZW50IDogcHVibGljIEJpbmRpbmdFbGVtZW50PFY4Qmlu
ZGluZz4geworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVjhCaW5k
aW5nRWxlbWVudF9oCi0tIAoxLjYuNgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48094</attachid>
            <date>2010-02-03 20:41:58 -0800</date>
            <delta_ts>2010-02-04 18:06:50 -0800</delta_ts>
            <desc>Patch--updates WebCore.gypi</desc>
            <filename>0003-element.patch</filename>
            <type>text/plain</type>
            <size>13227</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">RnJvbSBkZjkxNmJmMTg1NTg4NzIwNjgzZGQzOWRhYmYxZmIzNDk0ZGY4OTNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIENvb25leSA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE3OjU3OjMyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gTW92
ZXMgRWxlbWVudCBjdXN0b20gbWV0aG9kcyBpbnRvIGdlbmVyaWMgYmluZGluZ3Mgc28gdGhleSBj
YW4gYmUgc2hhcmVkLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzAgKysrKysrCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdFbGVtZW50LmggICAgICAgICAgfCAgMTAzICsrKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDIg
KwogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50Q3VzdG9tLmNwcCAgICAgfCAg
IDIxICstLS0KIC4uLi9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdFbGVtZW50
LmggIHwgICA0NiArKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2VydGlvbnMoKyks
IDE2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nRWxlbWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5n
cy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdFbGVtZW50LmgKCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmYTkzMjYuLmY2MDE0NTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDItMDMgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbVjhdIE1vdmUgRWxlbWVudCBjdXN0b20gbWV0aG9kcyBpbnRvIGdlbmVyaWMgYmluZGluZ3MK
KworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBzZWN1cml0eSBjaGVja3MgaW4gc2V0QXR0
cmlidXRlLAorICAgICAgICBzZXRBdHRyaWJ1dGVOb2RlLCBzZXRBdHRyaWJ1dGVOUyBhbmQgc2V0
QXR0cmlidXRlTm9kZU5TIGZyb20KKyAgICAgICAgVjhFbGVtZW50Q3VzdG9tIGludG8gdGhlIGdl
bmVyaWMgYmluZGluZ3Mgc28gdGhhdCB0aGV5IGNhbiBiZQorICAgICAgICByZXVzZWQgaW4gb3Ro
ZXIgYmluZGluZ3MuIFRoaXMgaXMgaW4gYSBzaW1pbGFyIHZlaW4gdG8KKyAgICAgICAgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTQ1ODcyPi4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ1NTQKKworICAgICAgICBM
YXlvdXRUZXN0czogTm9uZQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
Ojo6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjo6OnNldEF0dHJpYnV0ZU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6OjpzZXRBdHRyaWJ1dGVOUyk6CisgICAgICAgIChXZWJDb3Jl
Ojo6OnNldEF0dHJpYnV0ZU5vZGVOUyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5n
Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZUNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RWxlbWVudDo6c2V0QXR0cmlidXRlTlNDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGVOU0NhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdFbGVtZW50Lmg6IEFkZGVk
LgorCiAyMDEwLTAyLTAzICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCByZXZlcnQgb2YgcjU0MjU5IGFzIGl0IHNlZW1zIHRvIGJy
ZWFrIGNocm9taXVtJ3MgdW5pdCB0ZXN0cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWQ0OWU4My4uOGFiZDYzZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ1MCw2ICs0NTAsNyBAQAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyV2luLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvd3gv
QWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nRE9NV2luZG93LmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2Vj
dXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlC
YXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlC
YXNlLmgnLApAQCAtODI2LDYgKzgyNyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0
aW9uL1Y4QmluZGluZ0RPTVdpbmRvdy5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9zcGVj
aWFsaXphdGlvbi9WOEJpbmRpbmdFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNm
MGMyYzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGlu
Z0VsZW1lbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQmluZGluZ0VsZW1lbnRfaAor
I2RlZmluZSBCaW5kaW5nRWxlbWVudF9oCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXR0cjsK
KwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nRWxlbWVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIHZvaWQgc2V0QXR0cmlidXRlKFN0YXRlPEJpbmRpbmc+KiwgRWxlbWVu
dCosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF0dHI+IHNldEF0dHJpYnV0ZU5vZGUoU3RhdGU8Qmlu
ZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgdm9p
ZCBzZXRBdHRyaWJ1dGVOUyhTdGF0ZTxCaW5kaW5nPiosIEVsZW1lbnQqLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxBdHRyPiBzZXRBdHRyaWJ1dGVOb2RlTlMoU3Rh
dGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNvZGUmKTsKK307CisKKy8v
IEltcGxlbWVudGF0aW9ucyBvZiB0ZW1wbGF0ZWQgbWV0aG9kcyBtdXN0IGJlIGluIHRoaXMgZmls
ZS4KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lkIEJpbmRpbmdFbGVtZW50PEJpbmRp
bmc+OjpzZXRBdHRyaWJ1dGUoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChlbGVtZW50KTsKKworICAgIGlmICghQmlu
ZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3Rh
dGUsIGVsZW1lbnQsIG5hbWUsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWxlbWVu
dC0+c2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBlYyk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBC
aW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1
dGVOb2RlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxlbWVudCwgQXR0ciogbmV3
QXR0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFT
U0VSVChuZXdBdHRyKTsKKworICAgIGlmICghQmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxv
d1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVsZW1lbnQsIG5ld0F0dHItPm5hbWUo
KSwgbmV3QXR0ci0+dmFsdWUoKSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGVs
ZW1lbnQtPnNldEF0dHJpYnV0ZU5vZGUobmV3QXR0ciwgZWMpOworfQorCit0ZW1wbGF0ZSA8Y2xh
c3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0VsZW1lbnQ8QmluZGluZz46OnNldEF0dHJpYnV0ZU5T
KFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxlbWVudCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJU
KGVsZW1lbnQpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46OmFsbG93U2V0
dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVudCwgcXVhbGlmaWVkTmFtZSwgdmFs
dWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGVOUyhuYW1l
c3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7Cit9CisKK3RlbXBsYXRlIDxjbGFz
cyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRy
aWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50LCBBdHRy
KiBuZXdBdHRyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7Cisg
ICAgQVNTRVJUKG5ld0F0dHIpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46
OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVudCwgbmV3QXR0ci0+
bmFtZSgpLCBuZXdBdHRyLT52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1
cm4gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0dHIsIGVjKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0VsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nLmgKaW5kZXggNDM5ZGZkNy4uZjA5YmE5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oCkBAIC00NSwxMiArNDUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEV2
ZW50TGlzdGVuZXI7CiAgICAgY2xhc3MgRXZlbnRUYXJnZXQ7CiAgICAgY2xhc3MgVjhCaW5kaW5n
RE9NV2luZG93OworICAgIGNsYXNzIFY4QmluZGluZ0VsZW1lbnQ7CiAKICAgICAvLyBJbnN0YW50
aWF0ZSBiaW5kaW5nIHRlbXBsYXRlIGNsYXNzZXMgZm9yIFY4LgogICAgIGNsYXNzIFY4QmluZGlu
ZyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
YWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01XaW5kb3cgRE9NV2luZG93OworICAg
ICAgICB0eXBlZGVmIFY4QmluZGluZ0VsZW1lbnQgRWxlbWVudDsKICAgICB9OwogICAgIHR5cGVk
ZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5kaW5nU2VjdXJpdHk7CiAgICAgCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50Q3VzdG9tLmNwcAppbmRleCA5
OTAxZjFiLi5kZWRiNWQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxl
bWVudEN1c3RvbS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKIAogI2luY2x1ZGUgIlY4QXR0ci5oIgog
I2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4QmluZGluZ0VsZW1lbnQuaCIKICNp
bmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgog
I2luY2x1ZGUgIlY4SFRNTEVsZW1lbnQuaCIKQEAgLTU5LDExICs2MCw4IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgU3RyaW5nIG5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSk7
CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMV0pOwogCi0gICAgaWYg
KCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4Qmlu
ZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgZWMpOworICAgIFY4QmluZGluZ0VsZW1lbnQ6
OnNldEF0dHJpYnV0ZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBlbGVtZW50LCBuYW1lLCB2YWx1
ZSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwogCkBA
IC03OSwxMSArNzcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhFbGVtZW50OjpzZXRBdHRy
aWJ1dGVOb2RlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgIEF0dHIqIG5ld0F0
dHIgPSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sw
XSkpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1lbnQ6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3JjVG9K
YXZhc2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5ld0F0dHItPm5h
bWUoKSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQdHI8QXR0cj4gcmVzdWx0ID0g
ZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZShuZXdBdHRyLCBlYyk7CisgICAgUmVmUHRyPEF0dHI+
IHJlc3VsdCA9IFY4QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGUoVjhCaW5kaW5nU3Rh
dGU6Ok9ubHkoKSwgZWxlbWVudCwgbmV3QXR0ciwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
dGhyb3dFcnJvcihlYyk7CiAKQEAgLTk4LDExICs5Myw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5TQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJnCiAgICAgU3RyaW5nIHF1YWxpZmllZE5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1sxXSk7
CiAgICAgU3RyaW5nIHZhbHVlID0gdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMl0pOwogCi0gICAgaWYg
KCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKFY4Qmlu
ZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIHF1YWxpZmllZE5hbWUsIHZhbHVlKSkKLSAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwg
dmFsdWUsIGVjKTsKKyAgICBWOEJpbmRpbmdFbGVtZW50OjpzZXRBdHRyaWJ1dGVOUyhWOEJpbmRp
bmdTdGF0ZTo6T25seSgpLCBlbGVtZW50LCBuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIHZh
bHVlLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICB0aHJvd0Vycm9yKGVjKTsKIApAQCAtMTE4
LDExICsxMTAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhFbGVtZW50OjpzZXRBdHRyaWJ1
dGVOb2RlTlNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIEF0dHIqIG5ld0F0dHIg
PSBWOEF0dHI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkp
OwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBWOEVsZW1lbnQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwogCi0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6YWxsb3dTZXR0aW5nU3JjVG9KYXZh
c2NyaXB0VVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5ld0F0dHItPm5hbWUo
KSwgbmV3QXR0ci0+dmFsdWUoKSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0K
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQdHI8QXR0cj4gcmVzdWx0ID0gZWxl
bWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0dHIsIGVjKTsKKyAgICBSZWZQdHI8QXR0cj4g
cmVzdWx0ID0gVjhCaW5kaW5nRWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZU5TKFY4QmluZGluZ1N0
YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5ld0F0dHIsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHRocm93RXJyb3IoZWMpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNp
YWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lh
bGl6YXRpb24vVjhCaW5kaW5nRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjQ0OTUwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3Nw
ZWNpYWxpemF0aW9uL1Y4QmluZGluZ0VsZW1lbnQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBWOEJpbmRpbmdFbGVtZW50X2gKKyNkZWZpbmUgVjhCaW5kaW5nRWxlbWVudF9oCisKKyNpbmNs
dWRlICJCaW5kaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVjhCaW5kaW5nOworCitjbGFzcyBWOEJpbmRpbmdF
bGVtZW50IDogcHVibGljIEJpbmRpbmdFbGVtZW50PFY4QmluZGluZz4geworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVjhCaW5kaW5nRWxlbWVudF9oCi0tIAoxLjYu
NgoK
</data>
<flag name="review"
          id="30715"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48189</attachid>
            <date>2010-02-04 18:06:50 -0800</date>
            <delta_ts>2010-02-08 22:48:53 -0800</delta_ts>
            <desc>Patch--implements review feedback.</desc>
            <filename>0004-element.patch</filename>
            <type>text/plain</type>
            <size>10214</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">RnJvbSBmMmYzYTQ3NjNjNmMxYTUxZTNmNDE0ZjY3Nzk0NjA4OWQ4MzliZWQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIENvb25leSA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE3OjU3OjMyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gTW92
ZXMgRWxlbWVudCBjdXN0b20gbWV0aG9kcyBpbnRvIGdlbmVyaWMgYmluZGluZ3Mgc28gdGhleSBj
YW4gYmUgc2hhcmVkLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyOSArKysrKysrCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGlu
Z0VsZW1lbnQuaCAgICAgIHwgIDEwMiArKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmggICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHAgfCAgIDIwICstLS0tCiA1IGZp
bGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaAoKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI0
YzUxNS4uZGNlMmNmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wMi0wNSAgRG9taW5pYyBDb29uZXkg
IDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtWOF0gTW92ZSBFbGVtZW50IGN1c3RvbSBtZXRob2RzIGludG8gZ2Vu
ZXJpYyBiaW5kaW5ncworCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHNlY3VyaXR5IGNo
ZWNrcyBpbiBzZXRBdHRyaWJ1dGUsCisgICAgICAgIHNldEF0dHJpYnV0ZU5vZGUsIHNldEF0dHJp
YnV0ZU5TIGFuZCBzZXRBdHRyaWJ1dGVOb2RlTlMgZnJvbQorICAgICAgICBWOEVsZW1lbnRDdXN0
b20gaW50byB0aGUgZ2VuZXJpYyBiaW5kaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlCisgICAgICAg
IHJldXNlZCBpbiBvdGhlciBiaW5kaW5ncy4gVGhpcyBpcyBpbiBhIHNpbWlsYXIgdmVpbiB0bwor
ICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9NDU4NzI+
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDU1
NAorCisgICAgICAgIExheW91dFRlc3RzOiBOb25lCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRWxlbWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ojo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6c2V0
QXR0cmlidXRlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjo6OnNldEF0dHJpYnV0ZU5TKToKKyAg
ICAgICAgKFdlYkNvcmU6Ojo6c2V0QXR0cmlidXRlTm9kZU5TKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RWxlbWVudDo6c2V0QXR0cmlidXRlQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhFbGVtZW50OjpzZXRBdHRyaWJ1dGVOU0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZU5TQ2Fs
bGJhY2spOgorCiAyMDEwLTAyLTA0ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tl
QHNlbGZpc2gub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODI5
MTgxMS4uMDIzMDY5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ1MCw2ICs0NTAsNyBAQAogICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyV2luLmgnLAogICAgICAgICAg
ICAgJ2FjY2Vzc2liaWxpdHkvd3gvQWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdFbGVtZW50LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc4NTZh
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdFbGVt
ZW50LmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJpbmRpbmdFbGVtZW50X2gKKyNkZWZp
bmUgQmluZGluZ0VsZW1lbnRfaAorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkJpbmRp
bmdTZWN1cml0eS5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nRWxlbWVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIHZvaWQgc2V0QXR0cmlidXRlKFN0YXRlPEJpbmRpbmc+KiwgRWxlbWVu
dCosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF0dHI+IHNldEF0dHJpYnV0ZU5vZGUoU3RhdGU8Qmlu
ZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgdm9p
ZCBzZXRBdHRyaWJ1dGVOUyhTdGF0ZTxCaW5kaW5nPiosIEVsZW1lbnQqLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxBdHRyPiBzZXRBdHRyaWJ1dGVOb2RlTlMoU3Rh
dGU8QmluZGluZz4qLCBFbGVtZW50KiwgQXR0ciosIEV4Y2VwdGlvbkNvZGUmKTsKK307CisKKy8v
IEltcGxlbWVudGF0aW9ucyBvZiB0ZW1wbGF0ZWQgbWV0aG9kcyBtdXN0IGJlIGluIHRoaXMgZmls
ZS4KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lkIEJpbmRpbmdFbGVtZW50PEJpbmRp
bmc+OjpzZXRBdHRyaWJ1dGUoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChlbGVtZW50KTsKKworICAgIGlmICghQmlu
ZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3Rh
dGUsIGVsZW1lbnQsIG5hbWUsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWxlbWVu
dC0+c2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBlYyk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBC
aW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRyaWJ1
dGVOb2RlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxlbWVudCwgQXR0ciogbmV3
QXR0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFT
U0VSVChuZXdBdHRyKTsKKworICAgIGlmICghQmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjphbGxv
d1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoc3RhdGUsIGVsZW1lbnQsIG5ld0F0dHItPm5hbWUo
KSwgbmV3QXR0ci0+dmFsdWUoKSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGVs
ZW1lbnQtPnNldEF0dHJpYnV0ZU5vZGUobmV3QXR0ciwgZWMpOworfQorCit0ZW1wbGF0ZSA8Y2xh
c3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0VsZW1lbnQ8QmluZGluZz46OnNldEF0dHJpYnV0ZU5T
KFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRWxlbWVudCogZWxlbWVudCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJU
KGVsZW1lbnQpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46OmFsbG93U2V0
dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVudCwgcXVhbGlmaWVkTmFtZSwgdmFs
dWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGVOUyhuYW1l
c3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIHZhbHVlLCBlYyk7Cit9CisKK3RlbXBsYXRlIDxjbGFz
cyBCaW5kaW5nPgorUmVmUHRyPEF0dHI+IEJpbmRpbmdFbGVtZW50PEJpbmRpbmc+OjpzZXRBdHRy
aWJ1dGVOb2RlTlMoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50LCBBdHRy
KiBuZXdBdHRyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7Cisg
ICAgQVNTRVJUKG5ld0F0dHIpOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46
OmFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChzdGF0ZSwgZWxlbWVudCwgbmV3QXR0ci0+
bmFtZSgpLCBuZXdBdHRyLT52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1
cm4gZWxlbWVudC0+c2V0QXR0cmlidXRlTm9kZU5TKG5ld0F0dHIsIGVjKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0VsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nLmgKaW5kZXggNDM5ZGZkNy4uNWVhYTJkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFY4QmluZGluZ19oCiAKICNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJCaW5kaW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIkJp
bmRpbmdTZWN1cml0eS5oIgogI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgpAQCAtNTMsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHR5cGVkZWYgVjhCaW5kaW5nRE9NV2luZG93IERPTVdpbmRvdzsKICAgICB9OwogICAgIHR5
cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5kaW5nU2VjdXJpdHk7CisgICAg
dHlwZWRlZiBCaW5kaW5nRWxlbWVudDxWOEJpbmRpbmc+IFY4QmluZGluZ0VsZW1lbnQ7CiAgICAg
CiAgICAgZW51bSBFeHRlcm5hbE1vZGUgewogICAgICAgICBFeHRlcm5hbGl6ZSwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IGI0MjBmNmEu
LmRkNGZmMTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVu
dEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50Q3Vz
dG9tLmNwcApAQCAtNTksMTEgKzU5LDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RWxlbWVu
dDo6c2V0QXR0cmlidXRlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBT
dHJpbmcgbmFtZSA9IHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKTsKICAgICBTdHJpbmcgdmFsdWUg
PSB0b1dlYkNvcmVTdHJpbmcoYXJnc1sxXSk7CiAKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5
OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwg
ZWxlbWVudCwgbmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwot
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKG5h
bWUsIHZhbHVlLCBlYyk7CisgICAgVjhCaW5kaW5nRWxlbWVudDo6c2V0QXR0cmlidXRlKFY4Qmlu
ZGluZ1N0YXRlOjpPbmx5KCksIGVsZW1lbnQsIG5hbWUsIHZhbHVlLCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlYyk7CiAKQEAgLTc5LDExICs3Niw4IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGVDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhCiAgICAgQXR0ciogbmV3QXR0ciA9IFY4QXR0cjo6dG9OYXRp
dmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSk7CiAgICAgRWxlbWVudCog
ZWxlbWVudCA9IFY4RWxlbWVudDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKLSAgICBpZiAo
IVY4QmluZGluZ1NlY3VyaXR5OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoVjhCaW5k
aW5nU3RhdGU6Ok9ubHkoKSwgZWxlbWVudCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1
ZSgpKSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIFJlZlB0cjxBdHRyPiByZXN1bHQgPSBlbGVtZW50LT5zZXRBdHRyaWJ1
dGVOb2RlKG5ld0F0dHIsIGVjKTsKKyAgICBSZWZQdHI8QXR0cj4gcmVzdWx0ID0gVjhCaW5kaW5n
RWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBlbGVtZW50
LCBuZXdBdHRyLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICB0aHJvd0Vycm9yKGVjKTsKIApA
QCAtOTgsMTEgKzkyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RWxlbWVudDo6c2V0QXR0
cmlidXRlTlNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICBTdHJpbmcgcXVh
bGlmaWVkTmFtZSA9IHRvV2ViQ29yZVN0cmluZyhhcmdzWzFdKTsKICAgICBTdHJpbmcgdmFsdWUg
PSB0b1dlYkNvcmVTdHJpbmcoYXJnc1syXSk7CiAKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5
OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwg
ZWxlbWVudCwgcXVhbGlmaWVkTmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwotCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudC0+c2V0QXR0
cmlidXRlTlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCB2YWx1ZSwgZWMpOworICAgIFY4
QmluZGluZ0VsZW1lbnQ6OnNldEF0dHJpYnV0ZU5TKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGVs
ZW1lbnQsIG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgdmFsdWUsIGVjKTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHRocm93RXJyb3IoZWMpOwogCkBAIC0xMTgsMTEgKzEwOSw4IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGVOU0NhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmCiAgICAgQXR0ciogbmV3QXR0ciA9IFY4QXR0cjo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSk7CiAgICAgRWxlbWVudCogZWxl
bWVudCA9IFY4RWxlbWVudDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKLSAgICBpZiAoIVY4
QmluZGluZ1NlY3VyaXR5OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoVjhCaW5kaW5n
U3RhdGU6Ok9ubHkoKSwgZWxlbWVudCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1ZSgp
KSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIFJlZlB0cjxBdHRyPiByZXN1bHQgPSBlbGVtZW50LT5zZXRBdHRyaWJ1dGVO
b2RlTlMobmV3QXR0ciwgZWMpOworICAgIFJlZlB0cjxBdHRyPiByZXN1bHQgPSBWOEJpbmRpbmdF
bGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlTlMoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZWxlbWVu
dCwgbmV3QXR0ciwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgdGhyb3dFcnJvcihlYyk7CiAK
LS0gCjEuNi42Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>