<?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>56898</bug_id>
          
          <creation_ts>2011-03-23 00:03:47 -0700</creation_ts>
          <short_desc>[chromium] WebBindings{.h,.cpp}: should use consistent argument naming</short_desc>
          <delta_ts>2011-03-23 23:48:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56996</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>371982</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 00:03:47 -0700</bug_when>
    <thetext>Resolves a FIXME I added here on r81676.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371993</commentid>
    <comment_count>1</comment_count>
      <attachid>86578</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 00:22:55 -0700</bug_when>
    <thetext>Created attachment 86578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371997</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-23 00:27:46 -0700</bug_when>
    <thetext>Attachment 86578 did not build on chromium:
Build output: http://queues.webkit.org/results/8221791</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372000</commentid>
    <comment_count>3</comment_count>
      <attachid>86579</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 00:32:39 -0700</bug_when>
    <thetext>Created attachment 86579
Patch - remove linux warning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372008</commentid>
    <comment_count>4</comment_count>
      <attachid>86579</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-23 00:41:38 -0700</bug_when>
    <thetext>Comment on attachment 86579
Patch - remove linux warning

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

omg, the style in this file is so inconsistent.

&gt; Source/WebKit/chromium/public/WebBindings.h:52
&gt; +    WEBKIT_API static bool construct(NPP, NPObject*, const NPVariant* args, uint32_t count, NPVariant* result);

Why change this? argCount seems more clear to me.

&gt; Source/WebKit/chromium/public/WebBindings.h:76
&gt; +    WEBKIT_API static void getStringIdentifiers(const NPUTF8** names, int32_t count, NPIdentifier*);

ditto

&gt; Source/WebKit/chromium/src/WebBindings.cpp:207
&gt; +    if (!object || (object-&gt;_class != npScriptObjectClass))
&gt; +        return false;

Since this is a code change could we do the style change first and then a code change?

&gt; Source/WebKit/chromium/src/WebBindings.cpp:227
&gt; +    V8NPObject* v8npobject = reinterpret_cast&lt;V8NPObject*&gt;(object);

To match the class name, this maybe should be v8NPObject.

&gt; Source/WebKit/chromium/src/WebBindings.cpp:228
&gt; +    v8::Handle&lt;v8::Object&gt; v8object(v8npobject-&gt;v8Object);

Ditto. This should probably be v8Object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372672</commentid>
    <comment_count>5</comment_count>
      <attachid>86579</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:26:11 -0700</bug_when>
    <thetext>Comment on attachment 86579
Patch - remove linux warning

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

&gt;&gt; Source/WebKit/chromium/public/WebBindings.h:52
&gt;&gt; +    WEBKIT_API static bool construct(NPP, NPObject*, const NPVariant* args, uint32_t count, NPVariant* result);
&gt; 
&gt; Why change this? argCount seems more clear to me.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebBindings.h:76
&gt;&gt; +    WEBKIT_API static void getStringIdentifiers(const NPUTF8** names, int32_t count, NPIdentifier*);
&gt; 
&gt; ditto

Done. And argCount in the remaining places below.

&gt;&gt; Source/WebKit/chromium/src/WebBindings.cpp:207
&gt;&gt; +        return false;
&gt; 
&gt; Since this is a code change could we do the style change first and then a code change?

Understood.  Removed the code change.

&gt;&gt; Source/WebKit/chromium/src/WebBindings.cpp:227
&gt;&gt; +    V8NPObject* v8npobject = reinterpret_cast&lt;V8NPObject*&gt;(object);
&gt; 
&gt; To match the class name, this maybe should be v8NPObject.

Done.

&gt;&gt; Source/WebKit/chromium/src/WebBindings.cpp:228
&gt;&gt; +    v8::Handle&lt;v8::Object&gt; v8object(v8npobject-&gt;v8Object);
&gt; 
&gt; Ditto. This should probably be v8Object.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372673</commentid>
    <comment_count>6</comment_count>
      <attachid>86741</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:27:05 -0700</bug_when>
    <thetext>Created attachment 86741
Patch (part 1) style change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372674</commentid>
    <comment_count>7</comment_count>
      <attachid>86741</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-23 22:34:29 -0700</bug_when>
    <thetext>Comment on attachment 86741
Patch (part 1) style change

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

&gt; Source/WebKit/chromium/ChangeLog:10
&gt; +        [chromium] WebBindings::getRangeImpl() should NULL check its NPObject argument
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=56898
&gt; +
&gt; +        Address FIXME I noted/added in r81676.  Wanted to just copy/paste the checking
&gt; +        code from elsewhere in the file, but inconsistent argument naming made it more
&gt; +        difficult than it need be so, to clean up the commons, add consistent naming.

This description no longer matches the patch. It&apos;s a bit lame, but since you&apos;ll be doing the NULL check in a separate patch, this cleanup should be done on a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372676</commentid>
    <comment_count>8</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:42:27 -0700</bug_when>
    <thetext>Ok changing the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372677</commentid>
    <comment_count>9</comment_count>
      <attachid>86742</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:45:07 -0700</bug_when>
    <thetext>Created attachment 86742
Patch (mod 2) style change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372678</commentid>
    <comment_count>10</comment_count>
      <attachid>86743</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:48:35 -0700</bug_when>
    <thetext>Created attachment 86743
Patch (mod 2) style change changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372681</commentid>
    <comment_count>11</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-03-23 22:55:05 -0700</bug_when>
    <thetext>Opened bug 56996 re the NULL check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372697</commentid>
    <comment_count>12</comment_count>
      <attachid>86743</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-23 23:48:16 -0700</bug_when>
    <thetext>Comment on attachment 86743
Patch (mod 2) style change changelog 

Clearing flags on attachment: 86743

Committed r81854: &lt;http://trac.webkit.org/changeset/81854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372698</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-23 23:48:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86578</attachid>
            <date>2011-03-23 00:22:55 -0700</date>
            <delta_ts>2011-03-23 22:27:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>webbindings-fixme.git.diff</filename>
            <type>text/plain</type>
            <size>13703</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGI2YWRhZi4uYjI0NWM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMy0yMyAgTm9lbCBHb3Jk
b24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBXZWJCaW5kaW5nczo6Z2V0UmFuZ2VJbXBs
KCkgc2hvdWxkIE5VTEwgY2hlY2sgaXRzIE5QT2JqZWN0IGFyZ3VtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njg5OAorCisgICAgICAgIEFkZHJl
c3MgRklYTUUgSSBub3RlZC9hZGRlZCBpbiByODE2NzYuICBXYW50ZWQgdG8ganVzdCBjb3B5L3Bh
c3RlIHRoZSBjaGVja2luZworICAgICAgICBjb2RlIGZyb20gZWxzZXdoZXJlIGluIHRoZSBmaWxl
LCBidXQgaW5jb25zaXN0ZW50IGFyZ3VtZW50IG5hbWluZyBtYWRlIGl0IG1vcmUKKyAgICAgICAg
ZGlmZmljdWx0IHRoYW4gaXQgbmVlZCBiZSBzbywgdG8gY2xlYW4gdXAgdGhlIGNvbW1vbnMsIGFk
ZCBjb25zaXN0ZW50IG5hbWluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgor
ICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRp
bmdzOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6ZW51bWVyYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmluZGluZ3M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omdl
dFN0cmluZ0lkZW50aWZpZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omhhc01l
dGhvZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjppbnZva2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
aW5kaW5nczo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpy
ZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJldGFpbk9iamVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5n
czo6dW5yZWdpc3Rlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpleHRy
YWN0SWRlbnRpZmllckRhdGEpOgorICAgICAgICAoV2ViS2l0OjpnZXRSYW5nZUltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRFbGVtZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VJbnRB
cnJheUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6Z2V0UmFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6bWFrZUludEFycmF5KToKKwogMjAxMS0wMy0yMiAg
Tm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkJpbmRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5kaW5n
cy5oCmluZGV4IDM4MjUyMjIuLjA2OGE2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQmluZGluZ3MuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhl
c2UgYXJlIGFsbCBkZWZpbmVkIGluIG5wcnVudGltZS5oIGFuZCBhcmUgd2VsbCBkb2N1bWVudGVk
LgogCiAgICAgLy8gTlBOX0NvbnN0cnVjdAotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgY29u
c3RydWN0KE5QUCwgTlBPYmplY3QqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFy
Z0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBj
b25zdHJ1Y3QoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3Qg
Y291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKIAogICAgIC8vIE5QTl9DcmVhdGVPYmplY3QKICAg
ICBXRUJLSVRfQVBJIHN0YXRpYyBOUE9iamVjdCogY3JlYXRlT2JqZWN0KE5QUCwgTlBDbGFzcyop
OwpAQCAtNjcsMTkgKzY3LDE5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBOUElk
ZW50aWZpZXIgZ2V0SW50SWRlbnRpZmllcihpbnQzMl90IG51bWJlcik7CiAKICAgICAvLyBOUE5f
R2V0UHJvcGVydHkKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGdldFByb3BlcnR5KE5QUCwg
TlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBOUFZhcmlhbnQgKnJlc3VsdCk7
CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBnZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0Kiwg
TlBJZGVudGlmaWVyIHByb3BlcnR5LCBOUFZhcmlhbnQgKnJlc3VsdCk7CiAKICAgICAvLyBOUE5f
R2V0U3RyaW5nSWRlbnRpZmllcgogICAgIFdFQktJVF9BUEkgc3RhdGljIE5QSWRlbnRpZmllciBn
ZXRTdHJpbmdJZGVudGlmaWVyKGNvbnN0IE5QVVRGOCogc3RyaW5nKTsKIAogICAgIC8vIE5QTl9H
ZXRTdHJpbmdJZGVudGlmaWVycwotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZ2V0U3RyaW5n
SWRlbnRpZmllcnMoY29uc3QgTlBVVEY4KiogbmFtZXMsIGludDMyX3QgbmFtZUNvdW50LCBOUElk
ZW50aWZpZXIqKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGdldFN0cmluZ0lkZW50aWZp
ZXJzKGNvbnN0IE5QVVRGOCoqIG5hbWVzLCBpbnQzMl90IGNvdW50LCBOUElkZW50aWZpZXIqKTsK
IAogICAgIC8vIE5QTl9IYXNNZXRob2QKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc01l
dGhvZChOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpOworICAgIFdFQktJ
VF9BUEkgc3RhdGljIGJvb2wgaGFzTWV0aG9kKE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIg
bWV0aG9kKTsKIAogICAgIC8vIE5QTl9IYXNQcm9wZXJ0eQotICAgIFdFQktJVF9BUEkgc3RhdGlj
IGJvb2wgaGFzUHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUpOworICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaGFzUHJvcGVydHkoTlBQLCBOUE9iamVj
dCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eSk7CiAKICAgICAvLyBOUE5fSWRlbnRpZmllcklzU3Ry
aW5nCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNTdHJpbmcoTlBJZGVu
dGlmaWVyKTsKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGlj
IGludDMyX3QgaW50RnJvbUlkZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKIAogICAgIC8vIE5QTl9J
bnZva2UKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0Kiwg
TlBJZGVudGlmaWVyIG1ldGhvZE5hbWUsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3Qg
Y291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlu
dm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZCwgY29uc3QgTlBWYXJpYW50
KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpOwogCiAgICAgLy8gTlBO
X0ludm9rZURlZmF1bHQKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQo
TlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5Q
VmFyaWFudCogcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkJpbmRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdz
LmNwcAppbmRleCA2N2VlOWYxLi45Nzk5ZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQmluZGluZ3MuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBXZWJCaW5kaW5nczo6Y29uc3RydWN0
KE5QUCBucHAsIE5QT2JqZWN0ICpucG9iaiwgY29uc3QgTlBWYXJpYW50ICphcmdzLCB1aW50MzJf
dCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpjb25zdHJ1
Y3QoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50
MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fQ29uc3Ry
dWN0KG5wcCwgbnBvYmosIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOworICAgIHJldHVybiBfTlBO
X0NvbnN0cnVjdChucHAsIG9iamVjdCwgYXJncywgY291bnQsIHJlc3VsdCk7CiB9CiAKIE5QT2Jq
ZWN0KiBXZWJCaW5kaW5nczo6Y3JlYXRlT2JqZWN0KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3Mp
CkBAIC02NywxOSArNjcsMTkgQEAgTlBPYmplY3QqIFdlYkJpbmRpbmdzOjpjcmVhdGVPYmplY3Qo
TlBQIG5wcCwgTlBDbGFzcyogbnBDbGFzcykKICAgICByZXR1cm4gX05QTl9DcmVhdGVPYmplY3Qo
bnBwLCBucENsYXNzKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6ZW51bWVyYXRlKE5QUCBpZCwg
TlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIHZhbCkK
K2Jvb2wgV2ViQmluZGluZ3M6OmVudW1lcmF0ZShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBO
UElkZW50aWZpZXIqKiBpZGVudGlmaWVyLCB1aW50MzJfdCogY291bnQpCiB7Ci0gICAgcmV0dXJu
IF9OUE5fRW51bWVyYXRlKGlkLCBvYmosIGlkZW50aWZpZXIsIHZhbCk7CisgICAgcmV0dXJuIF9O
UE5fRW51bWVyYXRlKG5wcCwgb2JqZWN0LCBpZGVudGlmaWVyLCBjb3VudCk7CiB9CiAKLWJvb2wg
V2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBucE9iamVjdCwgTlBTdHJp
bmcqIG5wU2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1
YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFu
dCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgbnBPYmplY3QsIG5w
U2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgb2JqZWN0LCBz
Y3JpcHQsIHJlc3VsdCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5Q
UCBucHAsIGJvb2wgcG9wdXBzX2FsbG93ZWQsIE5QT2JqZWN0KiBucG9iaiwgTlBTdHJpbmcqIG5w
c2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVs
cGVyKE5QUCBucHAsIGJvb2wgcG9wdXBzQWxsb3dlZCwgTlBPYmplY3QqIG9iamVjdCwgTlBTdHJp
bmcqIHNjcmlwdCwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fRXZhbHVh
dGVIZWxwZXIobnBwLCBwb3B1cHNfYWxsb3dlZCwgbnBvYmosIG5wc2NyaXB0LCByZXN1bHQpOwor
ICAgIHJldHVybiBfTlBOX0V2YWx1YXRlSGVscGVyKG5wcCwgcG9wdXBzQWxsb3dlZCwgb2JqZWN0
LCBzY3JpcHQsIHJlc3VsdCk7CiB9CiAKIE5QSWRlbnRpZmllciBXZWJCaW5kaW5nczo6Z2V0SW50
SWRlbnRpZmllcihpbnQzMl90IG51bWJlcikKQEAgLTg3LDkgKzg3LDkgQEAgTlBJZGVudGlmaWVy
IFdlYkJpbmRpbmdzOjpnZXRJbnRJZGVudGlmaWVyKGludDMyX3QgbnVtYmVyKQogICAgIHJldHVy
biBfTlBOX0dldEludElkZW50aWZpZXIobnVtYmVyKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6
Z2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSwgTlBWYXJpYW50ICpyZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpnZXRQcm9wZXJ0eShO
UFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5QVmFyaWFu
dCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0dldFByb3BlcnR5KG5wcCwgb2JqLCBwcm9w
ZXJ0eU5hbWUsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fR2V0UHJvcGVydHkobnBwLCBvYmpl
Y3QsIHByb3BlcnR5LCByZXN1bHQpOwogfQogCiBOUElkZW50aWZpZXIgV2ViQmluZGluZ3M6Omdl
dFN0cmluZ0lkZW50aWZpZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpCkBAIC05NywxOSArOTcsMTkg
QEAgTlBJZGVudGlmaWVyIFdlYkJpbmRpbmdzOjpnZXRTdHJpbmdJZGVudGlmaWVyKGNvbnN0IE5Q
VVRGOCogc3RyaW5nKQogICAgIHJldHVybiBfTlBOX0dldFN0cmluZ0lkZW50aWZpZXIoc3RyaW5n
KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6Z2V0U3RyaW5nSWRlbnRpZmllcnMoY29uc3QgTlBV
VEY4KiogbmFtZXMsIGludDMyX3QgbmFtZUNvdW50LCBOUElkZW50aWZpZXIqIGlkZW50aWZpZXJz
KQordm9pZCBXZWJCaW5kaW5nczo6Z2V0U3RyaW5nSWRlbnRpZmllcnMoY29uc3QgTlBVVEY4Kiog
bmFtZXMsIGludDMyX3QgY291bnQsIE5QSWRlbnRpZmllciogaWRlbnRpZmllcnMpCiB7Ci0gICAg
X05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgbmFtZUNvdW50LCBpZGVudGlmaWVycyk7
CisgICAgX05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgY291bnQsIGlkZW50aWZpZXJz
KTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6aGFzTWV0aG9kKE5QUCBucHAsIE5QT2JqZWN0KiBu
cE9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpCitib29sIFdlYkJpbmRpbmdzOjpoYXNN
ZXRob2QoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhvZCkKIHsK
LSAgICByZXR1cm4gX05QTl9IYXNNZXRob2QobnBwLCBucE9iamVjdCwgbWV0aG9kTmFtZSk7Cisg
ICAgcmV0dXJuIF9OUE5fSGFzTWV0aG9kKG5wcCwgb2JqZWN0LCBtZXRob2QpOwogfQogCi1ib29s
IFdlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogbnBPYmplY3QsIE5Q
SWRlbnRpZmllciBwcm9wZXJ0eU5hbWUpCitib29sIFdlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eShO
UFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHkpCiB7Ci0gICAg
cmV0dXJuIF9OUE5fSGFzUHJvcGVydHkobnBwLCBucE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAg
ICByZXR1cm4gX05QTl9IYXNQcm9wZXJ0eShucHAsIG9iamVjdCwgcHJvcGVydHkpOwogfQogCiBi
b29sIFdlYkJpbmRpbmdzOjppZGVudGlmaWVySXNTdHJpbmcoTlBJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCB2b2lkIFdlYkJpbmRpbmdzOjppbml0aWFsaXplVmFy
aWFudFdpdGhTdHJpbmdDb3B5KE5QVmFyaWFudCogdmFyaWFudCwgY29uc3QgTlBTdAogI2VuZGlm
CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6Omludm9rZShOUFAgbnBwLCBOUE9iamVjdCogbnBPYmpl
Y3QsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3VtZW50cywg
dWludDMyX3QgYXJndW1lbnRDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRp
bmdzOjppbnZva2UoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhv
ZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1
bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fSW52b2tlKG5wcCwgbnBPYmplY3QsIG1ldGhvZE5hbWUs
IGFyZ3VtZW50cywgYXJndW1lbnRDb3VudCwgcmVzdWx0KTsKKyAgICByZXR1cm4gX05QTl9JbnZv
a2UobnBwLCBvYmplY3QsIG1ldGhvZCwgYXJncywgY291bnQsIHJlc3VsdCk7CiB9CiAKLWJvb2wg
V2ViQmluZGluZ3M6Omludm9rZURlZmF1bHQoTlBQIGlkLCBOUE9iamVjdCogb2JqLCBjb25zdCBO
UFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGNvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wg
V2ViQmluZGluZ3M6Omludm9rZURlZmF1bHQoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgY29u
c3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCiB7
Ci0gICAgcmV0dXJuIF9OUE5fSW52b2tlRGVmYXVsdChpZCwgb2JqLCBhcmdzLCBjb3VudCwgcmVz
dWx0KTsKKyAgICByZXR1cm4gX05QTl9JbnZva2VEZWZhdWx0KG5wcCwgb2JqZWN0LCBhcmdzLCBj
b3VudCwgcmVzdWx0KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6cmVsZWFzZU9iamVjdChOUE9i
amVjdCogbnBPYmplY3QpCit2b2lkIFdlYkJpbmRpbmdzOjpyZWxlYXNlT2JqZWN0KE5QT2JqZWN0
KiBvYmplY3QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fUmVsZWFzZU9iamVjdChucE9iamVjdCk7Cisg
ICAgcmV0dXJuIF9OUE5fUmVsZWFzZU9iamVjdChvYmplY3QpOwogfQogCiB2b2lkIFdlYkJpbmRp
bmdzOjpyZWxlYXNlVmFyaWFudFZhbHVlKE5QVmFyaWFudCogdmFyaWFudCkKQEAgLTE1MSwzMCAr
MTUxLDMwIEBAIHZvaWQgV2ViQmluZGluZ3M6OnJlbGVhc2VWYXJpYW50VmFsdWUoTlBWYXJpYW50
KiB2YXJpYW50KQogICAgIF9OUE5fUmVsZWFzZVZhcmlhbnRWYWx1ZSh2YXJpYW50KTsKIH0KIAot
Ym9vbCBXZWJCaW5kaW5nczo6cmVtb3ZlUHJvcGVydHkoTlBQIGlkLCBOUE9iamVjdCogb2JqZWN0
LCBOUElkZW50aWZpZXIgaWRlbnRpZmllcikKK2Jvb2wgV2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIHJldHVybiAgX05QTl9SZW1vdmVQcm9wZXJ0eShpZCwgb2JqZWN0LCBpZGVudGlmaWVy
KTsKKyAgICByZXR1cm4gX05QTl9SZW1vdmVQcm9wZXJ0eShucHAsIG9iamVjdCwgaWRlbnRpZmll
cik7CiB9CiAKLU5QT2JqZWN0KiBXZWJCaW5kaW5nczo6cmV0YWluT2JqZWN0KE5QT2JqZWN0KiBu
cE9iamVjdCkKK05QT2JqZWN0KiBXZWJCaW5kaW5nczo6cmV0YWluT2JqZWN0KE5QT2JqZWN0KiBv
YmplY3QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fUmV0YWluT2JqZWN0KG5wT2JqZWN0KTsKKyAgICBy
ZXR1cm4gX05QTl9SZXRhaW5PYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6
c2V0RXhjZXB0aW9uKE5QT2JqZWN0KiBvYmosIGNvbnN0IE5QVVRGOCogbWVzc2FnZSkKK3ZvaWQg
V2ViQmluZGluZ3M6OnNldEV4Y2VwdGlvbihOUE9iamVjdCogb2JqZWN0LCBjb25zdCBOUFVURjgq
IG1lc3NhZ2UpCiB7Ci0gICAgX05QTl9TZXRFeGNlcHRpb24ob2JqLCBtZXNzYWdlKTsKKyAgICBf
TlBOX1NldEV4Y2VwdGlvbihvYmplY3QsIG1lc3NhZ2UpOwogfQogCi1ib29sIFdlYkJpbmRpbmdz
OjpzZXRQcm9wZXJ0eShOUFAgaWQsIE5QT2JqZWN0KiBvYmosIE5QSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBOUFZhcmlhbnQqIHZhcmlhbnQpCitib29sIFdlYkJpbmRpbmdzOjpzZXRQcm9w
ZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgTlBWYXJpYW50KiB2YXJpYW50KQogewotICAgIHJldHVybiBfTlBOX1NldFByb3BlcnR5
KGlkLCBvYmosIGlkZW50aWZpZXIsIHZhcmlhbnQpOworICAgIHJldHVybiBfTlBOX1NldFByb3Bl
cnR5KG5wcCwgb2JqZWN0LCBpZGVudGlmaWVyLCB2YXJpYW50KTsKIH0KIAotdm9pZCBXZWJCaW5k
aW5nczo6dW5yZWdpc3Rlck9iamVjdChOUE9iamVjdCogbnBPYmplY3QpCit2b2lkIFdlYkJpbmRp
bmdzOjp1bnJlZ2lzdGVyT2JqZWN0KE5QT2JqZWN0KiBvYmplY3QpCiB7CiAjaWYgVVNFKFY4KQot
ICAgIF9OUE5fVW5yZWdpc3Rlck9iamVjdChucE9iamVjdCk7CisgICAgX05QTl9VbnJlZ2lzdGVy
T2JqZWN0KG9iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAtMTg1LDI3ICsxODUsMjggQEAgTlBVVEY4
KiBXZWJCaW5kaW5nczo6dXRmOEZyb21JZGVudGlmaWVyKE5QSWRlbnRpZmllciBpZGVudGlmaWVy
KQogCiB2b2lkIFdlYkJpbmRpbmdzOjpleHRyYWN0SWRlbnRpZmllckRhdGEoY29uc3QgTlBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBOUFVURjgqJiBzdHJpbmcsIGludDMyX3QmIG51bWJl
ciwgYm9vbCYgaXNTdHJpbmcpCiB7Ci0gICAgUHJpdmF0ZUlkZW50aWZpZXIqIHByaXYgPSBzdGF0
aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllcio+KGlkZW50aWZpZXIpOwotICAgIGlmICghcHJpdikg
eworICAgIFByaXZhdGVJZGVudGlmaWVyKiBkYXRhID0gc3RhdGljX2Nhc3Q8UHJpdmF0ZUlkZW50
aWZpZXIqPihpZGVudGlmaWVyKTsKKworICAgIGlmICghZGF0YSkgewogICAgICAgICBpc1N0cmlu
ZyA9IGZhbHNlOwogICAgICAgICBudW1iZXIgPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaXNTdHJpbmcgPSBwcml2LT5pc1N0cmluZzsKLSAgICBpZiAoaXNTdHJpbmcpCi0gICAg
ICAgIHN0cmluZyA9IHByaXYtPnZhbHVlLnN0cmluZzsKKyAgICBpZiAoaXNTdHJpbmcgPSBkYXRh
LT5pc1N0cmluZykKKyAgICAgICAgc3RyaW5nID0gZGF0YS0+dmFsdWUuc3RyaW5nOwogICAgIGVs
c2UKLSAgICAgICAgbnVtYmVyID0gcHJpdi0+dmFsdWUubnVtYmVyOworICAgICAgICBudW1iZXIg
PSBkYXRhLT52YWx1ZS5udW1iZXI7CiB9CiAKICNpZiBVU0UoVjgpCiAKLXN0YXRpYyBib29sIGdl
dFJhbmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiByYW5nZSkKK3N0YXRpYyBib29s
IGdldFJhbmdlSW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJSYW5nZSogd2ViUmFuZ2UpCiB7Ci0g
ICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIG5wb2JqIG5vdCBudWxsIGNoZWNrZWQgaGVyZT8KKyAg
ICBpZiAoIW9iamVjdCB8fCAob2JqZWN0LT5fY2xhc3MgIT0gbnBTY3JpcHRPYmplY3RDbGFzcykp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSBy
ZWludGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihucG9iaik7CisgICAgVjhOUE9iamVjdCogdjhu
cG9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG9iamVjdCk7CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB2OG9iamVjdCh2OG5wb2JqZWN0LT52OE9iamVjdCk7CiAgICAg
aWYgKCFWOFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4
b2JqZWN0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNCwxOCArMjE1LDE4IEBAIHN0
YXRpYyBib29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiByYW5nZSkK
ICAgICBpZiAoIW5hdGl2ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgKnJhbmdlID0g
V2ViUmFuZ2UobmF0aXZlKTsKKyAgICAqd2ViUmFuZ2UgPSBXZWJSYW5nZShuYXRpdmUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCog
bnBPYmosIFdlYkVsZW1lbnQqIHdlYkVsZW1lbnQpCitzdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1w
bChOUE9iamVjdCogb2JqZWN0LCBXZWJFbGVtZW50KiB3ZWJFbGVtZW50KQogewotICAgIGlmICgh
bnBPYmogfHwgKG5wT2JqLT5fY2xhc3MgIT0gbnBTY3JpcHRPYmplY3RDbGFzcykpCisgICAgaWYg
KCFvYmplY3QgfHwgKG9iamVjdC0+X2NsYXNzICE9IG5wU2NyaXB0T2JqZWN0Q2xhc3MpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBWOE5QT2JqZWN0KiB2OE5QT2JqZWN0ID0gcmVpbnRl
cnByZXRfY2FzdDxWOE5QT2JqZWN0Kj4obnBPYmopOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gdjhPYmplY3QodjhOUE9iamVjdC0+djhPYmplY3QpOwotICAgIEVsZW1lbnQqIG5hdGl2ZSA9
IFY4RWxlbWVudDo6dG9OYXRpdmUodjhPYmplY3QpOworICAgIFY4TlBPYmplY3QqIHY4bnBvYmpl
Y3QgPSByZWludGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihvYmplY3QpOworICAgIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gdjhvYmplY3QodjhucG9iamVjdC0+djhPYmplY3QpOworICAgIEVsZW1l
bnQqIG5hdGl2ZSA9IFY4RWxlbWVudDo6dG9OYXRpdmUodjhvYmplY3QpOwogICAgIGlmICghbmF0
aXZlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIzNyw3ICsyMzgsNyBAQCBzdGF0aWMg
TlBPYmplY3QqIG1ha2VJbnRBcnJheUltcGwoY29uc3QgV2ViVmVjdG9yPGludD4mIGRhdGEpCiB7
CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAgIHY4OjpIYW5kbGU8djg6OkFy
cmF5PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldyhkYXRhLnNpemUoKSk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBkYXRhLnNpemUoKTsgaSsrKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZGF0YS5zaXplKCk7ICsraSkKICAgICAgICAgcmVzdWx0LT5TZXQoaSwgdjg6Ok51bWJlcjo6
TmV3KGRhdGFbaV0pKTsKIAogICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogd2luZG93ID0gV2ViQ29y
ZTo6VjhQcm94eTo6cmV0cmlldmVXaW5kb3coV2ViQ29yZTo6VjhQcm94eTo6Y3VycmVudENvbnRl
eHQoKSk7CkBAIC0yNTcsMTAgKzI1OCwxMCBAQCBzdGF0aWMgTlBPYmplY3QqIG1ha2VTdHJpbmdB
cnJheUltcGwoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGRhdGEpCiAKICNlbmRpZgogCi1i
b29sIFdlYkJpbmRpbmdzOjpnZXRSYW5nZShOUE9iamVjdCogcmFuZ2UsIFdlYlJhbmdlKiB3ZWJy
YW5nZSkKK2Jvb2wgV2ViQmluZGluZ3M6OmdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFu
Z2UqIHdlYlJhbmdlKQogewogI2lmIFVTRShWOCkKLSAgICByZXR1cm4gZ2V0UmFuZ2VJbXBsKHJh
bmdlLCB3ZWJyYW5nZSk7CisgICAgcmV0dXJuIGdldFJhbmdlSW1wbChyYW5nZSwgd2ViUmFuZ2Up
OwogI2Vsc2UKICAgICAvLyBOb3Qgc3VwcG9ydGVkIG9uIG90aGVyIHBvcnRzIChKU0MsIGV0Yyku
CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjc3LDcgKzI3OCw3IEBAIGJvb2wgV2ViQmluZGluZ3M6
OmdldEVsZW1lbnQoTlBPYmplY3QqIGVsZW1lbnQsIFdlYkVsZW1lbnQqIHdlYkVsZW1lbnQpCiAj
ZW5kaWYKIH0KIAotTlBPYmplY3QqIFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXkoY29uc3QgV2Vi
VmVjdG9yPGludD4gJiBkYXRhKQorTlBPYmplY3QqIFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXko
Y29uc3QgV2ViVmVjdG9yPGludD4mIGRhdGEpCiB7CiAjaWYgVVNFKFY4KQogICAgIHJldHVybiBt
YWtlSW50QXJyYXlJbXBsKGRhdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86579</attachid>
            <date>2011-03-23 00:32:39 -0700</date>
            <delta_ts>2011-03-23 22:27:05 -0700</delta_ts>
            <desc>Patch - remove linux warning</desc>
            <filename>web-bindings-fixme-2.git.diff</filename>
            <type>text/plain</type>
            <size>13697</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGI2YWRhZi4uYjI0NWM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMy0yMyAgTm9lbCBHb3Jk
b24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBXZWJCaW5kaW5nczo6Z2V0UmFuZ2VJbXBs
KCkgc2hvdWxkIE5VTEwgY2hlY2sgaXRzIE5QT2JqZWN0IGFyZ3VtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njg5OAorCisgICAgICAgIEFkZHJl
c3MgRklYTUUgSSBub3RlZC9hZGRlZCBpbiByODE2NzYuICBXYW50ZWQgdG8ganVzdCBjb3B5L3Bh
c3RlIHRoZSBjaGVja2luZworICAgICAgICBjb2RlIGZyb20gZWxzZXdoZXJlIGluIHRoZSBmaWxl
LCBidXQgaW5jb25zaXN0ZW50IGFyZ3VtZW50IG5hbWluZyBtYWRlIGl0IG1vcmUKKyAgICAgICAg
ZGlmZmljdWx0IHRoYW4gaXQgbmVlZCBiZSBzbywgdG8gY2xlYW4gdXAgdGhlIGNvbW1vbnMsIGFk
ZCBjb25zaXN0ZW50IG5hbWluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgor
ICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRp
bmdzOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6ZW51bWVyYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmluZGluZ3M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omdl
dFN0cmluZ0lkZW50aWZpZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omhhc01l
dGhvZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjppbnZva2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
aW5kaW5nczo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpy
ZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJldGFpbk9iamVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5n
czo6dW5yZWdpc3Rlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpleHRy
YWN0SWRlbnRpZmllckRhdGEpOgorICAgICAgICAoV2ViS2l0OjpnZXRSYW5nZUltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRFbGVtZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VJbnRB
cnJheUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6Z2V0UmFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6bWFrZUludEFycmF5KToKKwogMjAxMS0wMy0yMiAg
Tm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkJpbmRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5kaW5n
cy5oCmluZGV4IDM4MjUyMjIuLjA2OGE2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQmluZGluZ3MuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhl
c2UgYXJlIGFsbCBkZWZpbmVkIGluIG5wcnVudGltZS5oIGFuZCBhcmUgd2VsbCBkb2N1bWVudGVk
LgogCiAgICAgLy8gTlBOX0NvbnN0cnVjdAotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgY29u
c3RydWN0KE5QUCwgTlBPYmplY3QqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFy
Z0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBj
b25zdHJ1Y3QoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3Qg
Y291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKIAogICAgIC8vIE5QTl9DcmVhdGVPYmplY3QKICAg
ICBXRUJLSVRfQVBJIHN0YXRpYyBOUE9iamVjdCogY3JlYXRlT2JqZWN0KE5QUCwgTlBDbGFzcyop
OwpAQCAtNjcsMTkgKzY3LDE5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBOUElk
ZW50aWZpZXIgZ2V0SW50SWRlbnRpZmllcihpbnQzMl90IG51bWJlcik7CiAKICAgICAvLyBOUE5f
R2V0UHJvcGVydHkKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGdldFByb3BlcnR5KE5QUCwg
TlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBOUFZhcmlhbnQgKnJlc3VsdCk7
CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBnZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0Kiwg
TlBJZGVudGlmaWVyIHByb3BlcnR5LCBOUFZhcmlhbnQgKnJlc3VsdCk7CiAKICAgICAvLyBOUE5f
R2V0U3RyaW5nSWRlbnRpZmllcgogICAgIFdFQktJVF9BUEkgc3RhdGljIE5QSWRlbnRpZmllciBn
ZXRTdHJpbmdJZGVudGlmaWVyKGNvbnN0IE5QVVRGOCogc3RyaW5nKTsKIAogICAgIC8vIE5QTl9H
ZXRTdHJpbmdJZGVudGlmaWVycwotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZ2V0U3RyaW5n
SWRlbnRpZmllcnMoY29uc3QgTlBVVEY4KiogbmFtZXMsIGludDMyX3QgbmFtZUNvdW50LCBOUElk
ZW50aWZpZXIqKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGdldFN0cmluZ0lkZW50aWZp
ZXJzKGNvbnN0IE5QVVRGOCoqIG5hbWVzLCBpbnQzMl90IGNvdW50LCBOUElkZW50aWZpZXIqKTsK
IAogICAgIC8vIE5QTl9IYXNNZXRob2QKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc01l
dGhvZChOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpOworICAgIFdFQktJ
VF9BUEkgc3RhdGljIGJvb2wgaGFzTWV0aG9kKE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIg
bWV0aG9kKTsKIAogICAgIC8vIE5QTl9IYXNQcm9wZXJ0eQotICAgIFdFQktJVF9BUEkgc3RhdGlj
IGJvb2wgaGFzUHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUpOworICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaGFzUHJvcGVydHkoTlBQLCBOUE9iamVj
dCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eSk7CiAKICAgICAvLyBOUE5fSWRlbnRpZmllcklzU3Ry
aW5nCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNTdHJpbmcoTlBJZGVu
dGlmaWVyKTsKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGlj
IGludDMyX3QgaW50RnJvbUlkZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKIAogICAgIC8vIE5QTl9J
bnZva2UKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0Kiwg
TlBJZGVudGlmaWVyIG1ldGhvZE5hbWUsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3Qg
Y291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlu
dm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZCwgY29uc3QgTlBWYXJpYW50
KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpOwogCiAgICAgLy8gTlBO
X0ludm9rZURlZmF1bHQKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQo
TlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5Q
VmFyaWFudCogcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkJpbmRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdz
LmNwcAppbmRleCA2N2VlOWYxLi41MTFhMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQmluZGluZ3MuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBXZWJCaW5kaW5nczo6Y29uc3RydWN0
KE5QUCBucHAsIE5QT2JqZWN0ICpucG9iaiwgY29uc3QgTlBWYXJpYW50ICphcmdzLCB1aW50MzJf
dCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpjb25zdHJ1
Y3QoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50
MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fQ29uc3Ry
dWN0KG5wcCwgbnBvYmosIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOworICAgIHJldHVybiBfTlBO
X0NvbnN0cnVjdChucHAsIG9iamVjdCwgYXJncywgY291bnQsIHJlc3VsdCk7CiB9CiAKIE5QT2Jq
ZWN0KiBXZWJCaW5kaW5nczo6Y3JlYXRlT2JqZWN0KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3Mp
CkBAIC02NywxOSArNjcsMTkgQEAgTlBPYmplY3QqIFdlYkJpbmRpbmdzOjpjcmVhdGVPYmplY3Qo
TlBQIG5wcCwgTlBDbGFzcyogbnBDbGFzcykKICAgICByZXR1cm4gX05QTl9DcmVhdGVPYmplY3Qo
bnBwLCBucENsYXNzKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6ZW51bWVyYXRlKE5QUCBpZCwg
TlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIHZhbCkK
K2Jvb2wgV2ViQmluZGluZ3M6OmVudW1lcmF0ZShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBO
UElkZW50aWZpZXIqKiBpZGVudGlmaWVyLCB1aW50MzJfdCogY291bnQpCiB7Ci0gICAgcmV0dXJu
IF9OUE5fRW51bWVyYXRlKGlkLCBvYmosIGlkZW50aWZpZXIsIHZhbCk7CisgICAgcmV0dXJuIF9O
UE5fRW51bWVyYXRlKG5wcCwgb2JqZWN0LCBpZGVudGlmaWVyLCBjb3VudCk7CiB9CiAKLWJvb2wg
V2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBucE9iamVjdCwgTlBTdHJp
bmcqIG5wU2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1
YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFu
dCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgbnBPYmplY3QsIG5w
U2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgb2JqZWN0LCBz
Y3JpcHQsIHJlc3VsdCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5Q
UCBucHAsIGJvb2wgcG9wdXBzX2FsbG93ZWQsIE5QT2JqZWN0KiBucG9iaiwgTlBTdHJpbmcqIG5w
c2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVs
cGVyKE5QUCBucHAsIGJvb2wgcG9wdXBzQWxsb3dlZCwgTlBPYmplY3QqIG9iamVjdCwgTlBTdHJp
bmcqIHNjcmlwdCwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fRXZhbHVh
dGVIZWxwZXIobnBwLCBwb3B1cHNfYWxsb3dlZCwgbnBvYmosIG5wc2NyaXB0LCByZXN1bHQpOwor
ICAgIHJldHVybiBfTlBOX0V2YWx1YXRlSGVscGVyKG5wcCwgcG9wdXBzQWxsb3dlZCwgb2JqZWN0
LCBzY3JpcHQsIHJlc3VsdCk7CiB9CiAKIE5QSWRlbnRpZmllciBXZWJCaW5kaW5nczo6Z2V0SW50
SWRlbnRpZmllcihpbnQzMl90IG51bWJlcikKQEAgLTg3LDkgKzg3LDkgQEAgTlBJZGVudGlmaWVy
IFdlYkJpbmRpbmdzOjpnZXRJbnRJZGVudGlmaWVyKGludDMyX3QgbnVtYmVyKQogICAgIHJldHVy
biBfTlBOX0dldEludElkZW50aWZpZXIobnVtYmVyKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6
Z2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSwgTlBWYXJpYW50ICpyZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpnZXRQcm9wZXJ0eShO
UFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5QVmFyaWFu
dCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0dldFByb3BlcnR5KG5wcCwgb2JqLCBwcm9w
ZXJ0eU5hbWUsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fR2V0UHJvcGVydHkobnBwLCBvYmpl
Y3QsIHByb3BlcnR5LCByZXN1bHQpOwogfQogCiBOUElkZW50aWZpZXIgV2ViQmluZGluZ3M6Omdl
dFN0cmluZ0lkZW50aWZpZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpCkBAIC05NywxOSArOTcsMTkg
QEAgTlBJZGVudGlmaWVyIFdlYkJpbmRpbmdzOjpnZXRTdHJpbmdJZGVudGlmaWVyKGNvbnN0IE5Q
VVRGOCogc3RyaW5nKQogICAgIHJldHVybiBfTlBOX0dldFN0cmluZ0lkZW50aWZpZXIoc3RyaW5n
KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6Z2V0U3RyaW5nSWRlbnRpZmllcnMoY29uc3QgTlBV
VEY4KiogbmFtZXMsIGludDMyX3QgbmFtZUNvdW50LCBOUElkZW50aWZpZXIqIGlkZW50aWZpZXJz
KQordm9pZCBXZWJCaW5kaW5nczo6Z2V0U3RyaW5nSWRlbnRpZmllcnMoY29uc3QgTlBVVEY4Kiog
bmFtZXMsIGludDMyX3QgY291bnQsIE5QSWRlbnRpZmllciogaWRlbnRpZmllcnMpCiB7Ci0gICAg
X05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgbmFtZUNvdW50LCBpZGVudGlmaWVycyk7
CisgICAgX05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgY291bnQsIGlkZW50aWZpZXJz
KTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6aGFzTWV0aG9kKE5QUCBucHAsIE5QT2JqZWN0KiBu
cE9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpCitib29sIFdlYkJpbmRpbmdzOjpoYXNN
ZXRob2QoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhvZCkKIHsK
LSAgICByZXR1cm4gX05QTl9IYXNNZXRob2QobnBwLCBucE9iamVjdCwgbWV0aG9kTmFtZSk7Cisg
ICAgcmV0dXJuIF9OUE5fSGFzTWV0aG9kKG5wcCwgb2JqZWN0LCBtZXRob2QpOwogfQogCi1ib29s
IFdlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogbnBPYmplY3QsIE5Q
SWRlbnRpZmllciBwcm9wZXJ0eU5hbWUpCitib29sIFdlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eShO
UFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHkpCiB7Ci0gICAg
cmV0dXJuIF9OUE5fSGFzUHJvcGVydHkobnBwLCBucE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAg
ICByZXR1cm4gX05QTl9IYXNQcm9wZXJ0eShucHAsIG9iamVjdCwgcHJvcGVydHkpOwogfQogCiBi
b29sIFdlYkJpbmRpbmdzOjppZGVudGlmaWVySXNTdHJpbmcoTlBJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCB2b2lkIFdlYkJpbmRpbmdzOjppbml0aWFsaXplVmFy
aWFudFdpdGhTdHJpbmdDb3B5KE5QVmFyaWFudCogdmFyaWFudCwgY29uc3QgTlBTdAogI2VuZGlm
CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6Omludm9rZShOUFAgbnBwLCBOUE9iamVjdCogbnBPYmpl
Y3QsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3VtZW50cywg
dWludDMyX3QgYXJndW1lbnRDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRp
bmdzOjppbnZva2UoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIG1ldGhv
ZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1
bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fSW52b2tlKG5wcCwgbnBPYmplY3QsIG1ldGhvZE5hbWUs
IGFyZ3VtZW50cywgYXJndW1lbnRDb3VudCwgcmVzdWx0KTsKKyAgICByZXR1cm4gX05QTl9JbnZv
a2UobnBwLCBvYmplY3QsIG1ldGhvZCwgYXJncywgY291bnQsIHJlc3VsdCk7CiB9CiAKLWJvb2wg
V2ViQmluZGluZ3M6Omludm9rZURlZmF1bHQoTlBQIGlkLCBOUE9iamVjdCogb2JqLCBjb25zdCBO
UFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGNvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wg
V2ViQmluZGluZ3M6Omludm9rZURlZmF1bHQoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgY29u
c3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCiB7
Ci0gICAgcmV0dXJuIF9OUE5fSW52b2tlRGVmYXVsdChpZCwgb2JqLCBhcmdzLCBjb3VudCwgcmVz
dWx0KTsKKyAgICByZXR1cm4gX05QTl9JbnZva2VEZWZhdWx0KG5wcCwgb2JqZWN0LCBhcmdzLCBj
b3VudCwgcmVzdWx0KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6cmVsZWFzZU9iamVjdChOUE9i
amVjdCogbnBPYmplY3QpCit2b2lkIFdlYkJpbmRpbmdzOjpyZWxlYXNlT2JqZWN0KE5QT2JqZWN0
KiBvYmplY3QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fUmVsZWFzZU9iamVjdChucE9iamVjdCk7Cisg
ICAgcmV0dXJuIF9OUE5fUmVsZWFzZU9iamVjdChvYmplY3QpOwogfQogCiB2b2lkIFdlYkJpbmRp
bmdzOjpyZWxlYXNlVmFyaWFudFZhbHVlKE5QVmFyaWFudCogdmFyaWFudCkKQEAgLTE1MSwzMCAr
MTUxLDMwIEBAIHZvaWQgV2ViQmluZGluZ3M6OnJlbGVhc2VWYXJpYW50VmFsdWUoTlBWYXJpYW50
KiB2YXJpYW50KQogICAgIF9OUE5fUmVsZWFzZVZhcmlhbnRWYWx1ZSh2YXJpYW50KTsKIH0KIAot
Ym9vbCBXZWJCaW5kaW5nczo6cmVtb3ZlUHJvcGVydHkoTlBQIGlkLCBOUE9iamVjdCogb2JqZWN0
LCBOUElkZW50aWZpZXIgaWRlbnRpZmllcikKK2Jvb2wgV2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIHJldHVybiAgX05QTl9SZW1vdmVQcm9wZXJ0eShpZCwgb2JqZWN0LCBpZGVudGlmaWVy
KTsKKyAgICByZXR1cm4gX05QTl9SZW1vdmVQcm9wZXJ0eShucHAsIG9iamVjdCwgaWRlbnRpZmll
cik7CiB9CiAKLU5QT2JqZWN0KiBXZWJCaW5kaW5nczo6cmV0YWluT2JqZWN0KE5QT2JqZWN0KiBu
cE9iamVjdCkKK05QT2JqZWN0KiBXZWJCaW5kaW5nczo6cmV0YWluT2JqZWN0KE5QT2JqZWN0KiBv
YmplY3QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fUmV0YWluT2JqZWN0KG5wT2JqZWN0KTsKKyAgICBy
ZXR1cm4gX05QTl9SZXRhaW5PYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6
c2V0RXhjZXB0aW9uKE5QT2JqZWN0KiBvYmosIGNvbnN0IE5QVVRGOCogbWVzc2FnZSkKK3ZvaWQg
V2ViQmluZGluZ3M6OnNldEV4Y2VwdGlvbihOUE9iamVjdCogb2JqZWN0LCBjb25zdCBOUFVURjgq
IG1lc3NhZ2UpCiB7Ci0gICAgX05QTl9TZXRFeGNlcHRpb24ob2JqLCBtZXNzYWdlKTsKKyAgICBf
TlBOX1NldEV4Y2VwdGlvbihvYmplY3QsIG1lc3NhZ2UpOwogfQogCi1ib29sIFdlYkJpbmRpbmdz
OjpzZXRQcm9wZXJ0eShOUFAgaWQsIE5QT2JqZWN0KiBvYmosIE5QSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBOUFZhcmlhbnQqIHZhcmlhbnQpCitib29sIFdlYkJpbmRpbmdzOjpzZXRQcm9w
ZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgTlBWYXJpYW50KiB2YXJpYW50KQogewotICAgIHJldHVybiBfTlBOX1NldFByb3BlcnR5
KGlkLCBvYmosIGlkZW50aWZpZXIsIHZhcmlhbnQpOworICAgIHJldHVybiBfTlBOX1NldFByb3Bl
cnR5KG5wcCwgb2JqZWN0LCBpZGVudGlmaWVyLCB2YXJpYW50KTsKIH0KIAotdm9pZCBXZWJCaW5k
aW5nczo6dW5yZWdpc3Rlck9iamVjdChOUE9iamVjdCogbnBPYmplY3QpCit2b2lkIFdlYkJpbmRp
bmdzOjp1bnJlZ2lzdGVyT2JqZWN0KE5QT2JqZWN0KiBvYmplY3QpCiB7CiAjaWYgVVNFKFY4KQot
ICAgIF9OUE5fVW5yZWdpc3Rlck9iamVjdChucE9iamVjdCk7CisgICAgX05QTl9VbnJlZ2lzdGVy
T2JqZWN0KG9iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAtMTg1LDI3ICsxODUsMjggQEAgTlBVVEY4
KiBXZWJCaW5kaW5nczo6dXRmOEZyb21JZGVudGlmaWVyKE5QSWRlbnRpZmllciBpZGVudGlmaWVy
KQogCiB2b2lkIFdlYkJpbmRpbmdzOjpleHRyYWN0SWRlbnRpZmllckRhdGEoY29uc3QgTlBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBOUFVURjgqJiBzdHJpbmcsIGludDMyX3QmIG51bWJl
ciwgYm9vbCYgaXNTdHJpbmcpCiB7Ci0gICAgUHJpdmF0ZUlkZW50aWZpZXIqIHByaXYgPSBzdGF0
aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllcio+KGlkZW50aWZpZXIpOwotICAgIGlmICghcHJpdikg
eworICAgIFByaXZhdGVJZGVudGlmaWVyKiBkYXRhID0gc3RhdGljX2Nhc3Q8UHJpdmF0ZUlkZW50
aWZpZXIqPihpZGVudGlmaWVyKTsKKyAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgaXNTdHJpbmcg
PSBmYWxzZTsKICAgICAgICAgbnVtYmVyID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlzU3RyaW5nID0gcHJpdi0+aXNTdHJpbmc7CisgICAgaXNTdHJpbmcgPSBkYXRhLT5pc1N0
cmluZzsKICAgICBpZiAoaXNTdHJpbmcpCi0gICAgICAgIHN0cmluZyA9IHByaXYtPnZhbHVlLnN0
cmluZzsKKyAgICAgICAgc3RyaW5nID0gZGF0YS0+dmFsdWUuc3RyaW5nOwogICAgIGVsc2UKLSAg
ICAgICAgbnVtYmVyID0gcHJpdi0+dmFsdWUubnVtYmVyOworICAgICAgICBudW1iZXIgPSBkYXRh
LT52YWx1ZS5udW1iZXI7CiB9CiAKICNpZiBVU0UoVjgpCiAKLXN0YXRpYyBib29sIGdldFJhbmdl
SW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiByYW5nZSkKK3N0YXRpYyBib29sIGdldFJh
bmdlSW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJSYW5nZSogd2ViUmFuZ2UpCiB7Ci0gICAgLy8g
RklYTUU6IHdoeSBpcyB0aGlzIG5wb2JqIG5vdCBudWxsIGNoZWNrZWQgaGVyZT8KKyAgICBpZiAo
IW9iamVjdCB8fCAob2JqZWN0LT5fY2xhc3MgIT0gbnBTY3JpcHRPYmplY3RDbGFzcykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSByZWludGVy
cHJldF9jYXN0PFY4TlBPYmplY3QqPihucG9iaik7CisgICAgVjhOUE9iamVjdCogdjhucG9iamVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG9iamVjdCk7CiAgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB2OG9iamVjdCh2OG5wb2JqZWN0LT52OE9iamVjdCk7CiAgICAgaWYgKCFW
OFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4b2JqZWN0
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNCwxOCArMjE1LDE4IEBAIHN0YXRpYyBi
b29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiByYW5nZSkKICAgICBp
ZiAoIW5hdGl2ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgKnJhbmdlID0gV2ViUmFu
Z2UobmF0aXZlKTsKKyAgICAqd2ViUmFuZ2UgPSBXZWJSYW5nZShuYXRpdmUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCogbnBPYmos
IFdlYkVsZW1lbnQqIHdlYkVsZW1lbnQpCitzdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChOUE9i
amVjdCogb2JqZWN0LCBXZWJFbGVtZW50KiB3ZWJFbGVtZW50KQogewotICAgIGlmICghbnBPYmog
fHwgKG5wT2JqLT5fY2xhc3MgIT0gbnBTY3JpcHRPYmplY3RDbGFzcykpCisgICAgaWYgKCFvYmpl
Y3QgfHwgKG9iamVjdC0+X2NsYXNzICE9IG5wU2NyaXB0T2JqZWN0Q2xhc3MpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBWOE5QT2JqZWN0KiB2OE5QT2JqZWN0ID0gcmVpbnRlcnByZXRf
Y2FzdDxWOE5QT2JqZWN0Kj4obnBPYmopOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdjhP
YmplY3QodjhOUE9iamVjdC0+djhPYmplY3QpOwotICAgIEVsZW1lbnQqIG5hdGl2ZSA9IFY4RWxl
bWVudDo6dG9OYXRpdmUodjhPYmplY3QpOworICAgIFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSBy
ZWludGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihvYmplY3QpOworICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gdjhvYmplY3QodjhucG9iamVjdC0+djhPYmplY3QpOworICAgIEVsZW1lbnQqIG5h
dGl2ZSA9IFY4RWxlbWVudDo6dG9OYXRpdmUodjhvYmplY3QpOwogICAgIGlmICghbmF0aXZlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIzNyw3ICsyMzgsNyBAQCBzdGF0aWMgTlBPYmpl
Y3QqIG1ha2VJbnRBcnJheUltcGwoY29uc3QgV2ViVmVjdG9yPGludD4mIGRhdGEpCiB7CiAgICAg
djg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAgIHY4OjpIYW5kbGU8djg6OkFycmF5PiBy
ZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldyhkYXRhLnNpemUoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBkYXRhLnNpemUoKTsgaSsrKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0
YS5zaXplKCk7ICsraSkKICAgICAgICAgcmVzdWx0LT5TZXQoaSwgdjg6Ok51bWJlcjo6TmV3KGRh
dGFbaV0pKTsKIAogICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogd2luZG93ID0gV2ViQ29yZTo6VjhQ
cm94eTo6cmV0cmlldmVXaW5kb3coV2ViQ29yZTo6VjhQcm94eTo6Y3VycmVudENvbnRleHQoKSk7
CkBAIC0yNTcsMTAgKzI1OCwxMCBAQCBzdGF0aWMgTlBPYmplY3QqIG1ha2VTdHJpbmdBcnJheUlt
cGwoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGRhdGEpCiAKICNlbmRpZgogCi1ib29sIFdl
YkJpbmRpbmdzOjpnZXRSYW5nZShOUE9iamVjdCogcmFuZ2UsIFdlYlJhbmdlKiB3ZWJyYW5nZSkK
K2Jvb2wgV2ViQmluZGluZ3M6OmdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2UqIHdl
YlJhbmdlKQogewogI2lmIFVTRShWOCkKLSAgICByZXR1cm4gZ2V0UmFuZ2VJbXBsKHJhbmdlLCB3
ZWJyYW5nZSk7CisgICAgcmV0dXJuIGdldFJhbmdlSW1wbChyYW5nZSwgd2ViUmFuZ2UpOwogI2Vs
c2UKICAgICAvLyBOb3Qgc3VwcG9ydGVkIG9uIG90aGVyIHBvcnRzIChKU0MsIGV0YykuCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjc3LDcgKzI3OCw3IEBAIGJvb2wgV2ViQmluZGluZ3M6OmdldEVs
ZW1lbnQoTlBPYmplY3QqIGVsZW1lbnQsIFdlYkVsZW1lbnQqIHdlYkVsZW1lbnQpCiAjZW5kaWYK
IH0KIAotTlBPYmplY3QqIFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXkoY29uc3QgV2ViVmVjdG9y
PGludD4gJiBkYXRhKQorTlBPYmplY3QqIFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXkoY29uc3Qg
V2ViVmVjdG9yPGludD4mIGRhdGEpCiB7CiAjaWYgVVNFKFY4KQogICAgIHJldHVybiBtYWtlSW50
QXJyYXlJbXBsKGRhdGEpOwo=
</data>
<flag name="review"
          id="78878"
          type_id="1"
          status="-"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="78879"
          type_id="3"
          status="-"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86741</attachid>
            <date>2011-03-23 22:27:05 -0700</date>
            <delta_ts>2011-03-23 22:45:07 -0700</delta_ts>
            <desc>Patch (part 1) style change</desc>
            <filename>web-bindings-style-change.git.diff</filename>
            <type>text/plain</type>
            <size>13366</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGI2YWRhZi4uMWI4ZmZkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0wMy0yMyAgTm9lbCBHb3Jk
b24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBXZWJCaW5kaW5nczo6Z2V0UmFuZ2VJbXBs
KCkgc2hvdWxkIE5VTEwgY2hlY2sgaXRzIE5QT2JqZWN0IGFyZ3VtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njg5OAorCisgICAgICAgIEFkZHJl
c3MgRklYTUUgSSBub3RlZC9hZGRlZCBpbiByODE2NzYuICBXYW50ZWQgdG8ganVzdCBjb3B5L3Bh
c3RlIHRoZSBjaGVja2luZworICAgICAgICBjb2RlIGZyb20gZWxzZXdoZXJlIGluIHRoZSBmaWxl
LCBidXQgaW5jb25zaXN0ZW50IGFyZ3VtZW50IG5hbWluZyBtYWRlIGl0IG1vcmUKKyAgICAgICAg
ZGlmZmljdWx0IHRoYW4gaXQgbmVlZCBiZSBzbywgdG8gY2xlYW4gdXAgdGhlIGNvbW1vbnMsIGFk
ZCBjb25zaXN0ZW50IG5hbWluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgor
ICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRp
bmdzOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6ZW51bWVyYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmluZGluZ3M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omhh
c01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjppbnZva2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCaW5kaW5nczo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdz
OjpyZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJlbW92ZVBy
b3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJldGFpbk9iamVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5k
aW5nczo6dW5yZWdpc3Rlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpl
eHRyYWN0SWRlbnRpZmllckRhdGEpOgorICAgICAgICAoV2ViS2l0OjpnZXRSYW5nZUltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpnZXRFbGVtZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VJ
bnRBcnJheUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6Z2V0UmFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6bWFrZUludEFycmF5KToKKwogMjAxMS0wMy0y
MiAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkJpbmRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5k
aW5ncy5oCmluZGV4IDM4MjUyMjIuLjQzZDZmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQmluZGluZ3MuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgTlBPYmplY3QqIGNyZWF0ZU9iamVjdChOUFAsIE5QQ2xhc3MqKTsKIAog
ICAgIC8vIE5QTl9FbnVtZXJhdGUKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGVudW1lcmF0
ZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyKiosIHVpbnQzMl90KiBjb3VudCk7CisgICAg
V0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBlbnVtZXJhdGUoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRp
ZmllcioqLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50KTsKIAogICAgIC8vIE5QTl9FdmFsdWF0
ZQogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgZXZhbHVhdGUoTlBQLCBOUE9iamVjdCosIE5Q
U3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVi
bGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIE5QSWRlbnRpZmllciBnZXRJbnRJZGVudGlmaWVy
KGludDMyX3QgbnVtYmVyKTsKIAogICAgIC8vIE5QTl9HZXRQcm9wZXJ0eQotICAgIFdFQktJVF9B
UEkgc3RhdGljIGJvb2wgZ2V0UHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUsIE5QVmFyaWFudCAqcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBi
b29sIGdldFByb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5Q
VmFyaWFudCAqcmVzdWx0KTsKIAogICAgIC8vIE5QTl9HZXRTdHJpbmdJZGVudGlmaWVyCiAgICAg
V0VCS0lUX0FQSSBzdGF0aWMgTlBJZGVudGlmaWVyIGdldFN0cmluZ0lkZW50aWZpZXIoY29uc3Qg
TlBVVEY4KiBzdHJpbmcpOwpAQCAtNzYsMTAgKzc2LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIHN0YXRpYyB2b2lkIGdldFN0cmluZ0lkZW50aWZpZXJzKGNvbnN0IE5QVVRGOCoqIG5hbWVz
LCBpbnQzMl90IG5hbWVDb3VudCwgTlBJZGVudGlmaWVyKik7CiAKICAgICAvLyBOUE5fSGFzTWV0
aG9kCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBoYXNNZXRob2QoTlBQLCBOUE9iamVjdCos
IE5QSWRlbnRpZmllciBtZXRob2ROYW1lKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhh
c01ldGhvZChOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZCk7CiAKICAgICAvLyBO
UE5fSGFzUHJvcGVydHkKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5Q
UCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKTsKKyAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJv
cGVydHkpOwogCiAgICAgLy8gTlBOX0lkZW50aWZpZXJJc1N0cmluZwogICAgIFdFQktJVF9BUEkg
c3RhdGljIGJvb2wgaWRlbnRpZmllcklzU3RyaW5nKE5QSWRlbnRpZmllcik7CkBAIC05MSwxMCAr
OTEsMTAgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIGludDMyX3QgaW50RnJvbUlk
ZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKIAogICAgIC8vIE5QTl9JbnZva2UKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhv
ZE5hbWUsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCog
cmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0
KiwgTlBJZGVudGlmaWVyIG1ldGhvZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBh
cmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpOwogCiAgICAgLy8gTlBOX0ludm9rZURlZmF1bHQK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCos
IGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCogcmVzdWx0
KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVj
dCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCog
cmVzdWx0KTsKIAogICAgIC8vIE5QTl9SZWxlYXNlT2JqZWN0CiAgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCByZWxlYXNlT2JqZWN0KE5QT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJCaW5kaW5ncy5jcHAKaW5kZXggNjdlZTlmMS4uOWE4M2ZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcApAQCAtNTcsOSArNTcsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgV2ViQmlu
ZGluZ3M6OmNvbnN0cnVjdChOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIGNvbnN0IE5QVmFyaWFu
dCAqYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorYm9vbCBXZWJC
aW5kaW5nczo6Y29uc3RydWN0KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIGNvbnN0IE5QVmFy
aWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAg
IHJldHVybiBfTlBOX0NvbnN0cnVjdChucHAsIG5wb2JqLCBhcmdzLCBhcmdDb3VudCwgcmVzdWx0
KTsKKyAgICByZXR1cm4gX05QTl9Db25zdHJ1Y3QobnBwLCBvYmplY3QsIGFyZ3MsIGFyZ0NvdW50
LCByZXN1bHQpOwogfQogCiBOUE9iamVjdCogV2ViQmluZGluZ3M6OmNyZWF0ZU9iamVjdChOUFAg
bnBwLCBOUENsYXNzKiBucENsYXNzKQpAQCAtNjcsMTkgKzY3LDE5IEBAIE5QT2JqZWN0KiBXZWJC
aW5kaW5nczo6Y3JlYXRlT2JqZWN0KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3MpCiAgICAgcmV0
dXJuIF9OUE5fQ3JlYXRlT2JqZWN0KG5wcCwgbnBDbGFzcyk7CiB9CiAKLWJvb2wgV2ViQmluZGlu
Z3M6OmVudW1lcmF0ZShOUFAgaWQsIE5QT2JqZWN0KiBvYmosIE5QSWRlbnRpZmllcioqIGlkZW50
aWZpZXIsIHVpbnQzMl90KiB2YWwpCitib29sIFdlYkJpbmRpbmdzOjplbnVtZXJhdGUoTlBQIG5w
cCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3Qq
IGlkZW50aWZpZXJDb3VudCkKIHsKLSAgICByZXR1cm4gX05QTl9FbnVtZXJhdGUoaWQsIG9iaiwg
aWRlbnRpZmllciwgdmFsKTsKKyAgICByZXR1cm4gX05QTl9FbnVtZXJhdGUobnBwLCBvYmplY3Qs
IGlkZW50aWZpZXIsIGlkZW50aWZpZXJDb3VudCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2
YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBucE9iamVjdCwgTlBTdHJpbmcqIG5wU2NyaXB0LCBO
UFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5Q
T2JqZWN0KiBvYmplY3QsIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KQogewot
ICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgbnBPYmplY3QsIG5wU2NyaXB0LCByZXN1bHQp
OworICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgb2JqZWN0LCBzY3JpcHQsIHJlc3VsdCk7
CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJvb2wgcG9w
dXBzX2FsbG93ZWQsIE5QT2JqZWN0KiBucG9iaiwgTlBTdHJpbmcqIG5wc2NyaXB0LCBOUFZhcmlh
bnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJv
b2wgcG9wdXBzQWxsb3dlZCwgTlBPYmplY3QqIG9iamVjdCwgTlBTdHJpbmcqIHNjcmlwdCwgTlBW
YXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fRXZhbHVhdGVIZWxwZXIobnBwLCBw
b3B1cHNfYWxsb3dlZCwgbnBvYmosIG5wc2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBO
X0V2YWx1YXRlSGVscGVyKG5wcCwgcG9wdXBzQWxsb3dlZCwgb2JqZWN0LCBzY3JpcHQsIHJlc3Vs
dCk7CiB9CiAKIE5QSWRlbnRpZmllciBXZWJCaW5kaW5nczo6Z2V0SW50SWRlbnRpZmllcihpbnQz
Ml90IG51bWJlcikKQEAgLTg3LDkgKzg3LDkgQEAgTlBJZGVudGlmaWVyIFdlYkJpbmRpbmdzOjpn
ZXRJbnRJZGVudGlmaWVyKGludDMyX3QgbnVtYmVyKQogICAgIHJldHVybiBfTlBOX0dldEludElk
ZW50aWZpZXIobnVtYmVyKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6Z2V0UHJvcGVydHkoTlBQ
IG5wcCwgTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgTlBWYXJpYW50
ICpyZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpnZXRQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVj
dCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5QVmFyaWFudCogcmVzdWx0KQogewot
ICAgIHJldHVybiBfTlBOX0dldFByb3BlcnR5KG5wcCwgb2JqLCBwcm9wZXJ0eU5hbWUsIHJlc3Vs
dCk7CisgICAgcmV0dXJuIF9OUE5fR2V0UHJvcGVydHkobnBwLCBvYmplY3QsIHByb3BlcnR5LCBy
ZXN1bHQpOwogfQogCiBOUElkZW50aWZpZXIgV2ViQmluZGluZ3M6OmdldFN0cmluZ0lkZW50aWZp
ZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB2b2lkIFdlYkJp
bmRpbmdzOjpnZXRTdHJpbmdJZGVudGlmaWVycyhjb25zdCBOUFVURjgqKiBuYW1lcywgaW50MzJf
dCBuYW1lQ291bnQsCiAgICAgX05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgbmFtZUNv
dW50LCBpZGVudGlmaWVycyk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6Omhhc01ldGhvZChOUFAg
bnBwLCBOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lKQorYm9vbCBX
ZWJCaW5kaW5nczo6aGFzTWV0aG9kKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRp
ZmllciBtZXRob2QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fSGFzTWV0aG9kKG5wcCwgbnBPYmplY3Qs
IG1ldGhvZE5hbWUpOworICAgIHJldHVybiBfTlBOX0hhc01ldGhvZChucHAsIG9iamVjdCwgbWV0
aG9kKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6aGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmpl
Y3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKQorYm9vbCBXZWJCaW5kaW5n
czo6aGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIHBy
b3BlcnR5KQogewotICAgIHJldHVybiBfTlBOX0hhc1Byb3BlcnR5KG5wcCwgbnBPYmplY3QsIHBy
b3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIF9OUE5fSGFzUHJvcGVydHkobnBwLCBvYmplY3QsIHBy
b3BlcnR5KTsKIH0KIAogYm9vbCBXZWJCaW5kaW5nczo6aWRlbnRpZmllcklzU3RyaW5nKE5QSWRl
bnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTMxLDE5ICsxMzEsMTkgQEAgdm9pZCBXZWJCaW5kaW5n
czo6aW5pdGlhbGl6ZVZhcmlhbnRXaXRoU3RyaW5nQ29weShOUFZhcmlhbnQqIHZhcmlhbnQsIGNv
bnN0IE5QU3QKICNlbmRpZgogfQogCi1ib29sIFdlYkJpbmRpbmdzOjppbnZva2UoTlBQIG5wcCwg
TlBPYmplY3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJp
YW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQsIE5QVmFyaWFudCogcmVzdWx0
KQorYm9vbCBXZWJCaW5kaW5nczo6aW52b2tlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5Q
SWRlbnRpZmllciBtZXRob2QsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZShucHAsIG5w
T2JqZWN0LCBtZXRob2ROYW1lLCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQsIHJlc3VsdCk7Cisg
ICAgcmV0dXJuIF9OUE5fSW52b2tlKG5wcCwgb2JqZWN0LCBtZXRob2QsIGFyZ3MsIGFyZ0NvdW50
LCByZXN1bHQpOwogfQogCi1ib29sIFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBpZCwg
TlBPYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBW
YXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBucHAs
IE5QT2JqZWN0KiBvYmplY3QsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZURlZmF1bHQo
aWQsIG9iaiwgYXJncywgY291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fSW52b2tlRGVm
YXVsdChucHAsIG9iamVjdCwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CiB9CiAKLXZvaWQgV2Vi
QmluZGluZ3M6OnJlbGVhc2VPYmplY3QoTlBPYmplY3QqIG5wT2JqZWN0KQordm9pZCBXZWJCaW5k
aW5nczo6cmVsZWFzZU9iamVjdChOUE9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBO
X1JlbGVhc2VPYmplY3QobnBPYmplY3QpOworICAgIHJldHVybiBfTlBOX1JlbGVhc2VPYmplY3Qo
b2JqZWN0KTsKIH0KIAogdm9pZCBXZWJCaW5kaW5nczo6cmVsZWFzZVZhcmlhbnRWYWx1ZShOUFZh
cmlhbnQqIHZhcmlhbnQpCkBAIC0xNTEsMzAgKzE1MSwzMCBAQCB2b2lkIFdlYkJpbmRpbmdzOjpy
ZWxlYXNlVmFyaWFudFZhbHVlKE5QVmFyaWFudCogdmFyaWFudCkKICAgICBfTlBOX1JlbGVhc2VW
YXJpYW50VmFsdWUodmFyaWFudCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KE5QUCBpZCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIpCiti
b29sIFdlYkJpbmRpbmdzOjpyZW1vdmVQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0
LCBOUElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gIF9OUE5fUmVtb3ZlUHJv
cGVydHkoaWQsIG9iamVjdCwgaWRlbnRpZmllcik7CisgICAgcmV0dXJuIF9OUE5fUmVtb3ZlUHJv
cGVydHkobnBwLCBvYmplY3QsIGlkZW50aWZpZXIpOwogfQogCi1OUE9iamVjdCogV2ViQmluZGlu
Z3M6OnJldGFpbk9iamVjdChOUE9iamVjdCogbnBPYmplY3QpCitOUE9iamVjdCogV2ViQmluZGlu
Z3M6OnJldGFpbk9iamVjdChOUE9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBOX1Jl
dGFpbk9iamVjdChucE9iamVjdCk7CisgICAgcmV0dXJuIF9OUE5fUmV0YWluT2JqZWN0KG9iamVj
dCk7CiB9CiAKLXZvaWQgV2ViQmluZGluZ3M6OnNldEV4Y2VwdGlvbihOUE9iamVjdCogb2JqLCBj
b25zdCBOUFVURjgqIG1lc3NhZ2UpCit2b2lkIFdlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24oTlBP
YmplY3QqIG9iamVjdCwgY29uc3QgTlBVVEY4KiBtZXNzYWdlKQogewotICAgIF9OUE5fU2V0RXhj
ZXB0aW9uKG9iaiwgbWVzc2FnZSk7CisgICAgX05QTl9TZXRFeGNlcHRpb24ob2JqZWN0LCBtZXNz
YWdlKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkoTlBQIGlkLCBOUE9iamVj
dCogb2JqLCBOUElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgTlBWYXJpYW50KiB2YXJpYW50
KQorYm9vbCBXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVj
dCwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCogdmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIF9OUE5fU2V0UHJvcGVydHkoaWQsIG9iaiwgaWRlbnRpZmllciwgdmFyaWFudCk7
CisgICAgcmV0dXJuIF9OUE5fU2V0UHJvcGVydHkobnBwLCBvYmplY3QsIGlkZW50aWZpZXIsIHZh
bHVlKTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6dW5yZWdpc3Rlck9iamVjdChOUE9iamVjdCog
bnBPYmplY3QpCit2b2lkIFdlYkJpbmRpbmdzOjp1bnJlZ2lzdGVyT2JqZWN0KE5QT2JqZWN0KiBv
YmplY3QpCiB7CiAjaWYgVVNFKFY4KQotICAgIF9OUE5fVW5yZWdpc3Rlck9iamVjdChucE9iamVj
dCk7CisgICAgX05QTl9VbnJlZ2lzdGVyT2JqZWN0KG9iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAt
MTg1LDQ1ICsxODUsNDUgQEAgTlBVVEY4KiBXZWJCaW5kaW5nczo6dXRmOEZyb21JZGVudGlmaWVy
KE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQogCiB2b2lkIFdlYkJpbmRpbmdzOjpleHRyYWN0SWRl
bnRpZmllckRhdGEoY29uc3QgTlBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBOUFVURjgq
JiBzdHJpbmcsIGludDMyX3QmIG51bWJlciwgYm9vbCYgaXNTdHJpbmcpCiB7Ci0gICAgUHJpdmF0
ZUlkZW50aWZpZXIqIHByaXYgPSBzdGF0aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllcio+KGlkZW50
aWZpZXIpOwotICAgIGlmICghcHJpdikgeworICAgIFByaXZhdGVJZGVudGlmaWVyKiBkYXRhID0g
c3RhdGljX2Nhc3Q8UHJpdmF0ZUlkZW50aWZpZXIqPihpZGVudGlmaWVyKTsKKyAgICBpZiAoIWRh
dGEpIHsKICAgICAgICAgaXNTdHJpbmcgPSBmYWxzZTsKICAgICAgICAgbnVtYmVyID0gMDsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlzU3RyaW5nID0gcHJpdi0+aXNTdHJpbmc7Cisg
ICAgaXNTdHJpbmcgPSBkYXRhLT5pc1N0cmluZzsKICAgICBpZiAoaXNTdHJpbmcpCi0gICAgICAg
IHN0cmluZyA9IHByaXYtPnZhbHVlLnN0cmluZzsKKyAgICAgICAgc3RyaW5nID0gZGF0YS0+dmFs
dWUuc3RyaW5nOwogICAgIGVsc2UKLSAgICAgICAgbnVtYmVyID0gcHJpdi0+dmFsdWUubnVtYmVy
OworICAgICAgICBudW1iZXIgPSBkYXRhLT52YWx1ZS5udW1iZXI7CiB9CiAKICNpZiBVU0UoVjgp
CiAKLXN0YXRpYyBib29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiBy
YW5nZSkKK3N0YXRpYyBib29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJSYW5n
ZSogd2ViUmFuZ2UpCiB7CiAgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIG5wb2JqIG5vdCBudWxs
IGNoZWNrZWQgaGVyZT8KIAotICAgIFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSByZWludGVycHJl
dF9jYXN0PFY4TlBPYmplY3QqPihucG9iaik7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB2
OG9iamVjdCh2OG5wb2JqZWN0LT52OE9iamVjdCk7Ci0gICAgaWYgKCFWOFJhbmdlOjppbmZvLmVx
dWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4b2JqZWN0KSkpCisgICAgVjhOUE9i
amVjdCogdjhOUE9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG9iamVjdCk7
CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB2OE9iamVjdCh2OE5QT2JqZWN0LT52OE9iamVj
dCk7CisgICAgaWYgKCFWOFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBw
ZXJUeXBlKHY4T2JqZWN0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJhbmdlKiBu
YXRpdmUgPSBWOFJhbmdlOjp0b05hdGl2ZSh2OG9iamVjdCk7CisgICAgUmFuZ2UqIG5hdGl2ZSA9
IFY4UmFuZ2U6OnRvTmF0aXZlKHY4T2JqZWN0KTsKICAgICBpZiAoIW5hdGl2ZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgKnJhbmdlID0gV2ViUmFuZ2UobmF0aXZlKTsKKyAgICAqd2Vi
UmFuZ2UgPSBXZWJSYW5nZShuYXRpdmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
Ym9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCogbnBPYmosIFdlYkVsZW1lbnQqIHdlYkVsZW1l
bnQpCitzdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJFbGVt
ZW50KiB3ZWJFbGVtZW50KQogewotICAgIGlmICghbnBPYmogfHwgKG5wT2JqLT5fY2xhc3MgIT0g
bnBTY3JpcHRPYmplY3RDbGFzcykpCisgICAgaWYgKCFvYmplY3QgfHwgKG9iamVjdC0+X2NsYXNz
ICE9IG5wU2NyaXB0T2JqZWN0Q2xhc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBW
OE5QT2JqZWN0KiB2OE5QT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxWOE5QT2JqZWN0Kj4obnBP
YmopOworICAgIFY4TlBPYmplY3QqIHY4TlBPYmplY3QgPSByZWludGVycHJldF9jYXN0PFY4TlBP
YmplY3QqPihvYmplY3QpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdjhPYmplY3QodjhO
UE9iamVjdC0+djhPYmplY3QpOwogICAgIEVsZW1lbnQqIG5hdGl2ZSA9IFY4RWxlbWVudDo6dG9O
YXRpdmUodjhPYmplY3QpOwogICAgIGlmICghbmF0aXZlKQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0
YXRpYyBOUE9iamVjdCogbWFrZUludEFycmF5SW1wbChjb25zdCBXZWJWZWN0b3I8aW50PiYgZGF0
YSkKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OkhhbmRsZTx2
ODo6QXJyYXk+IHJlc3VsdCA9IHY4OjpBcnJheTo6TmV3KGRhdGEuc2l6ZSgpKTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGRhdGEuc2l6ZSgpOyBpKyspCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBkYXRhLnNpemUoKTsgKytpKQogICAgICAgICByZXN1bHQtPlNldChpLCB2ODo6TnVt
YmVyOjpOZXcoZGF0YVtpXSkpOwogCiAgICAgV2ViQ29yZTo6RE9NV2luZG93KiB3aW5kb3cgPSBX
ZWJDb3JlOjpWOFByb3h5OjpyZXRyaWV2ZVdpbmRvdyhXZWJDb3JlOjpWOFByb3h5OjpjdXJyZW50
Q29udGV4dCgpKTsKQEAgLTI1NywxMCArMjU3LDEwIEBAIHN0YXRpYyBOUE9iamVjdCogbWFrZVN0
cmluZ0FycmF5SW1wbChjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgZGF0YSkKIAogI2VuZGlm
CiAKLWJvb2wgV2ViQmluZGluZ3M6OmdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2Uq
IHdlYnJhbmdlKQorYm9vbCBXZWJCaW5kaW5nczo6Z2V0UmFuZ2UoTlBPYmplY3QqIHJhbmdlLCBX
ZWJSYW5nZSogd2ViUmFuZ2UpCiB7CiAjaWYgVVNFKFY4KQotICAgIHJldHVybiBnZXRSYW5nZUlt
cGwocmFuZ2UsIHdlYnJhbmdlKTsKKyAgICByZXR1cm4gZ2V0UmFuZ2VJbXBsKHJhbmdlLCB3ZWJS
YW5nZSk7CiAjZWxzZQogICAgIC8vIE5vdCBzdXBwb3J0ZWQgb24gb3RoZXIgcG9ydHMgKEpTQywg
ZXRjKS4KICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBXZWJCaW5k
aW5nczo6Z2V0RWxlbWVudChOUE9iamVjdCogZWxlbWVudCwgV2ViRWxlbWVudCogd2ViRWxlbWVu
dCkKICNlbmRpZgogfQogCi1OUE9iamVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShjb25z
dCBXZWJWZWN0b3I8aW50PiAmIGRhdGEpCitOUE9iamVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRB
cnJheShjb25zdCBXZWJWZWN0b3I8aW50PiYgZGF0YSkKIHsKICNpZiBVU0UoVjgpCiAgICAgcmV0
dXJuIG1ha2VJbnRBcnJheUltcGwoZGF0YSk7Cg==
</data>
<flag name="review"
          id="79061"
          type_id="1"
          status="+"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="79062"
          type_id="3"
          status="-"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86742</attachid>
            <date>2011-03-23 22:45:07 -0700</date>
            <delta_ts>2011-03-23 22:46:56 -0700</delta_ts>
            <desc>Patch (mod 2) style change</desc>
            <filename>web-bindings-style-change.git.diff</filename>
            <type>text/plain</type>
            <size>13366</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGI2YWRhZi4uMWI4ZmZkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0wMy0yMyAgTm9lbCBHb3Jk
b24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBXZWJCaW5kaW5nczo6Z2V0UmFuZ2VJbXBs
KCkgc2hvdWxkIE5VTEwgY2hlY2sgaXRzIE5QT2JqZWN0IGFyZ3VtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njg5OAorCisgICAgICAgIEFkZHJl
c3MgRklYTUUgSSBub3RlZC9hZGRlZCBpbiByODE2NzYuICBXYW50ZWQgdG8ganVzdCBjb3B5L3Bh
c3RlIHRoZSBjaGVja2luZworICAgICAgICBjb2RlIGZyb20gZWxzZXdoZXJlIGluIHRoZSBmaWxl
LCBidXQgaW5jb25zaXN0ZW50IGFyZ3VtZW50IG5hbWluZyBtYWRlIGl0IG1vcmUKKyAgICAgICAg
ZGlmZmljdWx0IHRoYW4gaXQgbmVlZCBiZSBzbywgdG8gY2xlYW4gdXAgdGhlIGNvbW1vbnMsIGFk
ZCBjb25zaXN0ZW50IG5hbWluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgor
ICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRp
bmdzOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6ZW51bWVyYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmluZGluZ3M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omhh
c01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjppbnZva2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCaW5kaW5nczo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdz
OjpyZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJlbW92ZVBy
b3BlcnR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJldGFpbk9iamVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5k
aW5nczo6dW5yZWdpc3Rlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpl
eHRyYWN0SWRlbnRpZmllckRhdGEpOgorICAgICAgICAoV2ViS2l0OjpnZXRSYW5nZUltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpnZXRFbGVtZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VJ
bnRBcnJheUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6Z2V0UmFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6bWFrZUludEFycmF5KToKKwogMjAxMS0wMy0y
MiAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkJpbmRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5k
aW5ncy5oCmluZGV4IDM4MjUyMjIuLjQzZDZmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQmluZGluZ3MuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgTlBPYmplY3QqIGNyZWF0ZU9iamVjdChOUFAsIE5QQ2xhc3MqKTsKIAog
ICAgIC8vIE5QTl9FbnVtZXJhdGUKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGVudW1lcmF0
ZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyKiosIHVpbnQzMl90KiBjb3VudCk7CisgICAg
V0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBlbnVtZXJhdGUoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRp
ZmllcioqLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50KTsKIAogICAgIC8vIE5QTl9FdmFsdWF0
ZQogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgZXZhbHVhdGUoTlBQLCBOUE9iamVjdCosIE5Q
U3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVi
bGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIE5QSWRlbnRpZmllciBnZXRJbnRJZGVudGlmaWVy
KGludDMyX3QgbnVtYmVyKTsKIAogICAgIC8vIE5QTl9HZXRQcm9wZXJ0eQotICAgIFdFQktJVF9B
UEkgc3RhdGljIGJvb2wgZ2V0UHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUsIE5QVmFyaWFudCAqcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBi
b29sIGdldFByb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5Q
VmFyaWFudCAqcmVzdWx0KTsKIAogICAgIC8vIE5QTl9HZXRTdHJpbmdJZGVudGlmaWVyCiAgICAg
V0VCS0lUX0FQSSBzdGF0aWMgTlBJZGVudGlmaWVyIGdldFN0cmluZ0lkZW50aWZpZXIoY29uc3Qg
TlBVVEY4KiBzdHJpbmcpOwpAQCAtNzYsMTAgKzc2LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIHN0YXRpYyB2b2lkIGdldFN0cmluZ0lkZW50aWZpZXJzKGNvbnN0IE5QVVRGOCoqIG5hbWVz
LCBpbnQzMl90IG5hbWVDb3VudCwgTlBJZGVudGlmaWVyKik7CiAKICAgICAvLyBOUE5fSGFzTWV0
aG9kCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBoYXNNZXRob2QoTlBQLCBOUE9iamVjdCos
IE5QSWRlbnRpZmllciBtZXRob2ROYW1lKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhh
c01ldGhvZChOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZCk7CiAKICAgICAvLyBO
UE5fSGFzUHJvcGVydHkKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5Q
UCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKTsKKyAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJv
cGVydHkpOwogCiAgICAgLy8gTlBOX0lkZW50aWZpZXJJc1N0cmluZwogICAgIFdFQktJVF9BUEkg
c3RhdGljIGJvb2wgaWRlbnRpZmllcklzU3RyaW5nKE5QSWRlbnRpZmllcik7CkBAIC05MSwxMCAr
OTEsMTAgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIGludDMyX3QgaW50RnJvbUlk
ZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKIAogICAgIC8vIE5QTl9JbnZva2UKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhv
ZE5hbWUsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCog
cmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0
KiwgTlBJZGVudGlmaWVyIG1ldGhvZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBh
cmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpOwogCiAgICAgLy8gTlBOX0ludm9rZURlZmF1bHQK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCos
IGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCogcmVzdWx0
KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVj
dCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCog
cmVzdWx0KTsKIAogICAgIC8vIE5QTl9SZWxlYXNlT2JqZWN0CiAgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCByZWxlYXNlT2JqZWN0KE5QT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJCaW5kaW5ncy5jcHAKaW5kZXggNjdlZTlmMS4uOWE4M2ZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcApAQCAtNTcsOSArNTcsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgV2ViQmlu
ZGluZ3M6OmNvbnN0cnVjdChOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIGNvbnN0IE5QVmFyaWFu
dCAqYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorYm9vbCBXZWJC
aW5kaW5nczo6Y29uc3RydWN0KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIGNvbnN0IE5QVmFy
aWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAg
IHJldHVybiBfTlBOX0NvbnN0cnVjdChucHAsIG5wb2JqLCBhcmdzLCBhcmdDb3VudCwgcmVzdWx0
KTsKKyAgICByZXR1cm4gX05QTl9Db25zdHJ1Y3QobnBwLCBvYmplY3QsIGFyZ3MsIGFyZ0NvdW50
LCByZXN1bHQpOwogfQogCiBOUE9iamVjdCogV2ViQmluZGluZ3M6OmNyZWF0ZU9iamVjdChOUFAg
bnBwLCBOUENsYXNzKiBucENsYXNzKQpAQCAtNjcsMTkgKzY3LDE5IEBAIE5QT2JqZWN0KiBXZWJC
aW5kaW5nczo6Y3JlYXRlT2JqZWN0KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3MpCiAgICAgcmV0
dXJuIF9OUE5fQ3JlYXRlT2JqZWN0KG5wcCwgbnBDbGFzcyk7CiB9CiAKLWJvb2wgV2ViQmluZGlu
Z3M6OmVudW1lcmF0ZShOUFAgaWQsIE5QT2JqZWN0KiBvYmosIE5QSWRlbnRpZmllcioqIGlkZW50
aWZpZXIsIHVpbnQzMl90KiB2YWwpCitib29sIFdlYkJpbmRpbmdzOjplbnVtZXJhdGUoTlBQIG5w
cCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3Qq
IGlkZW50aWZpZXJDb3VudCkKIHsKLSAgICByZXR1cm4gX05QTl9FbnVtZXJhdGUoaWQsIG9iaiwg
aWRlbnRpZmllciwgdmFsKTsKKyAgICByZXR1cm4gX05QTl9FbnVtZXJhdGUobnBwLCBvYmplY3Qs
IGlkZW50aWZpZXIsIGlkZW50aWZpZXJDb3VudCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2
YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBucE9iamVjdCwgTlBTdHJpbmcqIG5wU2NyaXB0LCBO
UFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5Q
T2JqZWN0KiBvYmplY3QsIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KQogewot
ICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgbnBPYmplY3QsIG5wU2NyaXB0LCByZXN1bHQp
OworICAgIHJldHVybiBfTlBOX0V2YWx1YXRlKG5wcCwgb2JqZWN0LCBzY3JpcHQsIHJlc3VsdCk7
CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJvb2wgcG9w
dXBzX2FsbG93ZWQsIE5QT2JqZWN0KiBucG9iaiwgTlBTdHJpbmcqIG5wc2NyaXB0LCBOUFZhcmlh
bnQqIHJlc3VsdCkKK2Jvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJv
b2wgcG9wdXBzQWxsb3dlZCwgTlBPYmplY3QqIG9iamVjdCwgTlBTdHJpbmcqIHNjcmlwdCwgTlBW
YXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmV0dXJuIF9OUE5fRXZhbHVhdGVIZWxwZXIobnBwLCBw
b3B1cHNfYWxsb3dlZCwgbnBvYmosIG5wc2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBO
X0V2YWx1YXRlSGVscGVyKG5wcCwgcG9wdXBzQWxsb3dlZCwgb2JqZWN0LCBzY3JpcHQsIHJlc3Vs
dCk7CiB9CiAKIE5QSWRlbnRpZmllciBXZWJCaW5kaW5nczo6Z2V0SW50SWRlbnRpZmllcihpbnQz
Ml90IG51bWJlcikKQEAgLTg3LDkgKzg3LDkgQEAgTlBJZGVudGlmaWVyIFdlYkJpbmRpbmdzOjpn
ZXRJbnRJZGVudGlmaWVyKGludDMyX3QgbnVtYmVyKQogICAgIHJldHVybiBfTlBOX0dldEludElk
ZW50aWZpZXIobnVtYmVyKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6Z2V0UHJvcGVydHkoTlBQ
IG5wcCwgTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgTlBWYXJpYW50
ICpyZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjpnZXRQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVj
dCogb2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5QVmFyaWFudCogcmVzdWx0KQogewot
ICAgIHJldHVybiBfTlBOX0dldFByb3BlcnR5KG5wcCwgb2JqLCBwcm9wZXJ0eU5hbWUsIHJlc3Vs
dCk7CisgICAgcmV0dXJuIF9OUE5fR2V0UHJvcGVydHkobnBwLCBvYmplY3QsIHByb3BlcnR5LCBy
ZXN1bHQpOwogfQogCiBOUElkZW50aWZpZXIgV2ViQmluZGluZ3M6OmdldFN0cmluZ0lkZW50aWZp
ZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB2b2lkIFdlYkJp
bmRpbmdzOjpnZXRTdHJpbmdJZGVudGlmaWVycyhjb25zdCBOUFVURjgqKiBuYW1lcywgaW50MzJf
dCBuYW1lQ291bnQsCiAgICAgX05QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgbmFtZUNv
dW50LCBpZGVudGlmaWVycyk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6Omhhc01ldGhvZChOUFAg
bnBwLCBOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lKQorYm9vbCBX
ZWJCaW5kaW5nczo6aGFzTWV0aG9kKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRp
ZmllciBtZXRob2QpCiB7Ci0gICAgcmV0dXJuIF9OUE5fSGFzTWV0aG9kKG5wcCwgbnBPYmplY3Qs
IG1ldGhvZE5hbWUpOworICAgIHJldHVybiBfTlBOX0hhc01ldGhvZChucHAsIG9iamVjdCwgbWV0
aG9kKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6aGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmpl
Y3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKQorYm9vbCBXZWJCaW5kaW5n
czo6aGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIHBy
b3BlcnR5KQogewotICAgIHJldHVybiBfTlBOX0hhc1Byb3BlcnR5KG5wcCwgbnBPYmplY3QsIHBy
b3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIF9OUE5fSGFzUHJvcGVydHkobnBwLCBvYmplY3QsIHBy
b3BlcnR5KTsKIH0KIAogYm9vbCBXZWJCaW5kaW5nczo6aWRlbnRpZmllcklzU3RyaW5nKE5QSWRl
bnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTMxLDE5ICsxMzEsMTkgQEAgdm9pZCBXZWJCaW5kaW5n
czo6aW5pdGlhbGl6ZVZhcmlhbnRXaXRoU3RyaW5nQ29weShOUFZhcmlhbnQqIHZhcmlhbnQsIGNv
bnN0IE5QU3QKICNlbmRpZgogfQogCi1ib29sIFdlYkJpbmRpbmdzOjppbnZva2UoTlBQIG5wcCwg
TlBPYmplY3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJp
YW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQsIE5QVmFyaWFudCogcmVzdWx0
KQorYm9vbCBXZWJCaW5kaW5nczo6aW52b2tlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5Q
SWRlbnRpZmllciBtZXRob2QsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZShucHAsIG5w
T2JqZWN0LCBtZXRob2ROYW1lLCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQsIHJlc3VsdCk7Cisg
ICAgcmV0dXJuIF9OUE5fSW52b2tlKG5wcCwgb2JqZWN0LCBtZXRob2QsIGFyZ3MsIGFyZ0NvdW50
LCByZXN1bHQpOwogfQogCi1ib29sIFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBpZCwg
TlBPYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBW
YXJpYW50KiByZXN1bHQpCitib29sIFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBucHAs
IE5QT2JqZWN0KiBvYmplY3QsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZURlZmF1bHQo
aWQsIG9iaiwgYXJncywgY291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fSW52b2tlRGVm
YXVsdChucHAsIG9iamVjdCwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CiB9CiAKLXZvaWQgV2Vi
QmluZGluZ3M6OnJlbGVhc2VPYmplY3QoTlBPYmplY3QqIG5wT2JqZWN0KQordm9pZCBXZWJCaW5k
aW5nczo6cmVsZWFzZU9iamVjdChOUE9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBO
X1JlbGVhc2VPYmplY3QobnBPYmplY3QpOworICAgIHJldHVybiBfTlBOX1JlbGVhc2VPYmplY3Qo
b2JqZWN0KTsKIH0KIAogdm9pZCBXZWJCaW5kaW5nczo6cmVsZWFzZVZhcmlhbnRWYWx1ZShOUFZh
cmlhbnQqIHZhcmlhbnQpCkBAIC0xNTEsMzAgKzE1MSwzMCBAQCB2b2lkIFdlYkJpbmRpbmdzOjpy
ZWxlYXNlVmFyaWFudFZhbHVlKE5QVmFyaWFudCogdmFyaWFudCkKICAgICBfTlBOX1JlbGVhc2VW
YXJpYW50VmFsdWUodmFyaWFudCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OnJlbW92ZVByb3Bl
cnR5KE5QUCBpZCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIpCiti
b29sIFdlYkJpbmRpbmdzOjpyZW1vdmVQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0
LCBOUElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gIF9OUE5fUmVtb3ZlUHJv
cGVydHkoaWQsIG9iamVjdCwgaWRlbnRpZmllcik7CisgICAgcmV0dXJuIF9OUE5fUmVtb3ZlUHJv
cGVydHkobnBwLCBvYmplY3QsIGlkZW50aWZpZXIpOwogfQogCi1OUE9iamVjdCogV2ViQmluZGlu
Z3M6OnJldGFpbk9iamVjdChOUE9iamVjdCogbnBPYmplY3QpCitOUE9iamVjdCogV2ViQmluZGlu
Z3M6OnJldGFpbk9iamVjdChOUE9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBOX1Jl
dGFpbk9iamVjdChucE9iamVjdCk7CisgICAgcmV0dXJuIF9OUE5fUmV0YWluT2JqZWN0KG9iamVj
dCk7CiB9CiAKLXZvaWQgV2ViQmluZGluZ3M6OnNldEV4Y2VwdGlvbihOUE9iamVjdCogb2JqLCBj
b25zdCBOUFVURjgqIG1lc3NhZ2UpCit2b2lkIFdlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24oTlBP
YmplY3QqIG9iamVjdCwgY29uc3QgTlBVVEY4KiBtZXNzYWdlKQogewotICAgIF9OUE5fU2V0RXhj
ZXB0aW9uKG9iaiwgbWVzc2FnZSk7CisgICAgX05QTl9TZXRFeGNlcHRpb24ob2JqZWN0LCBtZXNz
YWdlKTsKIH0KIAotYm9vbCBXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkoTlBQIGlkLCBOUE9iamVj
dCogb2JqLCBOUElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgTlBWYXJpYW50KiB2YXJpYW50
KQorYm9vbCBXZWJCaW5kaW5nczo6c2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVj
dCwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCogdmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIF9OUE5fU2V0UHJvcGVydHkoaWQsIG9iaiwgaWRlbnRpZmllciwgdmFyaWFudCk7
CisgICAgcmV0dXJuIF9OUE5fU2V0UHJvcGVydHkobnBwLCBvYmplY3QsIGlkZW50aWZpZXIsIHZh
bHVlKTsKIH0KIAotdm9pZCBXZWJCaW5kaW5nczo6dW5yZWdpc3Rlck9iamVjdChOUE9iamVjdCog
bnBPYmplY3QpCit2b2lkIFdlYkJpbmRpbmdzOjp1bnJlZ2lzdGVyT2JqZWN0KE5QT2JqZWN0KiBv
YmplY3QpCiB7CiAjaWYgVVNFKFY4KQotICAgIF9OUE5fVW5yZWdpc3Rlck9iamVjdChucE9iamVj
dCk7CisgICAgX05QTl9VbnJlZ2lzdGVyT2JqZWN0KG9iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAt
MTg1LDQ1ICsxODUsNDUgQEAgTlBVVEY4KiBXZWJCaW5kaW5nczo6dXRmOEZyb21JZGVudGlmaWVy
KE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQogCiB2b2lkIFdlYkJpbmRpbmdzOjpleHRyYWN0SWRl
bnRpZmllckRhdGEoY29uc3QgTlBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBOUFVURjgq
JiBzdHJpbmcsIGludDMyX3QmIG51bWJlciwgYm9vbCYgaXNTdHJpbmcpCiB7Ci0gICAgUHJpdmF0
ZUlkZW50aWZpZXIqIHByaXYgPSBzdGF0aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllcio+KGlkZW50
aWZpZXIpOwotICAgIGlmICghcHJpdikgeworICAgIFByaXZhdGVJZGVudGlmaWVyKiBkYXRhID0g
c3RhdGljX2Nhc3Q8UHJpdmF0ZUlkZW50aWZpZXIqPihpZGVudGlmaWVyKTsKKyAgICBpZiAoIWRh
dGEpIHsKICAgICAgICAgaXNTdHJpbmcgPSBmYWxzZTsKICAgICAgICAgbnVtYmVyID0gMDsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlzU3RyaW5nID0gcHJpdi0+aXNTdHJpbmc7Cisg
ICAgaXNTdHJpbmcgPSBkYXRhLT5pc1N0cmluZzsKICAgICBpZiAoaXNTdHJpbmcpCi0gICAgICAg
IHN0cmluZyA9IHByaXYtPnZhbHVlLnN0cmluZzsKKyAgICAgICAgc3RyaW5nID0gZGF0YS0+dmFs
dWUuc3RyaW5nOwogICAgIGVsc2UKLSAgICAgICAgbnVtYmVyID0gcHJpdi0+dmFsdWUubnVtYmVy
OworICAgICAgICBudW1iZXIgPSBkYXRhLT52YWx1ZS5udW1iZXI7CiB9CiAKICNpZiBVU0UoVjgp
CiAKLXN0YXRpYyBib29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiBy
YW5nZSkKK3N0YXRpYyBib29sIGdldFJhbmdlSW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJSYW5n
ZSogd2ViUmFuZ2UpCiB7CiAgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIG5wb2JqIG5vdCBudWxs
IGNoZWNrZWQgaGVyZT8KIAotICAgIFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSByZWludGVycHJl
dF9jYXN0PFY4TlBPYmplY3QqPihucG9iaik7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB2
OG9iamVjdCh2OG5wb2JqZWN0LT52OE9iamVjdCk7Ci0gICAgaWYgKCFWOFJhbmdlOjppbmZvLmVx
dWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4b2JqZWN0KSkpCisgICAgVjhOUE9i
amVjdCogdjhOUE9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG9iamVjdCk7
CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB2OE9iamVjdCh2OE5QT2JqZWN0LT52OE9iamVj
dCk7CisgICAgaWYgKCFWOFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBw
ZXJUeXBlKHY4T2JqZWN0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJhbmdlKiBu
YXRpdmUgPSBWOFJhbmdlOjp0b05hdGl2ZSh2OG9iamVjdCk7CisgICAgUmFuZ2UqIG5hdGl2ZSA9
IFY4UmFuZ2U6OnRvTmF0aXZlKHY4T2JqZWN0KTsKICAgICBpZiAoIW5hdGl2ZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgKnJhbmdlID0gV2ViUmFuZ2UobmF0aXZlKTsKKyAgICAqd2Vi
UmFuZ2UgPSBXZWJSYW5nZShuYXRpdmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
Ym9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCogbnBPYmosIFdlYkVsZW1lbnQqIHdlYkVsZW1l
bnQpCitzdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJFbGVt
ZW50KiB3ZWJFbGVtZW50KQogewotICAgIGlmICghbnBPYmogfHwgKG5wT2JqLT5fY2xhc3MgIT0g
bnBTY3JpcHRPYmplY3RDbGFzcykpCisgICAgaWYgKCFvYmplY3QgfHwgKG9iamVjdC0+X2NsYXNz
ICE9IG5wU2NyaXB0T2JqZWN0Q2xhc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBW
OE5QT2JqZWN0KiB2OE5QT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxWOE5QT2JqZWN0Kj4obnBP
YmopOworICAgIFY4TlBPYmplY3QqIHY4TlBPYmplY3QgPSByZWludGVycHJldF9jYXN0PFY4TlBP
YmplY3QqPihvYmplY3QpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdjhPYmplY3QodjhO
UE9iamVjdC0+djhPYmplY3QpOwogICAgIEVsZW1lbnQqIG5hdGl2ZSA9IFY4RWxlbWVudDo6dG9O
YXRpdmUodjhPYmplY3QpOwogICAgIGlmICghbmF0aXZlKQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0
YXRpYyBOUE9iamVjdCogbWFrZUludEFycmF5SW1wbChjb25zdCBXZWJWZWN0b3I8aW50PiYgZGF0
YSkKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OkhhbmRsZTx2
ODo6QXJyYXk+IHJlc3VsdCA9IHY4OjpBcnJheTo6TmV3KGRhdGEuc2l6ZSgpKTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGRhdGEuc2l6ZSgpOyBpKyspCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBkYXRhLnNpemUoKTsgKytpKQogICAgICAgICByZXN1bHQtPlNldChpLCB2ODo6TnVt
YmVyOjpOZXcoZGF0YVtpXSkpOwogCiAgICAgV2ViQ29yZTo6RE9NV2luZG93KiB3aW5kb3cgPSBX
ZWJDb3JlOjpWOFByb3h5OjpyZXRyaWV2ZVdpbmRvdyhXZWJDb3JlOjpWOFByb3h5OjpjdXJyZW50
Q29udGV4dCgpKTsKQEAgLTI1NywxMCArMjU3LDEwIEBAIHN0YXRpYyBOUE9iamVjdCogbWFrZVN0
cmluZ0FycmF5SW1wbChjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgZGF0YSkKIAogI2VuZGlm
CiAKLWJvb2wgV2ViQmluZGluZ3M6OmdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2Uq
IHdlYnJhbmdlKQorYm9vbCBXZWJCaW5kaW5nczo6Z2V0UmFuZ2UoTlBPYmplY3QqIHJhbmdlLCBX
ZWJSYW5nZSogd2ViUmFuZ2UpCiB7CiAjaWYgVVNFKFY4KQotICAgIHJldHVybiBnZXRSYW5nZUlt
cGwocmFuZ2UsIHdlYnJhbmdlKTsKKyAgICByZXR1cm4gZ2V0UmFuZ2VJbXBsKHJhbmdlLCB3ZWJS
YW5nZSk7CiAjZWxzZQogICAgIC8vIE5vdCBzdXBwb3J0ZWQgb24gb3RoZXIgcG9ydHMgKEpTQywg
ZXRjKS4KICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBXZWJCaW5k
aW5nczo6Z2V0RWxlbWVudChOUE9iamVjdCogZWxlbWVudCwgV2ViRWxlbWVudCogd2ViRWxlbWVu
dCkKICNlbmRpZgogfQogCi1OUE9iamVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShjb25z
dCBXZWJWZWN0b3I8aW50PiAmIGRhdGEpCitOUE9iamVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRB
cnJheShjb25zdCBXZWJWZWN0b3I8aW50PiYgZGF0YSkKIHsKICNpZiBVU0UoVjgpCiAgICAgcmV0
dXJuIG1ha2VJbnRBcnJheUltcGwoZGF0YSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86743</attachid>
            <date>2011-03-23 22:48:35 -0700</date>
            <delta_ts>2011-03-23 23:48:16 -0700</delta_ts>
            <desc>Patch (mod 2) style change changelog </desc>
            <filename>web-bindings-style-change.git.diff</filename>
            <type>text/plain</type>
            <size>13345</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGI2YWRhZi4uZjkyYTA0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0wMy0yMyAgTm9lbCBHb3Jk
b24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBXZWJCaW5kaW5nc3suaCwuY3BwfTogc2hv
dWxkIHVzZSBjb25zaXN0ZW50IGFyZ3VtZW50IG5hbWluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY4OTgKKworICAgICAgICBBZGRyZXNzIEZJWE1F
IEkgbm90ZWQvYWRkZWQgaW4gcjgxNjc2LiAgV2FudGVkIHRvIGp1c3QgY29weS9wYXN0ZSB0aGUg
Y2hlY2tpbmcKKyAgICAgICAgY29kZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGUgZmlsZSwgYnV0IGlu
Y29uc2lzdGVudCBhcmd1bWVudCBuYW1pbmcgbWFkZSBpdCBtb3JlCisgICAgICAgIGRpZmZpY3Vs
dCB0aGFuIGl0IG5lZWQgYmUsIHNvIGZpcnN0IHN0ZXA6IHVzZSBjb25zaXN0ZW50IG5hbWluZy4K
KworICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJCaW5k
aW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpjb25zdHJ1Y3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6ZW51bWVyYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQmluZGluZ3M6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmV2
YWx1YXRlSGVscGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OmdldFByb3BlcnR5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6Omhhc01ldGhvZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkJpbmRpbmdzOjpoYXNQcm9wZXJ0eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJp
bmRpbmdzOjppbnZva2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6aW52b2tlRGVm
YXVsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpyZWxlYXNlT2JqZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQmluZGluZ3M6OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmluZGluZ3M6OnJldGFpbk9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJp
bmRpbmdzOjpzZXRFeGNlcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6c2V0
UHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6dW5yZWdpc3Rlck9iamVj
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJpbmRpbmdzOjpleHRyYWN0SWRlbnRpZmllckRhdGEp
OgorICAgICAgICAoV2ViS2l0OjpnZXRSYW5nZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpnZXRF
bGVtZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VJbnRBcnJheUltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCaW5kaW5nczo6Z2V0UmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
aW5kaW5nczo6bWFrZUludEFycmF5KToKKwogMjAxMS0wMy0yMiAgTm9lbCBHb3Jkb24gIDxub2Vs
LmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5kaW5ncy5oCmluZGV4IDM4MjUyMjIu
LjQzZDZmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJp
bmRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQmluZGluZ3Mu
aApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgTlBPYmpl
Y3QqIGNyZWF0ZU9iamVjdChOUFAsIE5QQ2xhc3MqKTsKIAogICAgIC8vIE5QTl9FbnVtZXJhdGUK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGVudW1lcmF0ZShOUFAsIE5QT2JqZWN0KiwgTlBJ
ZGVudGlmaWVyKiosIHVpbnQzMl90KiBjb3VudCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9v
bCBlbnVtZXJhdGUoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllcioqLCB1aW50MzJfdCogaWRl
bnRpZmllckNvdW50KTsKIAogICAgIC8vIE5QTl9FdmFsdWF0ZQogICAgIFdFQktJVF9BUEkgc3Rh
dGljIGJvb2wgZXZhbHVhdGUoTlBQLCBOUE9iamVjdCosIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFy
aWFudCogcmVzdWx0KTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkg
c3RhdGljIE5QSWRlbnRpZmllciBnZXRJbnRJZGVudGlmaWVyKGludDMyX3QgbnVtYmVyKTsKIAog
ICAgIC8vIE5QTl9HZXRQcm9wZXJ0eQotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgZ2V0UHJv
cGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIE5QVmFyaWFu
dCAqcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGdldFByb3BlcnR5KE5QUCwg
TlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHksIE5QVmFyaWFudCAqcmVzdWx0KTsKIAog
ICAgIC8vIE5QTl9HZXRTdHJpbmdJZGVudGlmaWVyCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgTlBJ
ZGVudGlmaWVyIGdldFN0cmluZ0lkZW50aWZpZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpOwpAQCAt
NzYsMTAgKzc2LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGdldFN0
cmluZ0lkZW50aWZpZXJzKGNvbnN0IE5QVVRGOCoqIG5hbWVzLCBpbnQzMl90IG5hbWVDb3VudCwg
TlBJZGVudGlmaWVyKik7CiAKICAgICAvLyBOUE5fSGFzTWV0aG9kCi0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBoYXNNZXRob2QoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBtZXRob2RO
YW1lKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc01ldGhvZChOUFAsIE5QT2JqZWN0
KiwgTlBJZGVudGlmaWVyIG1ldGhvZCk7CiAKICAgICAvLyBOUE5fSGFzUHJvcGVydHkKLSAgICBX
RUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGhhc1Byb3Bl
cnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHkpOwogCiAgICAgLy8gTlBO
X0lkZW50aWZpZXJJc1N0cmluZwogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaWRlbnRpZmll
cklzU3RyaW5nKE5QSWRlbnRpZmllcik7CkBAIC05MSwxMCArOTEsMTAgQEAgcHVibGljOgogICAg
IFdFQktJVF9BUEkgc3RhdGljIGludDMyX3QgaW50RnJvbUlkZW50aWZpZXIoTlBJZGVudGlmaWVy
KTsKIAogICAgIC8vIE5QTl9JbnZva2UKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGludm9r
ZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUsIGNvbnN0IE5QVmFyaWFu
dCogYXJncywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRf
QVBJIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhv
ZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KiBy
ZXN1bHQpOwogCiAgICAgLy8gTlBOX0ludm9rZURlZmF1bHQKLSAgICBXRUJLSVRfQVBJIHN0YXRp
YyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJn
cywgdWludDMyX3QgY291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRfQVBJIHN0
YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCog
YXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKIAogICAgIC8vIE5Q
Tl9SZWxlYXNlT2JqZWN0CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZWxlYXNlT2JqZWN0
KE5QT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJC
aW5kaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAK
aW5kZXggNjdlZTlmMS4uOWE4M2ZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQmluZGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkJpbmRpbmdzLmNwcApAQCAtNTcsOSArNTcsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgV2ViQmluZGluZ3M6OmNvbnN0cnVjdChOUFAg
bnBwLCBOUE9iamVjdCAqbnBvYmosIGNvbnN0IE5QVmFyaWFudCAqYXJncywgdWludDMyX3QgYXJn
Q291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorYm9vbCBXZWJCaW5kaW5nczo6Y29uc3RydWN0KE5Q
UCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3Qg
YXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0NvbnN0cnVj
dChucHAsIG5wb2JqLCBhcmdzLCBhcmdDb3VudCwgcmVzdWx0KTsKKyAgICByZXR1cm4gX05QTl9D
b25zdHJ1Y3QobnBwLCBvYmplY3QsIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOwogfQogCiBOUE9i
amVjdCogV2ViQmluZGluZ3M6OmNyZWF0ZU9iamVjdChOUFAgbnBwLCBOUENsYXNzKiBucENsYXNz
KQpAQCAtNjcsMTkgKzY3LDE5IEBAIE5QT2JqZWN0KiBXZWJCaW5kaW5nczo6Y3JlYXRlT2JqZWN0
KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3MpCiAgICAgcmV0dXJuIF9OUE5fQ3JlYXRlT2JqZWN0
KG5wcCwgbnBDbGFzcyk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmVudW1lcmF0ZShOUFAgaWQs
IE5QT2JqZWN0KiBvYmosIE5QSWRlbnRpZmllcioqIGlkZW50aWZpZXIsIHVpbnQzMl90KiB2YWwp
Citib29sIFdlYkJpbmRpbmdzOjplbnVtZXJhdGUoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwg
TlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIGlkZW50aWZpZXJDb3VudCkKIHsK
LSAgICByZXR1cm4gX05QTl9FbnVtZXJhdGUoaWQsIG9iaiwgaWRlbnRpZmllciwgdmFsKTsKKyAg
ICByZXR1cm4gX05QTl9FbnVtZXJhdGUobnBwLCBvYmplY3QsIGlkZW50aWZpZXIsIGlkZW50aWZp
ZXJDb3VudCk7CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5QT2Jq
ZWN0KiBucE9iamVjdCwgTlBTdHJpbmcqIG5wU2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jv
b2wgV2ViQmluZGluZ3M6OmV2YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QU3Ry
aW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0V2YWx1
YXRlKG5wcCwgbnBPYmplY3QsIG5wU2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBOX0V2
YWx1YXRlKG5wcCwgb2JqZWN0LCBzY3JpcHQsIHJlc3VsdCk7CiB9CiAKLWJvb2wgV2ViQmluZGlu
Z3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJvb2wgcG9wdXBzX2FsbG93ZWQsIE5QT2JqZWN0
KiBucG9iaiwgTlBTdHJpbmcqIG5wc2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgV2Vi
QmluZGluZ3M6OmV2YWx1YXRlSGVscGVyKE5QUCBucHAsIGJvb2wgcG9wdXBzQWxsb3dlZCwgTlBP
YmplY3QqIG9iamVjdCwgTlBTdHJpbmcqIHNjcmlwdCwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0g
ICAgcmV0dXJuIF9OUE5fRXZhbHVhdGVIZWxwZXIobnBwLCBwb3B1cHNfYWxsb3dlZCwgbnBvYmos
IG5wc2NyaXB0LCByZXN1bHQpOworICAgIHJldHVybiBfTlBOX0V2YWx1YXRlSGVscGVyKG5wcCwg
cG9wdXBzQWxsb3dlZCwgb2JqZWN0LCBzY3JpcHQsIHJlc3VsdCk7CiB9CiAKIE5QSWRlbnRpZmll
ciBXZWJCaW5kaW5nczo6Z2V0SW50SWRlbnRpZmllcihpbnQzMl90IG51bWJlcikKQEAgLTg3LDkg
Kzg3LDkgQEAgTlBJZGVudGlmaWVyIFdlYkJpbmRpbmdzOjpnZXRJbnRJZGVudGlmaWVyKGludDMy
X3QgbnVtYmVyKQogICAgIHJldHVybiBfTlBOX0dldEludElkZW50aWZpZXIobnVtYmVyKTsKIH0K
IAotYm9vbCBXZWJCaW5kaW5nczo6Z2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iaiwg
TlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgTlBWYXJpYW50ICpyZXN1bHQpCitib29sIFdlYkJp
bmRpbmdzOjpnZXRQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZp
ZXIgcHJvcGVydHksIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIHJldHVybiBfTlBOX0dldFBy
b3BlcnR5KG5wcCwgb2JqLCBwcm9wZXJ0eU5hbWUsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5f
R2V0UHJvcGVydHkobnBwLCBvYmplY3QsIHByb3BlcnR5LCByZXN1bHQpOwogfQogCiBOUElkZW50
aWZpZXIgV2ViQmluZGluZ3M6OmdldFN0cmluZ0lkZW50aWZpZXIoY29uc3QgTlBVVEY4KiBzdHJp
bmcpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB2b2lkIFdlYkJpbmRpbmdzOjpnZXRTdHJpbmdJZGVu
dGlmaWVycyhjb25zdCBOUFVURjgqKiBuYW1lcywgaW50MzJfdCBuYW1lQ291bnQsCiAgICAgX05Q
Tl9HZXRTdHJpbmdJZGVudGlmaWVycyhuYW1lcywgbmFtZUNvdW50LCBpZGVudGlmaWVycyk7CiB9
CiAKLWJvb2wgV2ViQmluZGluZ3M6Omhhc01ldGhvZChOUFAgbnBwLCBOUE9iamVjdCogbnBPYmpl
Y3QsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lKQorYm9vbCBXZWJCaW5kaW5nczo6aGFzTWV0aG9k
KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRpZmllciBtZXRob2QpCiB7Ci0gICAg
cmV0dXJuIF9OUE5fSGFzTWV0aG9kKG5wcCwgbnBPYmplY3QsIG1ldGhvZE5hbWUpOworICAgIHJl
dHVybiBfTlBOX0hhc01ldGhvZChucHAsIG9iamVjdCwgbWV0aG9kKTsKIH0KIAotYm9vbCBXZWJC
aW5kaW5nczo6aGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0LCBOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lKQorYm9vbCBXZWJCaW5kaW5nczo6aGFzUHJvcGVydHkoTlBQIG5w
cCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIHByb3BlcnR5KQogewotICAgIHJldHVy
biBfTlBOX0hhc1Byb3BlcnR5KG5wcCwgbnBPYmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0
dXJuIF9OUE5fSGFzUHJvcGVydHkobnBwLCBvYmplY3QsIHByb3BlcnR5KTsKIH0KIAogYm9vbCBX
ZWJCaW5kaW5nczo6aWRlbnRpZmllcklzU3RyaW5nKE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQpA
QCAtMTMxLDE5ICsxMzEsMTkgQEAgdm9pZCBXZWJCaW5kaW5nczo6aW5pdGlhbGl6ZVZhcmlhbnRX
aXRoU3RyaW5nQ29weShOUFZhcmlhbnQqIHZhcmlhbnQsIGNvbnN0IE5QU3QKICNlbmRpZgogfQog
Ci1ib29sIFdlYkJpbmRpbmdzOjppbnZva2UoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0LCBO
UElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorYm9vbCBXZWJCaW5kaW5nczo6
aW52b2tlKE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIE5QSWRlbnRpZmllciBtZXRob2QsIGNv
bnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0
KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZShucHAsIG5wT2JqZWN0LCBtZXRob2ROYW1lLCBh
cmd1bWVudHMsIGFyZ3VtZW50Q291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fSW52b2tl
KG5wcCwgb2JqZWN0LCBtZXRob2QsIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOwogfQogCi1ib29s
IFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBpZCwgTlBPYmplY3QqIG9iaiwgY29uc3Qg
TlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBjb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitib29s
IFdlYkJpbmRpbmdzOjppbnZva2VEZWZhdWx0KE5QUCBucHAsIE5QT2JqZWN0KiBvYmplY3QsIGNv
bnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0
KQogewotICAgIHJldHVybiBfTlBOX0ludm9rZURlZmF1bHQoaWQsIG9iaiwgYXJncywgY291bnQs
IHJlc3VsdCk7CisgICAgcmV0dXJuIF9OUE5fSW52b2tlRGVmYXVsdChucHAsIG9iamVjdCwgYXJn
cywgYXJnQ291bnQsIHJlc3VsdCk7CiB9CiAKLXZvaWQgV2ViQmluZGluZ3M6OnJlbGVhc2VPYmpl
Y3QoTlBPYmplY3QqIG5wT2JqZWN0KQordm9pZCBXZWJCaW5kaW5nczo6cmVsZWFzZU9iamVjdChO
UE9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBOX1JlbGVhc2VPYmplY3QobnBPYmpl
Y3QpOworICAgIHJldHVybiBfTlBOX1JlbGVhc2VPYmplY3Qob2JqZWN0KTsKIH0KIAogdm9pZCBX
ZWJCaW5kaW5nczo6cmVsZWFzZVZhcmlhbnRWYWx1ZShOUFZhcmlhbnQqIHZhcmlhbnQpCkBAIC0x
NTEsMzAgKzE1MSwzMCBAQCB2b2lkIFdlYkJpbmRpbmdzOjpyZWxlYXNlVmFyaWFudFZhbHVlKE5Q
VmFyaWFudCogdmFyaWFudCkKICAgICBfTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUodmFyaWFudCk7
CiB9CiAKLWJvb2wgV2ViQmluZGluZ3M6OnJlbW92ZVByb3BlcnR5KE5QUCBpZCwgTlBPYmplY3Qq
IG9iamVjdCwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIpCitib29sIFdlYkJpbmRpbmdzOjpyZW1v
dmVQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCogb2JqZWN0LCBOUElkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKLSAgICByZXR1cm4gIF9OUE5fUmVtb3ZlUHJvcGVydHkoaWQsIG9iamVjdCwgaWRl
bnRpZmllcik7CisgICAgcmV0dXJuIF9OUE5fUmVtb3ZlUHJvcGVydHkobnBwLCBvYmplY3QsIGlk
ZW50aWZpZXIpOwogfQogCi1OUE9iamVjdCogV2ViQmluZGluZ3M6OnJldGFpbk9iamVjdChOUE9i
amVjdCogbnBPYmplY3QpCitOUE9iamVjdCogV2ViQmluZGluZ3M6OnJldGFpbk9iamVjdChOUE9i
amVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBfTlBOX1JldGFpbk9iamVjdChucE9iamVjdCk7
CisgICAgcmV0dXJuIF9OUE5fUmV0YWluT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViQmlu
ZGluZ3M6OnNldEV4Y2VwdGlvbihOUE9iamVjdCogb2JqLCBjb25zdCBOUFVURjgqIG1lc3NhZ2Up
Cit2b2lkIFdlYkJpbmRpbmdzOjpzZXRFeGNlcHRpb24oTlBPYmplY3QqIG9iamVjdCwgY29uc3Qg
TlBVVEY4KiBtZXNzYWdlKQogewotICAgIF9OUE5fU2V0RXhjZXB0aW9uKG9iaiwgbWVzc2FnZSk7
CisgICAgX05QTl9TZXRFeGNlcHRpb24ob2JqZWN0LCBtZXNzYWdlKTsKIH0KIAotYm9vbCBXZWJC
aW5kaW5nczo6c2V0UHJvcGVydHkoTlBQIGlkLCBOUE9iamVjdCogb2JqLCBOUElkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgTlBWYXJpYW50KiB2YXJpYW50KQorYm9vbCBXZWJCaW5kaW5nczo6
c2V0UHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QqIG9iamVjdCwgTlBJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IE5QVmFyaWFudCogdmFsdWUpCiB7Ci0gICAgcmV0dXJuIF9OUE5fU2V0UHJv
cGVydHkoaWQsIG9iaiwgaWRlbnRpZmllciwgdmFyaWFudCk7CisgICAgcmV0dXJuIF9OUE5fU2V0
UHJvcGVydHkobnBwLCBvYmplY3QsIGlkZW50aWZpZXIsIHZhbHVlKTsKIH0KIAotdm9pZCBXZWJC
aW5kaW5nczo6dW5yZWdpc3Rlck9iamVjdChOUE9iamVjdCogbnBPYmplY3QpCit2b2lkIFdlYkJp
bmRpbmdzOjp1bnJlZ2lzdGVyT2JqZWN0KE5QT2JqZWN0KiBvYmplY3QpCiB7CiAjaWYgVVNFKFY4
KQotICAgIF9OUE5fVW5yZWdpc3Rlck9iamVjdChucE9iamVjdCk7CisgICAgX05QTl9VbnJlZ2lz
dGVyT2JqZWN0KG9iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAtMTg1LDQ1ICsxODUsNDUgQEAgTlBV
VEY4KiBXZWJCaW5kaW5nczo6dXRmOEZyb21JZGVudGlmaWVyKE5QSWRlbnRpZmllciBpZGVudGlm
aWVyKQogCiB2b2lkIFdlYkJpbmRpbmdzOjpleHRyYWN0SWRlbnRpZmllckRhdGEoY29uc3QgTlBJ
ZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBOUFVURjgqJiBzdHJpbmcsIGludDMyX3QmIG51
bWJlciwgYm9vbCYgaXNTdHJpbmcpCiB7Ci0gICAgUHJpdmF0ZUlkZW50aWZpZXIqIHByaXYgPSBz
dGF0aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllcio+KGlkZW50aWZpZXIpOwotICAgIGlmICghcHJp
dikgeworICAgIFByaXZhdGVJZGVudGlmaWVyKiBkYXRhID0gc3RhdGljX2Nhc3Q8UHJpdmF0ZUlk
ZW50aWZpZXIqPihpZGVudGlmaWVyKTsKKyAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgaXNTdHJp
bmcgPSBmYWxzZTsKICAgICAgICAgbnVtYmVyID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlzU3RyaW5nID0gcHJpdi0+aXNTdHJpbmc7CisgICAgaXNTdHJpbmcgPSBkYXRhLT5p
c1N0cmluZzsKICAgICBpZiAoaXNTdHJpbmcpCi0gICAgICAgIHN0cmluZyA9IHByaXYtPnZhbHVl
LnN0cmluZzsKKyAgICAgICAgc3RyaW5nID0gZGF0YS0+dmFsdWUuc3RyaW5nOwogICAgIGVsc2UK
LSAgICAgICAgbnVtYmVyID0gcHJpdi0+dmFsdWUubnVtYmVyOworICAgICAgICBudW1iZXIgPSBk
YXRhLT52YWx1ZS5udW1iZXI7CiB9CiAKICNpZiBVU0UoVjgpCiAKLXN0YXRpYyBib29sIGdldFJh
bmdlSW1wbChOUE9iamVjdCogbnBvYmosIFdlYlJhbmdlKiByYW5nZSkKK3N0YXRpYyBib29sIGdl
dFJhbmdlSW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJSYW5nZSogd2ViUmFuZ2UpCiB7CiAgICAg
Ly8gRklYTUU6IHdoeSBpcyB0aGlzIG5wb2JqIG5vdCBudWxsIGNoZWNrZWQgaGVyZT8KIAotICAg
IFY4TlBPYmplY3QqIHY4bnBvYmplY3QgPSByZWludGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihu
cG9iaik7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB2OG9iamVjdCh2OG5wb2JqZWN0LT52
OE9iamVjdCk7Ci0gICAgaWYgKCFWOFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRv
bVdyYXBwZXJUeXBlKHY4b2JqZWN0KSkpCisgICAgVjhOUE9iamVjdCogdjhOUE9iamVjdCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG9iamVjdCk7CisgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB2OE9iamVjdCh2OE5QT2JqZWN0LT52OE9iamVjdCk7CisgICAgaWYgKCFWOFJhbmdl
OjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4T2JqZWN0KSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJhbmdlKiBuYXRpdmUgPSBWOFJhbmdlOjp0b05h
dGl2ZSh2OG9iamVjdCk7CisgICAgUmFuZ2UqIG5hdGl2ZSA9IFY4UmFuZ2U6OnRvTmF0aXZlKHY4
T2JqZWN0KTsKICAgICBpZiAoIW5hdGl2ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
KnJhbmdlID0gV2ViUmFuZ2UobmF0aXZlKTsKKyAgICAqd2ViUmFuZ2UgPSBXZWJSYW5nZShuYXRp
dmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBnZXRFbGVtZW50SW1wbChO
UE9iamVjdCogbnBPYmosIFdlYkVsZW1lbnQqIHdlYkVsZW1lbnQpCitzdGF0aWMgYm9vbCBnZXRF
bGVtZW50SW1wbChOUE9iamVjdCogb2JqZWN0LCBXZWJFbGVtZW50KiB3ZWJFbGVtZW50KQogewot
ICAgIGlmICghbnBPYmogfHwgKG5wT2JqLT5fY2xhc3MgIT0gbnBTY3JpcHRPYmplY3RDbGFzcykp
CisgICAgaWYgKCFvYmplY3QgfHwgKG9iamVjdC0+X2NsYXNzICE9IG5wU2NyaXB0T2JqZWN0Q2xh
c3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBWOE5QT2JqZWN0KiB2OE5QT2JqZWN0
ID0gcmVpbnRlcnByZXRfY2FzdDxWOE5QT2JqZWN0Kj4obnBPYmopOworICAgIFY4TlBPYmplY3Qq
IHY4TlBPYmplY3QgPSByZWludGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihvYmplY3QpOwogICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdjhPYmplY3QodjhOUE9iamVjdC0+djhPYmplY3QpOwog
ICAgIEVsZW1lbnQqIG5hdGl2ZSA9IFY4RWxlbWVudDo6dG9OYXRpdmUodjhPYmplY3QpOwogICAg
IGlmICghbmF0aXZlKQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRpYyBOUE9iamVjdCogbWFrZUlu
dEFycmF5SW1wbChjb25zdCBXZWJWZWN0b3I8aW50PiYgZGF0YSkKIHsKICAgICB2ODo6SGFuZGxl
U2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IHJlc3VsdCA9IHY4
OjpBcnJheTo6TmV3KGRhdGEuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRh
dGEuc2l6ZSgpOyBpKyspCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhLnNpemUoKTsg
KytpKQogICAgICAgICByZXN1bHQtPlNldChpLCB2ODo6TnVtYmVyOjpOZXcoZGF0YVtpXSkpOwog
CiAgICAgV2ViQ29yZTo6RE9NV2luZG93KiB3aW5kb3cgPSBXZWJDb3JlOjpWOFByb3h5OjpyZXRy
aWV2ZVdpbmRvdyhXZWJDb3JlOjpWOFByb3h5OjpjdXJyZW50Q29udGV4dCgpKTsKQEAgLTI1Nywx
MCArMjU3LDEwIEBAIHN0YXRpYyBOUE9iamVjdCogbWFrZVN0cmluZ0FycmF5SW1wbChjb25zdCBX
ZWJWZWN0b3I8V2ViU3RyaW5nPiYgZGF0YSkKIAogI2VuZGlmCiAKLWJvb2wgV2ViQmluZGluZ3M6
OmdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2UqIHdlYnJhbmdlKQorYm9vbCBXZWJC
aW5kaW5nczo6Z2V0UmFuZ2UoTlBPYmplY3QqIHJhbmdlLCBXZWJSYW5nZSogd2ViUmFuZ2UpCiB7
CiAjaWYgVVNFKFY4KQotICAgIHJldHVybiBnZXRSYW5nZUltcGwocmFuZ2UsIHdlYnJhbmdlKTsK
KyAgICByZXR1cm4gZ2V0UmFuZ2VJbXBsKHJhbmdlLCB3ZWJSYW5nZSk7CiAjZWxzZQogICAgIC8v
IE5vdCBzdXBwb3J0ZWQgb24gb3RoZXIgcG9ydHMgKEpTQywgZXRjKS4KICAgICByZXR1cm4gZmFs
c2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBXZWJCaW5kaW5nczo6Z2V0RWxlbWVudChOUE9i
amVjdCogZWxlbWVudCwgV2ViRWxlbWVudCogd2ViRWxlbWVudCkKICNlbmRpZgogfQogCi1OUE9i
amVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShjb25zdCBXZWJWZWN0b3I8aW50PiAmIGRh
dGEpCitOUE9iamVjdCogV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShjb25zdCBXZWJWZWN0b3I8
aW50PiYgZGF0YSkKIHsKICNpZiBVU0UoVjgpCiAgICAgcmV0dXJuIG1ha2VJbnRBcnJheUltcGwo
ZGF0YSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>