<?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>36594</bug_id>
          
          <creation_ts>2010-03-25 05:52:57 -0700</creation_ts>
          <short_desc>[Qt] QtScript is missing toObject API</short_desc>
          <delta_ts>2010-05-14 17:08:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>37729</dependson>
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kenneth</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204010</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-03-25 05:52:57 -0700</bug_when>
    <thetext>It should be possible to convert a value to an object using the QtScript API. New methods should be added:
http://doc.trolltech.com/4.6/qscriptengine.html#toObject
http://doc.trolltech.com/4.6/qscriptvalue-obsolete.html#toObject
The second method is obsolete, but it is neccessery to add it for compatibility reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204011</commentid>
    <comment_count>1</comment_count>
      <attachid>51631</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-03-25 05:57:08 -0700</bug_when>
    <thetext>Created attachment 51631
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204017</commentid>
    <comment_count>2</comment_count>
      <attachid>51631</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-03-25 06:34:44 -0700</bug_when>
    <thetext>Comment on attachment 51631
Fix v1

&gt; +QScriptValuePrivate* QScriptValuePrivate::toObject(QScriptEnginePrivate* engine)
&gt; +{
&gt; +    switch (m_state) {
&gt; +    case Invalid:
&gt; +        return new QScriptValuePrivate;
&gt; +    case CString:
&gt; +    case CNumber:
&gt; +    case CBool:
&gt; +    case CSpecial:
&gt; +        assignEngine(engine);
&gt; +        // Now m_state == JSPrimitive so fall-through.

Instead of a comment I&apos;d put an assert there, since it gives you the same information but actually enforces it.

&gt; +    case JSValue:
&gt; +    case JSPrimitive:
&gt; +        {
&gt; +            if (engine != this-&gt;engine()) {
&gt; +                qWarning(&quot;Do not use different engines for the same value&quot;);
&gt; +                // We can solve the problem by using a bounded engine instead of the given one,
&gt; +                // but still it should not happen, this is a bad usage of the QScriptEngine::toObject()
&gt; +            }

There doesn&apos;t seem to be any test for the engine != this-&gt;engine() case.

&gt; +    QScriptValue object = eng.evaluate(&quot;new Object&quot;);
&gt; +    {
&gt; +        QScriptValue tmp = object.toObject();
&gt; +        QCOMPARE(tmp.isObject(), true);
&gt; +    }

There should be a tmp.strictlyEquals(object) check.

There should also be checks to make sure that QScriptEngine::toObject() doesn&apos;t change the type of the value argument, and that QScriptValue::toObject() doesn&apos;t change the type of the this-JS-value. I think those tests would fail with this patch since QScriptValuePrivate::toObject() not only does the conversion but also changes the type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213425</commentid>
    <comment_count>3</comment_count>
      <attachid>53564</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-04-16 14:19:27 -0700</bug_when>
    <thetext>Created attachment 53564
Fix v2

It should be much better now. Kent what do you think about it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214010</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-04-19 07:07:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=53564) [details]
&gt; Fix v2
&gt; 
&gt; It should be much better now. Kent what do you think about it ?

Something to be aware of: In Qt 4.5 and 4.6 we allow using QScriptEngine::toObject() on a value constructed in another engine. It&apos;s not tested in the autotests, but it works (granted, more by &quot;luck&quot; than by design).

Ideally I&apos;d like to have the check, but since it&apos;s a difference in behavior, we should consider it. Should 4.6/4.7 be changed to do the check as well? (Because nobody would ever rely on this behavior, right...? ;) ) Declare the lack-of-check a bug, that is? (I think it is, it&apos;s just that it&apos;s been that way forever...)

If the check remains, the qWarning message at least needs to be qualified, e.g. &quot;QScriptEngine::toObject: cannot convert value created in a different engine&quot;; this also makes the overall wording consistent with similar warnings in other API.

It would be good if you could add QVERIFYs to the tests to ensure that the type of the original value has not changed after the toObject() call (I&apos;ve already added such checks to the tests in Qt).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214808</commentid>
    <comment_count>5</comment_count>
      <attachid>53860</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-04-20 11:46:35 -0700</bug_when>
    <thetext>Created attachment 53860
Fix v2

&gt; Something to be aware of: In Qt 4.5 and 4.6 we allow using
&gt; QScriptEngine::toObject() on a value constructed in another engine. It&apos;s not
&gt; tested in the autotests, but it works (granted, more by &quot;luck&quot; than by design).
&gt; 
&gt; Ideally I&apos;d like to have the check, but since it&apos;s a difference in behavior, we
&gt; should consider it. Should 4.6/4.7 be changed to do the check as well? (Because
&gt; nobody would ever rely on this behavior, right...? ;) ) Declare the
&gt; lack-of-check a bug, that is? (I think it is, it&apos;s just that it&apos;s been that way
&gt; forever...)
Who can rely on this? Of course nobody :-) I think that if it works we should keep it, but not support it. One of the main rules of QtScript is that developers can&apos;t mix engines, values created in one engine couldn&apos;t be transfered to an another and so on...  It make sens for me to add the qWarning to current Qt without forcing the behavior.

&gt; If the check remains, the qWarning message at least needs to be qualified, e.g.
&gt; &quot;QScriptEngine::toObject: cannot convert value created in a different engine&quot;;
&gt; this also makes the overall wording consistent with similar warnings in other
&gt; API.
Changed.

&gt; It would be good if you could add QVERIFYs to the tests to ensure that the type
&gt; of the original value has not changed after the toObject() call (I&apos;ve already
&gt; added such checks to the tests in Qt).
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215198</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-04-21 01:47:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=53860) [details]
&gt; Fix v2

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225298</commentid>
    <comment_count>7</comment_count>
      <attachid>53860</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-13 07:53:06 -0700</bug_when>
    <thetext>Comment on attachment 53860
Fix v2

Nice to see that the new QtScript implementation is moving along nicely :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226065</commentid>
    <comment_count>8</comment_count>
      <attachid>53860</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-14 17:08:20 -0700</bug_when>
    <thetext>Comment on attachment 53860
Fix v2

Clearing flags on attachment: 53860

Committed r59503: &lt;http://trac.webkit.org/changeset/59503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226066</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-14 17:08:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51631</attachid>
            <date>2010-03-25 05:57:08 -0700</date>
            <delta_ts>2010-04-16 14:19:27 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>toObjectV1.diff</filename>
            <type>text/plain</type>
            <size>11974</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA2MTIxMDA1Li4wMjZlNjRlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTAtMDMtMjUgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBRdFNjcmlwdCBpcyBtaXNzaW5nIHRvT2JqZWN0IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY1OTQKKworICAgICAgICAqIHF0L2FwaS9xc2Ny
aXB0ZW5naW5lLmNwcDoKKyAgICAgICAgKFFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0KToKKyAgICAg
ICAgKiBxdC9hcGkvcXNjcmlwdGVuZ2luZS5oOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0dmFs
dWUuY3BwOgorICAgICAgICAoUVNjcmlwdFZhbHVlOjp0b09iamVjdCk6CisgICAgICAgICogcXQv
YXBpL3FzY3JpcHR2YWx1ZS5oOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0dmFsdWVfcC5oOgor
ICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHF0L3Rl
c3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwOgorICAgICAgICAodHN0X1FT
Y3JpcHRFbmdpbmU6OnRvT2JqZWN0KToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUv
dHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b09iamVj
dFNpbXBsZSk6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFs
dWUuaDoKKwogMjAxMC0wMy0yMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChzcGVjdWxhdGl2ZSB3aW5kb3dz
IGJ1aWxkIGZpeCBwYXJ0IElJKS4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0ZW5naW5lLmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNw
cAppbmRleCA2YTNlZGMxLi44ODQzMjlkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdGVuZ2luZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRl
bmdpbmUuY3BwCkBAIC0xMjUsNiArMTI1LDI4IEBAIFFTY3JpcHRTdHJpbmcgUVNjcmlwdEVuZ2lu
ZTo6dG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0cmluZyYgc3RyKQogfQogCiAvKiEKKyAgQ29udmVy
dHMgdGhlIGdpdmVuIFxhIHZhbHVlIHRvIGFuIG9iamVjdCwgaWYgc3VjaCBhIGNvbnZlcnNpb24g
aXMKKyAgcG9zc2libGU7IG90aGVyd2lzZSByZXR1cm5zIGFuIGludmFsaWQgUVNjcmlwdFZhbHVl
LiBUaGUgY29udmVyc2lvbgorICBpcyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dp
bmcgdGFibGU6CisKKyAgICBcdGFibGUKKyAgICBcaGVhZGVyIFxvIElucHV0IFR5cGUgXG8gUmVz
dWx0CisgICAgXHJvdyAgICBcbyBVbmRlZmluZWQgIFxvIEFuIGludmFsaWQgUVNjcmlwdFZhbHVl
LgorICAgIFxyb3cgICAgXG8gTnVsbCAgICAgICBcbyBBbiBpbnZhbGlkIFFTY3JpcHRWYWx1ZS4K
KyAgICBccm93ICAgIFxvIEJvb2xlYW4gICAgXG8gQSBuZXcgQm9vbGVhbiBvYmplY3Qgd2hvc2Ug
aW50ZXJuYWwgdmFsdWUgaXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgYm9vbGVhbi4KKyAgICBc
cm93ICAgIFxvIE51bWJlciAgICAgXG8gQSBuZXcgTnVtYmVyIG9iamVjdCB3aG9zZSBpbnRlcm5h
bCB2YWx1ZSBpcyBzZXQgdG8gdGhlIHZhbHVlIG9mIHRoZSBudW1iZXIuCisgICAgXHJvdyAgICBc
byBTdHJpbmcgICAgIFxvIEEgbmV3IFN0cmluZyBvYmplY3Qgd2hvc2UgaW50ZXJuYWwgdmFsdWUg
aXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nLgorICAgIFxyb3cgICAgXG8gT2JqZWN0
ICAgICBcbyBUaGUgcmVzdWx0IGlzIHRoZSBvYmplY3QgaXRzZWxmIChubyBjb252ZXJzaW9uKS4K
KyAgICBcZW5kdGFibGUKKworICAgIFxzYSBuZXdPYmplY3QoKQorKi8KK1FTY3JpcHRWYWx1ZSBR
U2NyaXB0RW5naW5lOjp0b09iamVjdChjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQoreworICAg
IHJldHVybiBRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0
KHZhbHVlKS0+dG9PYmplY3QoZF9wdHIuZGF0YSgpKSk7Cit9CisKKy8qIQogICBSZXR1cm5zIGEg
UVNjcmlwdFZhbHVlIG9mIHRoZSBwcmltaXRpdmUgdHlwZSBOdWxsLgogCiAgIFxzYSB1bmRlZmlu
ZWRWYWx1ZSgpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2lu
ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaAppbmRleCBlZTA2NmM5
Li44ZTc0MWMxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2lu
ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29sbGVjdEdhcmJhZ2UoKTsKIAogICAgIFFTY3Jp
cHRTdHJpbmcgdG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0cmluZyYgc3RyKTsKKyAgICBRU2NyaXB0
VmFsdWUgdG9PYmplY3QoY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7CiAKICAgICBRU2NyaXB0
VmFsdWUgbnVsbFZhbHVlKCk7CiAgICAgUVNjcmlwdFZhbHVlIHVuZGVmaW5lZFZhbHVlKCk7CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCmluZGV4IDEyN2ZlMDQuLmZhZGUwZTMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCisrKyBi
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCkBAIC00NDYsNiArNDQ2LDE2
IEBAIHF1aW50MTYgUVNjcmlwdFZhbHVlOjp0b1VJbnQxNigpIGNvbnN0CiB9CiAKIC8qIQorICBc
b2Jzb2xldGUKKworICBUaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlOyB1c2UgUVNjcmlwdEVuZ2lu
ZTo6dG9PYmplY3QoKSBpbnN0ZWFkLgorKi8KK1FTY3JpcHRWYWx1ZSBRU2NyaXB0VmFsdWU6OnRv
T2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KGRf
cHRyLT50b09iamVjdCgpKTsKK30KKworLyohCiAgIENhbGxzIHRoaXMgUVNjcmlwdFZhbHVlIGFz
IGEgZnVuY3Rpb24sIHVzaW5nIFxhIHRoaXNPYmplY3QgYXMKICAgdGhlIGB0aGlzJyBvYmplY3Qg
aW4gdGhlIGZ1bmN0aW9uIGNhbGwsIGFuZCBwYXNzaW5nIFxhIGFyZ3MKICAgYXMgYXJndW1lbnRz
IHRvIHRoZSBmdW5jdGlvbi4gUmV0dXJucyB0aGUgdmFsdWUgcmV0dXJuZWQgZnJvbQpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oCmluZGV4IGQ0NWFlZDMuLjE4MmYzMTEgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAg
IHFpbnQzMiB0b0ludDMyKCkgY29uc3Q7CiAgICAgcXVpbnQzMiB0b1VJbnQzMigpIGNvbnN0Owog
ICAgIHF1aW50MTYgdG9VSW50MTYoKSBjb25zdDsKKyAgICBRU2NyaXB0VmFsdWUgdG9PYmplY3Qo
KSBjb25zdDsKIAogICAgIFFTY3JpcHRWYWx1ZSBjYWxsKGNvbnN0IFFTY3JpcHRWYWx1ZSYgdGhp
c09iamVjdCA9IFFTY3JpcHRWYWx1ZSgpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFT
Y3JpcHRWYWx1ZUxpc3QmIGFyZ3MgPSBRU2NyaXB0VmFsdWVMaXN0KCkpOwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCBlNWMyYTgyLi41YzE5M2E1IDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtMTAzLDYgKzEwMyw4IEBAIHB1YmxpYzoK
ICAgICBpbmxpbmUgcWludDMyIHRvSW50MzIoKSBjb25zdDsKICAgICBpbmxpbmUgcXVpbnQzMiB0
b1VJbnQzMigpIGNvbnN0OwogICAgIGlubGluZSBxdWludDE2IHRvVUludDE2KCkgY29uc3Q7Cisg
ICAgaW5saW5lIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHRvT2JqZWN0KFFTY3JpcHRFbmdpbmVQcml2
YXRlKiBlbmdpbmUpOworICAgIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiB0b09iamVjdCgp
OwogCiAgICAgaW5saW5lIGJvb2wgZXF1YWxzKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKTsK
ICAgICBpbmxpbmUgYm9vbCBzdHJpY3RseUVxdWFscyhjb25zdCBRU2NyaXB0VmFsdWVQcml2YXRl
KiBvdGhlcikgY29uc3Q7CkBAIC01NTQsNiArNTU2LDUxIEBAIHF1aW50MTYgUVNjcmlwdFZhbHVl
UHJpdmF0ZTo6dG9VSW50MTYoKSBjb25zdAogICAgIHJldHVybiB0b0ludDMyKCk7CiB9CiAKK1FT
Y3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KFFTY3JpcHRF
bmdpbmVQcml2YXRlKiBlbmdpbmUpCit7CisgICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2Fz
ZSBJbnZhbGlkOgorICAgICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGU7CisgICAg
Y2FzZSBDU3RyaW5nOgorICAgIGNhc2UgQ051bWJlcjoKKyAgICBjYXNlIENCb29sOgorICAgIGNh
c2UgQ1NwZWNpYWw6CisgICAgICAgIGFzc2lnbkVuZ2luZShlbmdpbmUpOworICAgICAgICAvLyBO
b3cgbV9zdGF0ZSA9PSBKU1ByaW1pdGl2ZSBzbyBmYWxsLXRocm91Z2guCisgICAgY2FzZSBKU1Zh
bHVlOgorICAgIGNhc2UgSlNQcmltaXRpdmU6CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChl
bmdpbmUgIT0gdGhpcy0+ZW5naW5lKCkpIHsKKyAgICAgICAgICAgICAgICBxV2FybmluZygiRG8g
bm90IHVzZSBkaWZmZXJlbnQgZW5naW5lcyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAg
ICAgICAgICAvLyBXZSBjYW4gc29sdmUgdGhlIHByb2JsZW0gYnkgdXNpbmcgYSBib3VuZGVkIGVu
Z2luZSBpbnN0ZWFkIG9mIHRoZSBnaXZlbiBvbmUsCisgICAgICAgICAgICAgICAgLy8gYnV0IHN0
aWxsIGl0IHNob3VsZCBub3QgaGFwcGVuLCB0aGlzIGlzIGEgYmFkIHVzYWdlIG9mIHRoZSBRU2Ny
aXB0RW5naW5lOjp0b09iamVjdCgpCisgICAgICAgICAgICB9CisgICAgICAgICAgICBKU09iamVj
dFJlZiBvYmogPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCgpLCB2YWx1ZSgpLCAvKiBleGNlcHRp
b25zICovIDApOworICAgICAgICAgICAgaWYgKCFvYmopCisgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOworICAgICAgICAgICAgbV9zdGF0ZSA9IEpTT2JqZWN0
OworICAgICAgICAgICAgbV9vYmplY3QgPSBvYmo7CisgICAgICAgICAgICAvLyBGYWxsLXRocm91
Z2guCisgICAgICAgIH0KKyAgICBjYXNlIEpTT2JqZWN0OgorICAgICAgICByZXR1cm4gdGhpczsK
KyAgICB9CisgICAgUV9BU1NFUlRfWChmYWxzZSwgInRvT2JqZWN0KGVuZ2luZSkiLCAiTm90IGFs
bCBzdGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBwcmV2aW91cyBzd2l0Y2ggc3RhdGVtZW50LiIp
OworICAgIHJldHVybiAwOyAvLyBBdm9pZCBjb21waWxlciB3YXJuaW5nLgorfQorCisvKiEKKyAg
VGhpcyBtZXRob2QgaXMgY3JlYXRlZCBvbmx5IGZvciBRU2NyaXB0VmFsdWU6OnRvT2JqZWN0KCkg
cHVycG9zZSB3aGljaCBpcyBvYnNvbGV0ZS4KKyAgXGludGVybmFsCisgKi8KK1FTY3JpcHRWYWx1
ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KCkKK3sKKyAgICBpZiAoaXNK
U0Jhc2VkKCkpCisgICAgICAgIHJldHVybiB0b09iamVjdChtX2VuZ2luZS5kYXRhKCkpOworCisg
ICAgLy8gV2l0aG91dCBhbiBlbmdpbmUgdGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvLgorICAg
IHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZTsKK30KIAogYm9vbCBRU2NyaXB0VmFsdWVQ
cml2YXRlOjplcXVhbHMoUVNjcmlwdFZhbHVlUHJpdmF0ZSogb3RoZXIpCiB7CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5l
LmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRl
bmdpbmUuY3BwCmluZGV4IDI2MzI3OTYuLjExNGVjNDggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3Bw
CkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBldmFsdWF0ZVByb2dy
YW0oKTsKICAgICB2b2lkIGNoZWNrU3ludGF4X2RhdGEoKTsKICAgICB2b2lkIGNoZWNrU3ludGF4
KCk7CisgICAgdm9pZCB0b09iamVjdCgpOwogfTsKIAogLyogRXZhbHVhdGluZyBhIHNjcmlwdCB0
aGF0IHRocm93IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gc2hvdWxkIHJldHVybiBhbiBpbnZhbGlk
IHZhbHVlLiAqLwpAQCAtMjcwLDYgKzI3MSw0OCBAQCB2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjpj
aGVja1N5bnRheCgpCiAgICAgUUNPTVBBUkUocmVzdWx0LmVycm9yTWVzc2FnZSgpLCBlcnJvck1l
c3NhZ2UpOwogfQogCit2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjp0b09iamVjdCgpCit7CisgICAg
UVNjcmlwdEVuZ2luZSBlbmc7CisgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KGVuZy51bmRlZmlu
ZWRWYWx1ZSgpKS5pc1ZhbGlkKCkpOworICAgIFFWRVJJRlkoIWVuZy50b09iamVjdChlbmcubnVs
bFZhbHVlKCkpLmlzVmFsaWQoKSk7CisgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KFFTY3JpcHRW
YWx1ZSgpKS5pc1ZhbGlkKCkpOworCisgICAgUVNjcmlwdFZhbHVlIGZhbHNrdChmYWxzZSk7Cisg
ICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0KGZhbHNrdCk7Cisg
ICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICBRQ09NUEFSRSh0bXAudG9O
dW1iZXIoKSwgZmFsc2t0LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3JpcHRWYWx1ZSBz
YW50KHRydWUpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IGVuZy50b09iamVj
dChzYW50KTsKKyAgICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3QoKSk7CisgICAgICAgIFFDT01Q
QVJFKHRtcC50b051bWJlcigpLCBzYW50LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3Jp
cHRWYWx1ZSBudW1iZXIoMTIzLjApOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9
IGVuZy50b09iamVjdChudW1iZXIpOworICAgICAgICBRVkVSSUZZKHRtcC5pc09iamVjdCgpKTsK
KyAgICAgICAgUUNPTVBBUkUodG1wLnRvTnVtYmVyKCksIG51bWJlci50b051bWJlcigpKTsKKyAg
ICB9CisKKyAgICBRU2NyaXB0VmFsdWUgc3RyID0gUVNjcmlwdFZhbHVlKCZlbmcsIFFTdHJpbmco
ImNpYW8iKSk7CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0
KHN0cik7CisgICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICBRQ09NUEFS
RSh0bXAudG9TdHJpbmcoKSwgc3RyLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIFFTY3JpcHRW
YWx1ZSBvYmplY3QgPSBlbmcuZXZhbHVhdGUoIm5ldyBPYmplY3QiKTsKKyAgICB7CisgICAgICAg
IFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3Qob2JqZWN0KTsKKyAgICAgICAgUVZFUklG
WSh0bXAuaXNPYmplY3QoKSk7CisgICAgICAgIFFWRVJJRlkodG1wLnN0cmljdGx5RXF1YWxzKG9i
amVjdCkpOworICAgIH0KK30KIAogUVRFU1RfTUFJTih0c3RfUVNjcmlwdEVuZ2luZSkKICNpbmNs
dWRlICJ0c3RfcXNjcmlwdGVuZ2luZS5tb2MiCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9x
dC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKaW5kZXggODJmMDkw
MS4uNDEyMTE4MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcApAQCAtNDMxLDUgKzQzMSw5NCBAQCB2b2lk
IHRzdF9RU2NyaXB0VmFsdWU6OmNhbGwoKQogICAgIFFWRVJJRlkoaW5jci5jYWxsKCkuaXNWYWxp
ZCgpKTsgLy8gRXhjZXB0aW9uLgogfQogCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvT2JqZWN0
U2ltcGxlKCkKK3sKKyAgICBRU2NyaXB0RW5naW5lIGVuZzsKKworICAgIFFTY3JpcHRWYWx1ZSB1
bmRlZmluZWQgPSBlbmcudW5kZWZpbmVkVmFsdWUoKTsKKyAgICBRQ09NUEFSRSh1bmRlZmluZWQu
dG9PYmplY3QoKS5pc1ZhbGlkKCksIGZhbHNlKTsKKyAgICBRU2NyaXB0VmFsdWUgbnVsbCA9IGVu
Zy5udWxsVmFsdWUoKTsKKyAgICBRQ09NUEFSRShudWxsLnRvT2JqZWN0KCkuaXNWYWxpZCgpLCBm
YWxzZSk7CisgICAgUUNPTVBBUkUoUVNjcmlwdFZhbHVlKCkudG9PYmplY3QoKS5pc1ZhbGlkKCks
IGZhbHNlKTsKKworICAgIFFTY3JpcHRWYWx1ZSBmYWxza3QgPSBRU2NyaXB0VmFsdWUoJmVuZywg
ZmFsc2UpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IGZhbHNrdC50b09iamVj
dCgpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAgICAgIFFD
T01QQVJFKHRtcC50b051bWJlcigpLCBmYWxza3QudG9OdW1iZXIoKSk7CisgICAgfQorCisgICAg
UVNjcmlwdFZhbHVlIHNhbnQgPSBRU2NyaXB0VmFsdWUoJmVuZywgdHJ1ZSk7CisgICAgeworICAg
ICAgICBRU2NyaXB0VmFsdWUgdG1wID0gc2FudC50b09iamVjdCgpOworICAgICAgICBRQ09NUEFS
RSh0bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKHRtcC50b051bWJlcigp
LCBzYW50LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3JpcHRWYWx1ZSBudW1iZXIgPSBR
U2NyaXB0VmFsdWUoJmVuZywgMTIzLjApOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRt
cCA9IG51bWJlci50b09iamVjdCgpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmplY3QoKSwg
dHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKHRtcC50b051bWJlcigpLCBudW1iZXIudG9OdW1iZXIo
KSk7CisgICAgfQorCisgICAgUVNjcmlwdFZhbHVlIHN0ciA9IFFTY3JpcHRWYWx1ZSgmZW5nLCBR
U3RyaW5nKCJjaWFvIikpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IHN0ci50
b09iamVjdCgpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAg
ICAgIFFDT01QQVJFKHRtcC50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisK
KyAgICBRU2NyaXB0VmFsdWUgb2JqZWN0ID0gZW5nLmV2YWx1YXRlKCJuZXcgT2JqZWN0Iik7Cisg
ICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gb2JqZWN0LnRvT2JqZWN0KCk7CisgICAg
ICAgIFFDT01QQVJFKHRtcC5pc09iamVjdCgpLCB0cnVlKTsKKyAgICB9CisKKworICAgIC8vIFYy
IGNvbnN0cnVjdG9yczogaW4gdGhpcyBjYXNlLCB5b3UgaGF2ZSB0byB1c2UgUVNjcmlwdEVuZ2lu
ZTo6dG9PYmplY3QoKQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHVuZGVmaW5lZCA9IFFT
Y3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKTsKKyAgICAgICAgUVZFUklG
WSghdW5kZWZpbmVkLnRvT2JqZWN0KCkuaXNWYWxpZCgpKTsKKyAgICAgICAgUVZFUklGWSghZW5n
LnRvT2JqZWN0KHVuZGVmaW5lZCkuaXNWYWxpZCgpKTsKKworICAgICAgICBRU2NyaXB0VmFsdWUg
bnVsbCA9IFFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSk7CisgICAgICAgIFFW
RVJJRlkoIW51bGwudG9PYmplY3QoKS5pc1ZhbGlkKCkpOworICAgICAgICBRVkVSSUZZKCFlbmcu
dG9PYmplY3QobnVsbCkuaXNWYWxpZCgpKTsKKworICAgICAgICBRU2NyaXB0VmFsdWUgZmFsc2t0
ID0gUVNjcmlwdFZhbHVlKGZhbHNlKTsKKyAgICAgICAgUVZFUklGWSghZmFsc2t0LnRvT2JqZWN0
KCkuaXNWYWxpZCgpKTsKKyAgICAgICAgeworICAgICAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9
IGVuZy50b09iamVjdChmYWxza3QpOworICAgICAgICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3Qo
KSk7CisgICAgICAgICAgICBRVkVSSUZZKHRtcC50b0Jvb2woKSk7CisgICAgICAgIH0KKworICAg
ICAgICBRU2NyaXB0VmFsdWUgc2FudCA9IFFTY3JpcHRWYWx1ZSh0cnVlKTsKKyAgICAgICAgUVZF
UklGWSghc2FudC50b09iamVjdCgpLmlzVmFsaWQoKSk7CisgICAgICAgIHsKKyAgICAgICAgICAg
IFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3Qoc2FudCk7CisgICAgICAgICAgICBRVkVS
SUZZKHRtcC5pc09iamVjdCgpKTsKKyAgICAgICAgICAgIFFWRVJJRlkodG1wLnRvQm9vbCgpKTsK
KyAgICAgICAgfQorCisgICAgICAgIFFTY3JpcHRWYWx1ZSBudW1iZXIgPSBRU2NyaXB0VmFsdWUo
MTIzLjApOworICAgICAgICBRVkVSSUZZKCFudW1iZXIudG9PYmplY3QoKS5pc1ZhbGlkKCkpOwor
ICAgICAgICB7CisgICAgICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0KG51
bWJlcik7CisgICAgICAgICAgICBRVkVSSUZZKHRtcC5pc09iamVjdCgpKTsKKyAgICAgICAgICAg
IFFDT01QQVJFKHRtcC50b0ludDMyKCksIG51bWJlci50b0ludDMyKCkpOworICAgICAgICB9CisK
KyAgICAgICAgUVNjcmlwdFZhbHVlIHN0ciA9IFFTY3JpcHRWYWx1ZShRU3RyaW5nOjpmcm9tTGF0
aW4xKCJjaWFvIikpOworICAgICAgICBRVkVSSUZZKCFzdHIudG9PYmplY3QoKS5pc1ZhbGlkKCkp
OworICAgICAgICB7CisgICAgICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0
KHN0cik7CisgICAgICAgICAgICBRVkVSSUZZKHRtcC5pc09iamVjdCgpKTsKKyAgICAgICAgICAg
IFFDT01QQVJFKHRtcC50b1N0cmluZygpLCBRU3RyaW5nOjpmcm9tTGF0aW4xKCJjaWFvIikpOwor
ICAgICAgICB9CisgICAgfQorfQogCiBRVEVTVF9NQUlOKHRzdF9RU2NyaXB0VmFsdWUpCmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0
dmFsdWUuaAppbmRleCAyODE1NGE5Li4yN2Q1Zjk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNvbnN0cnVjdG9ycygpOwogICAgIHZv
aWQgY2FsbCgpOwogICAgIHZvaWQgY3RvcigpOworICAgIHZvaWQgdG9PYmplY3RTaW1wbGUoKTsK
IAogICAgIC8vIEdlbmVyYXRlZCB0ZXN0IGZ1bmN0aW9ucy4KICAgICB2b2lkIGlzQm9vbF9kYXRh
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53564</attachid>
            <date>2010-04-16 14:19:27 -0700</date>
            <delta_ts>2010-04-20 11:46:35 -0700</delta_ts>
            <desc>Fix v2</desc>
            <filename>toobject.diff</filename>
            <type>text/plain</type>
            <size>15261</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkNTYyMWEzLi5jMzNmNGViIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzAg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBJbXBs
ZW1lbnRhdGlvbiBvZiBRdFNjcmlwdCBBUEkgdGhhdCBwcm92aWRlIG1ldGhvZCB0byBjb252ZXJ0
IGEgdmFsdWUgdG8gYW4gb2JqZWN0LgorCisgICAgICAgIFtRdF0gUXRTY3JpcHQgaXMgbWlzc2lu
ZyB0b09iamVjdCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM2NTk0CisKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHA6CisgICAg
ICAgIChRU2NyaXB0RW5naW5lOjp0b09iamVjdCk6CisgICAgICAgICogcXQvYXBpL3FzY3JpcHRl
bmdpbmUuaDoKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlLmNwcDoKKyAgICAgICAgKFFT
Y3JpcHRWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0dmFsdWUuaDoK
KyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1
ZVByaXZhdGU6OnRvT2JqZWN0KToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3Rz
dF9xc2NyaXB0ZW5naW5lLmNwcDoKKyAgICAgICAgKHRzdF9RU2NyaXB0RW5naW5lOjp0b09iamVj
dCk6CisgICAgICAgICh0c3RfUVNjcmlwdEVuZ2luZTo6dG9PYmplY3RUd29FbmdpbmVzKToKKyAg
ICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAg
ICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b09iamVjdFNpbXBsZSk6CisgICAgICAgICogcXQvdGVz
dHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaDoKKworMjAxMC0wNC0xNiAgSmVkcnpl
aiBOb3dhY2tpICA8amVkcnplai5ub3dhY2tpQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBRdFNjcmlwdCBpbXBsZW1lbnRhdGlvbiBp
cyBwbGFjZWQgaW4gYSBwcml2YXRlIGNsYXNzZXMuIFByaXZhdGUgY2xhc3NlcyBzaG91bGQKICAg
ICAgICAgdXNlIG9ubHkgb3RoZXIgcHJpdmF0ZSBjbGFzc2VzLiBRU2NyaXB0VmFsdWVQcml2YXRl
IGJyZWFrcyB0aGlzIHJ1bGUsIHdoaWNoCiAgICAgICAgIGlzIHdyb25nLiBRU2NyaXB0VmFsdWVQ
cml2YXRlIGNvbnN0cnVjdG9yIHNob3VsZG4ndCB0YWtlIFFTY3JpcHRFbmdpbmUgcG9pbnRlcgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwCmluZGV4IGQ0OWM1NzguLmRjMDhj
ZDkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNwcAor
KysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKQEAgLTE1MSw2ICsx
NTEsMjggQEAgUVNjcmlwdFN0cmluZyBRU2NyaXB0RW5naW5lOjp0b1N0cmluZ0hhbmRsZShjb25z
dCBRU3RyaW5nJiBzdHIpCiB9CiAKIC8qIQorICBDb252ZXJ0cyB0aGUgZ2l2ZW4gXGEgdmFsdWUg
dG8gYW4gb2JqZWN0LCBpZiBzdWNoIGEgY29udmVyc2lvbiBpcworICBwb3NzaWJsZTsgb3RoZXJ3
aXNlIHJldHVybnMgYW4gaW52YWxpZCBRU2NyaXB0VmFsdWUuIFRoZSBjb252ZXJzaW9uCisgIGlz
IHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyB0YWJsZToKKworICAgIFx0YWJs
ZQorICAgIFxoZWFkZXIgXG8gSW5wdXQgVHlwZSBcbyBSZXN1bHQKKyAgICBccm93ICAgIFxvIFVu
ZGVmaW5lZCAgXG8gQW4gaW52YWxpZCBRU2NyaXB0VmFsdWUuCisgICAgXHJvdyAgICBcbyBOdWxs
ICAgICAgIFxvIEFuIGludmFsaWQgUVNjcmlwdFZhbHVlLgorICAgIFxyb3cgICAgXG8gQm9vbGVh
biAgICBcbyBBIG5ldyBCb29sZWFuIG9iamVjdCB3aG9zZSBpbnRlcm5hbCB2YWx1ZSBpcyBzZXQg
dG8gdGhlIHZhbHVlIG9mIHRoZSBib29sZWFuLgorICAgIFxyb3cgICAgXG8gTnVtYmVyICAgICBc
byBBIG5ldyBOdW1iZXIgb2JqZWN0IHdob3NlIGludGVybmFsIHZhbHVlIGlzIHNldCB0byB0aGUg
dmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICBccm93ICAgIFxvIFN0cmluZyAgICAgXG8gQSBuZXcg
U3RyaW5nIG9iamVjdCB3aG9zZSBpbnRlcm5hbCB2YWx1ZSBpcyBzZXQgdG8gdGhlIHZhbHVlIG9m
IHRoZSBzdHJpbmcuCisgICAgXHJvdyAgICBcbyBPYmplY3QgICAgIFxvIFRoZSByZXN1bHQgaXMg
dGhlIG9iamVjdCBpdHNlbGYgKG5vIGNvbnZlcnNpb24pLgorICAgIFxlbmR0YWJsZQorCisgICAg
XHNhIG5ld09iamVjdCgpCisqLworUVNjcmlwdFZhbHVlIFFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0
KGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit7CisgICAgcmV0dXJuIFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OmdldChRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQodmFsdWUpLT50b09iamVjdChkX3B0
ci5kYXRhKCkpKTsKK30KKworLyohCiAgIFJldHVybnMgYSBRU2NyaXB0VmFsdWUgb2YgdGhlIHBy
aW1pdGl2ZSB0eXBlIE51bGwuCiAKICAgXHNhIHVuZGVmaW5lZFZhbHVlKCkKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGVuZ2luZS5oCmluZGV4IGUxMDg4OGQuLmUxOWViZGEgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZXBvcnRBZGRpdGlvbmFsTWVtb3J5Q29zdChpbnQgY29zdCk7CiAKICAgICBRU2NyaXB0
U3RyaW5nIHRvU3RyaW5nSGFuZGxlKGNvbnN0IFFTdHJpbmcmIHN0cik7CisgICAgUVNjcmlwdFZh
bHVlIHRvT2JqZWN0KGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpOwogCiAgICAgUVNjcmlwdFZh
bHVlIG51bGxWYWx1ZSgpOwogICAgIFFTY3JpcHRWYWx1ZSB1bmRlZmluZWRWYWx1ZSgpOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2Ny
aXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcAppbmRleCBlZGYwM2VlLi5hYWZlYzQ4IDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcAorKysgYi9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcApAQCAtNDY3LDYgKzQ2NywxNiBA
QCBxdWludDE2IFFTY3JpcHRWYWx1ZTo6dG9VSW50MTYoKSBjb25zdAogfQogCiAvKiEKKyAgXG9i
c29sZXRlCisKKyAgVGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZTsgdXNlIFFTY3JpcHRFbmdpbmU6
OnRvT2JqZWN0KCkgaW5zdGVhZC4KKyovCitRU2NyaXB0VmFsdWUgUVNjcmlwdFZhbHVlOjp0b09i
amVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmdldChkX3B0
ci0+dG9PYmplY3QoKSk7Cit9CisKKy8qIQogICBDYWxscyB0aGlzIFFTY3JpcHRWYWx1ZSBhcyBh
IGZ1bmN0aW9uLCB1c2luZyBcYSB0aGlzT2JqZWN0IGFzCiAgIHRoZSBgdGhpcycgb2JqZWN0IGlu
IHRoZSBmdW5jdGlvbiBjYWxsLCBhbmQgcGFzc2luZyBcYSBhcmdzCiAgIGFzIGFyZ3VtZW50cyB0
byB0aGUgZnVuY3Rpb24uIFJldHVybnMgdGhlIHZhbHVlIHJldHVybmVkIGZyb20KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaCBiL0phdmFTY3JpcHRDb3Jl
L3F0L2FwaS9xc2NyaXB0dmFsdWUuaAppbmRleCBkNDVhZWQzLi4xODJmMzExIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICBx
aW50MzIgdG9JbnQzMigpIGNvbnN0OwogICAgIHF1aW50MzIgdG9VSW50MzIoKSBjb25zdDsKICAg
ICBxdWludDE2IHRvVUludDE2KCkgY29uc3Q7CisgICAgUVNjcmlwdFZhbHVlIHRvT2JqZWN0KCkg
Y29uc3Q7CiAKICAgICBRU2NyaXB0VmFsdWUgY2FsbChjb25zdCBRU2NyaXB0VmFsdWUmIHRoaXNP
YmplY3QgPSBRU2NyaXB0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU2Ny
aXB0VmFsdWVMaXN0JiBhcmdzID0gUVNjcmlwdFZhbHVlTGlzdCgpKTsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oIGIvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHR2YWx1ZV9wLmgKaW5kZXggYjU4ODdjYy4uMzA0ZDE4OCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKQEAgLTEwMyw2ICsxMDMsOCBAQCBwdWJsaWM6CiAg
ICAgaW5saW5lIHFpbnQzMiB0b0ludDMyKCkgY29uc3Q7CiAgICAgaW5saW5lIHF1aW50MzIgdG9V
SW50MzIoKSBjb25zdDsKICAgICBpbmxpbmUgcXVpbnQxNiB0b1VJbnQxNigpIGNvbnN0OworICAg
IGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiB0b09iamVjdChRU2NyaXB0RW5naW5lUHJpdmF0
ZSogZW5naW5lKTsKKyAgICBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogdG9PYmplY3QoKTsK
IAogICAgIGlubGluZSBib29sIGVxdWFscyhRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcik7CiAg
ICAgaW5saW5lIGJvb2wgc3RyaWN0bHlFcXVhbHMoY29uc3QgUVNjcmlwdFZhbHVlUHJpdmF0ZSog
b3RoZXIpIGNvbnN0OwpAQCAtNTIxLDYgKzUyMyw3NSBAQCBxdWludDE2IFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OnRvVUludDE2KCkgY29uc3QKICAgICByZXR1cm4gdG9JbnQzMigpOwogfQogCisvKiEK
KyAgQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyB2YWx1ZSBhbmQgY29udmVydHMgaXQgdG8gYW4gb2Jq
ZWN0LiBJZiB0aGlzIHZhbHVlIGlzIGFuIG9iamVjdAorICB0aGVuIHBvaW50ZXIgdG8gdGhpcyB2
YWx1ZSB3aWxsIGJlIHJldHVybmVkLgorICBcYXR0ZW50aW9uIGl0IHNob3VsZCBub3QgaGFwcGVu
IGJ1dCBpZiB0aGlzIHZhbHVlIGlzIGJvdW5kZWQgdG8gYSBkaWZmZXJlbnQgZW5naW5lIHRoYXQg
dGhlIGdpdmVuLCB0aGUgZmlyc3QKKyAgb25lIHdpbGwgYmUgdXNlZC4KKyAgXGludGVybmFsCisg
ICovCitRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b09iamVjdChR
U2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKQoreworICAgIHN3aXRjaCAobV9zdGF0ZSkgewor
ICAgIGNhc2UgSW52YWxpZDoKKyAgICBjYXNlIENTcGVjaWFsOgorICAgICAgICByZXR1cm4gbmV3
IFFTY3JpcHRWYWx1ZVByaXZhdGU7CisgICAgY2FzZSBDU3RyaW5nOgorICAgICAgICB7CisgICAg
ICAgICAgICAvLyBFeGNlcHRpb24gY2FuJ3Qgb2NjdXIgaGVyZS4KKyAgICAgICAgICAgIEpTT2Jq
ZWN0UmVmIG9iamVjdCA9IEpTVmFsdWVUb09iamVjdChlbmdpbmUtPmNvbnRleHQoKSwgZW5naW5l
LT5tYWtlSlNWYWx1ZShtX3N0cmluZyksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAgICAgICAg
IFFfQVNTRVJUKG9iamVjdCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVBy
aXZhdGUoZW5naW5lLCBvYmplY3QsIG9iamVjdCk7CisgICAgICAgIH0KKyAgICBjYXNlIENOdW1i
ZXI6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEV4Y2VwdGlvbiBjYW4ndCBvY2N1ciBoZXJl
LgorICAgICAgICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGVuZ2lu
ZS0+Y29udGV4dCgpLCBlbmdpbmUtPm1ha2VKU1ZhbHVlKG1fbnVtYmVyKSwgLyogZXhjZXB0aW9u
ICovIDApOworICAgICAgICAgICAgUV9BU1NFUlQob2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZShlbmdpbmUsIG9iamVjdCwgb2JqZWN0KTsKKyAgICAg
ICAgfQorICAgIGNhc2UgQ0Jvb2w6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEV4Y2VwdGlv
biBjYW4ndCBvY2N1cmUgaGVyZS4KKyAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9IEpT
VmFsdWVUb09iamVjdChlbmdpbmUtPmNvbnRleHQoKSwgZW5naW5lLT5tYWtlSlNWYWx1ZShzdGF0
aWNfY2FzdDxib29sPihtX251bWJlcikpLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAgICAgICAg
ICBRX0FTU0VSVChvYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQ
cml2YXRlKGVuZ2luZSwgb2JqZWN0LCBvYmplY3QpOworICAgICAgICB9CisgICAgY2FzZSBKU1Zh
bHVlOgorICAgICAgICBpZiAocmVmaW5lZEpTVmFsdWUoKSAhPSBKU1ByaW1pdGl2ZSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAvLyBGYWxsLXRocm91Z2guCisgICAgY2FzZSBKU1ByaW1p
dGl2ZToKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVuZ2luZSAhPSB0aGlzLT5lbmdpbmUo
KSkKKyAgICAgICAgICAgICAgICBxV2FybmluZygiRG8gbm90IHVzZSBkaWZmZXJlbnQgZW5naW5l
cyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9
IEpTVmFsdWVUb09iamVjdChjb250ZXh0KCksIHZhbHVlKCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsK
KyAgICAgICAgICAgIGlmIChvYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2Ny
aXB0VmFsdWVQcml2YXRlKG1fZW5naW5lLmNvbnN0RGF0YSgpLCBvYmplY3QpOworICAgICAgICB9
CisgICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZTsKKyAgICBjYXNlIEpTT2Jq
ZWN0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoZW5naW5lICE9IHRoaXMtPmVu
Z2luZSgpKQorICAgICAgICBxV2FybmluZygiRG8gbm90IHVzZSBkaWZmZXJlbnQgZW5naW5lcyBm
b3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICBRX0FTU0VSVChtX3N0YXRlID09IEpTT2JqZWN0KTsK
KyAgICByZXR1cm4gdGhpczsKK30KKworLyohCisgIFRoaXMgbWV0aG9kIGlzIGNyZWF0ZWQgb25s
eSBmb3IgUVNjcmlwdFZhbHVlOjp0b09iamVjdCgpIHB1cnBvc2Ugd2hpY2ggaXMgb2Jzb2xldGUu
CisgIFxpbnRlcm5hbAorICovCitRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2
YXRlOjp0b09iamVjdCgpCit7CisgICAgaWYgKGlzSlNCYXNlZCgpKQorICAgICAgICByZXR1cm4g
dG9PYmplY3QobV9lbmdpbmUuZGF0YSgpKTsKKworICAgIC8vIFdpdGhvdXQgYW4gZW5naW5lIHRo
ZXJlIGlzIG5vdCBtdWNoIHdlIGNhbiBkby4KKyAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVBy
aXZhdGU7Cit9CiAKIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6ZXF1YWxzKFFTY3JpcHRWYWx1
ZVByaXZhdGUqIG90aGVyKQogewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMv
cXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC90
ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcAppbmRleCAxZWM5YWQzLi4y
YzA0ZjA2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5l
L3RzdF9xc2NyaXB0ZW5naW5lLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2Ny
aXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcApAQCAtNDQsNiArNDQsOCBAQCBwcml2YXRl
IHNsb3RzOgogICAgIHZvaWQgZXZhbHVhdGVQcm9ncmFtKCk7CiAgICAgdm9pZCBjaGVja1N5bnRh
eF9kYXRhKCk7CiAgICAgdm9pZCBjaGVja1N5bnRheCgpOworICAgIHZvaWQgdG9PYmplY3QoKTsK
KyAgICB2b2lkIHRvT2JqZWN0VHdvRW5naW5lcygpOwogfTsKIAogLyogRXZhbHVhdGluZyBhIHNj
cmlwdCB0aGF0IHRocm93IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gc2hvdWxkIHJldHVybiBhbiBp
bnZhbGlkIHZhbHVlLiAqLwpAQCAtMzAzLDYgKzMwNSw4NCBAQCB2b2lkIHRzdF9RU2NyaXB0RW5n
aW5lOjpjaGVja1N5bnRheCgpCiAgICAgUUNPTVBBUkUocmVzdWx0LmVycm9yTWVzc2FnZSgpLCBl
cnJvck1lc3NhZ2UpOwogfQogCit2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjp0b09iamVjdCgpCit7
CisgICAgUVNjcmlwdEVuZ2luZSBlbmc7CisgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KGVuZy51
bmRlZmluZWRWYWx1ZSgpKS5pc1ZhbGlkKCkpOworICAgIFFWRVJJRlkoIWVuZy50b09iamVjdChl
bmcubnVsbFZhbHVlKCkpLmlzVmFsaWQoKSk7CisgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KFFT
Y3JpcHRWYWx1ZSgpKS5pc1ZhbGlkKCkpOworCisgICAgUVNjcmlwdFZhbHVlIGZhbHNrdChmYWxz
ZSk7CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0KGZhbHNr
dCk7CisgICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICBRQ09NUEFSRSh0
bXAudG9OdW1iZXIoKSwgZmFsc2t0LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3JpcHRW
YWx1ZSBzYW50KHRydWUpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IGVuZy50
b09iamVjdChzYW50KTsKKyAgICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3QoKSk7CisgICAgICAg
IFFDT01QQVJFKHRtcC50b051bWJlcigpLCBzYW50LnRvTnVtYmVyKCkpOworICAgIH0KKworICAg
IFFTY3JpcHRWYWx1ZSBudW1iZXIoMTIzLjApOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVl
IHRtcCA9IGVuZy50b09iamVjdChudW1iZXIpOworICAgICAgICBRVkVSSUZZKHRtcC5pc09iamVj
dCgpKTsKKyAgICAgICAgUUNPTVBBUkUodG1wLnRvTnVtYmVyKCksIG51bWJlci50b051bWJlcigp
KTsKKyAgICB9CisKKyAgICBRU2NyaXB0VmFsdWUgc3RyID0gUVNjcmlwdFZhbHVlKCZlbmcsIFFT
dHJpbmcoImNpYW8iKSk7CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRv
T2JqZWN0KHN0cik7CisgICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICBR
Q09NUEFSRSh0bXAudG9TdHJpbmcoKSwgc3RyLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIFFT
Y3JpcHRWYWx1ZSBvYmplY3QgPSBlbmcuZXZhbHVhdGUoIm5ldyBPYmplY3QiKTsKKyAgICB7Cisg
ICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3Qob2JqZWN0KTsKKyAgICAgICAg
UVZFUklGWSh0bXAuaXNPYmplY3QoKSk7CisgICAgICAgIFFWRVJJRlkodG1wLnN0cmljdGx5RXF1
YWxzKG9iamVjdCkpOworICAgIH0KK30KKwordm9pZCB0c3RfUVNjcmlwdEVuZ2luZTo6dG9PYmpl
Y3RUd29FbmdpbmVzKCkKK3sKKyAgICBRU2NyaXB0RW5naW5lIGVuZ2luZTE7CisgICAgUVNjcmlw
dEVuZ2luZSBlbmdpbmUyOworCisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgbnVsbCA9IGVu
Z2luZTEubnVsbFZhbHVlKCk7CisgICAgICAgIFFUZXN0OjppZ25vcmVNZXNzYWdlKFF0V2Fybmlu
Z01zZywgIkRvIG5vdCB1c2UgZGlmZmVyZW50IGVuZ2luZXMgZm9yIHRoZSBzYW1lIHZhbHVlIik7
CisgICAgICAgIFFWRVJJRlkoIWVuZ2luZTIudG9PYmplY3QobnVsbCkuaXNWYWxpZCgpKTsKKyAg
ICAgICAgUVRlc3Q6Omlnbm9yZU1lc3NhZ2UoUXRXYXJuaW5nTXNnLCAiRG8gbm90IHVzZSBkaWZm
ZXJlbnQgZW5naW5lcyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAgUVZFUklGWShlbmdp
bmUyLnRvT2JqZWN0KG51bGwpLmVuZ2luZSgpICE9ICZlbmdpbmUyKTsKKyAgICB9CisgICAgewor
ICAgICAgICBRU2NyaXB0VmFsdWUgdW5kZWZpbmVkID0gZW5naW5lMS51bmRlZmluZWRWYWx1ZSgp
OworICAgICAgICBRVGVzdDo6aWdub3JlTWVzc2FnZShRdFdhcm5pbmdNc2csICJEbyBub3QgdXNl
IGRpZmZlcmVudCBlbmdpbmVzIGZvciB0aGUgc2FtZSB2YWx1ZSIpOworICAgICAgICBRVkVSSUZZ
KCFlbmdpbmUyLnRvT2JqZWN0KHVuZGVmaW5lZCkuaXNWYWxpZCgpKTsKKyAgICAgICAgUVRlc3Q6
Omlnbm9yZU1lc3NhZ2UoUXRXYXJuaW5nTXNnLCAiRG8gbm90IHVzZSBkaWZmZXJlbnQgZW5naW5l
cyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAgUVZFUklGWShlbmdpbmUyLnRvT2JqZWN0
KHVuZGVmaW5lZCkuZW5naW5lKCkgIT0gJmVuZ2luZTIpOworICAgIH0KKyAgICB7CisgICAgICAg
IFFTY3JpcHRWYWx1ZSB2YWx1ZSA9IGVuZ2luZTEuZXZhbHVhdGUoIjEiKTsKKyAgICAgICAgUVRl
c3Q6Omlnbm9yZU1lc3NhZ2UoUXRXYXJuaW5nTXNnLCAiRG8gbm90IHVzZSBkaWZmZXJlbnQgZW5n
aW5lcyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAgUVZFUklGWShlbmdpbmUyLnRvT2Jq
ZWN0KHZhbHVlKS5lbmdpbmUoKSAhPSAmZW5naW5lMik7CisgICAgfQorICAgIHsKKyAgICAgICAg
UVNjcmlwdFZhbHVlIHN0cmluZyA9IGVuZ2luZTEuZXZhbHVhdGUoIidRdCciKTsKKyAgICAgICAg
UVRlc3Q6Omlnbm9yZU1lc3NhZ2UoUXRXYXJuaW5nTXNnLCAiRG8gbm90IHVzZSBkaWZmZXJlbnQg
ZW5naW5lcyBmb3IgdGhlIHNhbWUgdmFsdWUiKTsKKyAgICAgICAgUVZFUklGWShlbmdpbmUyLnRv
T2JqZWN0KHN0cmluZykuZW5naW5lKCkgIT0gJmVuZ2luZTIpOworICAgIH0KKyAgICB7CisgICAg
ICAgIFFTY3JpcHRWYWx1ZSBvYmplY3QgPSBlbmdpbmUxLmV2YWx1YXRlKCJuZXcgT2JqZWN0Iik7
CisgICAgICAgIFFUZXN0OjppZ25vcmVNZXNzYWdlKFF0V2FybmluZ01zZywgIkRvIG5vdCB1c2Ug
ZGlmZmVyZW50IGVuZ2luZXMgZm9yIHRoZSBzYW1lIHZhbHVlIik7CisgICAgICAgIFFWRVJJRlko
ZW5naW5lMi50b09iamVjdChvYmplY3QpLmVuZ2luZSgpICE9ICZlbmdpbmUyKTsKKyAgICB9Cit9
CiAKIFFURVNUX01BSU4odHN0X1FTY3JpcHRFbmdpbmUpCiAjaW5jbHVkZSAidHN0X3FzY3JpcHRl
bmdpbmUubW9jIgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCmluZGV4IDgyZjA5MDEuLmI1MjVmNGIgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZh
bHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3Fz
Y3JpcHR2YWx1ZS5jcHAKQEAgLTQzMSw1ICs0MzEsMTAzIEBAIHZvaWQgdHN0X1FTY3JpcHRWYWx1
ZTo6Y2FsbCgpCiAgICAgUVZFUklGWShpbmNyLmNhbGwoKS5pc1ZhbGlkKCkpOyAvLyBFeGNlcHRp
b24uCiB9CiAKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9PYmplY3RTaW1wbGUoKQoreworICAg
IFFTY3JpcHRFbmdpbmUgZW5nOworCisgICAgUVNjcmlwdFZhbHVlIHVuZGVmaW5lZCA9IGVuZy51
bmRlZmluZWRWYWx1ZSgpOworICAgIFFDT01QQVJFKHVuZGVmaW5lZC50b09iamVjdCgpLmlzVmFs
aWQoKSwgZmFsc2UpOworICAgIFFTY3JpcHRWYWx1ZSBudWxsID0gZW5nLm51bGxWYWx1ZSgpOwor
ICAgIFFDT01QQVJFKG51bGwudG9PYmplY3QoKS5pc1ZhbGlkKCksIGZhbHNlKTsKKyAgICBRQ09N
UEFSRShRU2NyaXB0VmFsdWUoKS50b09iamVjdCgpLmlzVmFsaWQoKSwgZmFsc2UpOworCisgICAg
UVNjcmlwdFZhbHVlIGZhbHNrdCA9IFFTY3JpcHRWYWx1ZSgmZW5nLCBmYWxzZSk7CisgICAgewor
ICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZmFsc2t0LnRvT2JqZWN0KCk7CisgICAgICAgIFFD
T01QQVJFKHRtcC5pc09iamVjdCgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUoZmFsc2t0Lmlz
T2JqZWN0KCksIGZhbHNlKTsKKyAgICAgICAgUUNPTVBBUkUodG1wLnRvTnVtYmVyKCksIGZhbHNr
dC50b051bWJlcigpKTsKKyAgICB9CisKKyAgICBRU2NyaXB0VmFsdWUgc2FudCA9IFFTY3JpcHRW
YWx1ZSgmZW5nLCB0cnVlKTsKKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBzYW50
LnRvT2JqZWN0KCk7CisgICAgICAgIFFDT01QQVJFKHRtcC5pc09iamVjdCgpLCB0cnVlKTsKKyAg
ICAgICAgUUNPTVBBUkUoc2FudC5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIFFDT01QQVJF
KHRtcC50b051bWJlcigpLCBzYW50LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3JpcHRW
YWx1ZSBudW1iZXIgPSBRU2NyaXB0VmFsdWUoJmVuZywgMTIzLjApOworICAgIHsKKyAgICAgICAg
UVNjcmlwdFZhbHVlIHRtcCA9IG51bWJlci50b09iamVjdCgpOworICAgICAgICBRQ09NUEFSRSh0
bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKG51bWJlci5pc09iamVjdCgp
LCBmYWxzZSk7CisgICAgICAgIFFDT01QQVJFKHRtcC50b051bWJlcigpLCBudW1iZXIudG9OdW1i
ZXIoKSk7CisgICAgfQorCisgICAgUVNjcmlwdFZhbHVlIHN0ciA9IFFTY3JpcHRWYWx1ZSgmZW5n
LCBRU3RyaW5nKCJjaWFvIikpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IHN0
ci50b09iamVjdCgpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmplY3QoKSwgdHJ1ZSk7Cisg
ICAgICAgIFFDT01QQVJFKHN0ci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIFFDT01QQVJF
KHRtcC50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisKKyAgICBRU2NyaXB0
VmFsdWUgb2JqZWN0ID0gZW5nLmV2YWx1YXRlKCJuZXcgT2JqZWN0Iik7CisgICAgeworICAgICAg
ICBRU2NyaXB0VmFsdWUgdG1wID0gb2JqZWN0LnRvT2JqZWN0KCk7CisgICAgICAgIFFWRVJJRlko
dG1wLnN0cmljdGx5RXF1YWxzKG9iamVjdCkpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmpl
Y3QoKSwgdHJ1ZSk7CisgICAgfQorCisKKyAgICAvLyBWMiBjb25zdHJ1Y3RvcnM6IGluIHRoaXMg
Y2FzZSwgeW91IGhhdmUgdG8gdXNlIFFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0KCkKKyAgICB7Cisg
ICAgICAgIFFTY3JpcHRWYWx1ZSB1bmRlZmluZWQgPSBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVl
OjpVbmRlZmluZWRWYWx1ZSk7CisgICAgICAgIFFWRVJJRlkoIXVuZGVmaW5lZC50b09iamVjdCgp
LmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkoIWVuZy50b09iamVjdCh1bmRlZmluZWQpLmlz
VmFsaWQoKSk7CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIG51bGwgPSBRU2NyaXB0VmFsdWUoUVNj
cmlwdFZhbHVlOjpOdWxsVmFsdWUpOworICAgICAgICBRVkVSSUZZKCFudWxsLnRvT2JqZWN0KCku
aXNWYWxpZCgpKTsKKyAgICAgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KG51bGwpLmlzVmFsaWQo
KSk7CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIGZhbHNrdCA9IFFTY3JpcHRWYWx1ZShmYWxzZSk7
CisgICAgICAgIFFWRVJJRlkoIWZhbHNrdC50b09iamVjdCgpLmlzVmFsaWQoKSk7CisgICAgICAg
IFFDT01QQVJFKGZhbHNrdC5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIHsKKyAgICAgICAg
ICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3QoZmFsc2t0KTsKKyAgICAgICAgICAg
IFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUVZFUklGWSh0bXAudG9Cb29s
KCkpOworICAgICAgICB9CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIHNhbnQgPSBRU2NyaXB0VmFs
dWUodHJ1ZSk7CisgICAgICAgIFFWRVJJRlkoIXNhbnQudG9PYmplY3QoKS5pc1ZhbGlkKCkpOwor
ICAgICAgICBRQ09NUEFSRShzYW50LmlzT2JqZWN0KCksIGZhbHNlKTsKKyAgICAgICAgeworICAg
ICAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IGVuZy50b09iamVjdChzYW50KTsKKyAgICAgICAg
ICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUVZFUklGWSh0bXAudG9C
b29sKCkpOworICAgICAgICB9CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIG51bWJlciA9IFFTY3Jp
cHRWYWx1ZSgxMjMuMCk7CisgICAgICAgIFFWRVJJRlkoIW51bWJlci50b09iamVjdCgpLmlzVmFs
aWQoKSk7CisgICAgICAgIFFDT01QQVJFKG51bWJlci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAg
ICAgIHsKKyAgICAgICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3QobnVtYmVy
KTsKKyAgICAgICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUUNP
TVBBUkUodG1wLnRvSW50MzIoKSwgbnVtYmVyLnRvSW50MzIoKSk7CisgICAgICAgIH0KKworICAg
ICAgICBRU2NyaXB0VmFsdWUgc3RyID0gUVNjcmlwdFZhbHVlKFFTdHJpbmc6OmZyb21MYXRpbjEo
ImNpYW8iKSk7CisgICAgICAgIFFWRVJJRlkoIXN0ci50b09iamVjdCgpLmlzVmFsaWQoKSk7Cisg
ICAgICAgIFFDT01QQVJFKHN0ci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIHsKKyAgICAg
ICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3Qoc3RyKTsKKyAgICAgICAgICAg
IFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUUNPTVBBUkUodG1wLnRvU3Ry
aW5nKCksIFFTdHJpbmc6OmZyb21MYXRpbjEoImNpYW8iKSk7CisgICAgICAgIH0KKyAgICB9Cit9
CiAKIFFURVNUX01BSU4odHN0X1FTY3JpcHRWYWx1ZSkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmggYi9KYXZhU2NyaXB0
Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCmluZGV4IDI4MTU0
YTkuLjI3ZDVmOTkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2
YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNj
cmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaApAQCAtNDcsNiArNDcsNyBAQCBwcml2YXRlIHNs
b3RzOgogICAgIHZvaWQgY29uc3RydWN0b3JzKCk7CiAgICAgdm9pZCBjYWxsKCk7CiAgICAgdm9p
ZCBjdG9yKCk7CisgICAgdm9pZCB0b09iamVjdFNpbXBsZSgpOwogCiAgICAgLy8gR2VuZXJhdGVk
IHRlc3QgZnVuY3Rpb25zLgogICAgIHZvaWQgaXNCb29sX2RhdGEoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53860</attachid>
            <date>2010-04-20 11:46:35 -0700</date>
            <delta_ts>2010-05-14 17:08:20 -0700</delta_ts>
            <desc>Fix v2</desc>
            <filename>toobj.diff</filename>
            <type>text/plain</type>
            <size>16158</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiMDQxMTdjLi40NTk2NjU0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTAtMDQtMTYgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50YXRpb24gb2YgUXRTY3JpcHQgQVBJIHRoYXQgcHJvdmlkZSBtZXRob2QgdG8gY29udmVy
dCBhIHZhbHVlIHRvIGFuIG9iamVjdC4KKworICAgICAgICBbUXRdIFF0U2NyaXB0IGlzIG1pc3Np
bmcgdG9PYmplY3QgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNjU5NAorCisgICAgICAgICogcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwOgorICAg
ICAgICAoUVNjcmlwdEVuZ2luZTo6dG9PYmplY3QpOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0
ZW5naW5lLmg6CisgICAgICAgICogcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgIChR
U2NyaXB0VmFsdWU6OnRvT2JqZWN0KToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlLmg6
CisgICAgICAgICogcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmg6CisgICAgICAgIChRU2NyaXB0VmFs
dWVQcml2YXRlOjp0b09iamVjdCk6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90
c3RfcXNjcmlwdGVuZ2luZS5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdEVuZ2luZTo6dG9PYmpl
Y3QpOgorICAgICAgICAodHN0X1FTY3JpcHRFbmdpbmU6OnRvT2JqZWN0VHdvRW5naW5lcyk6Cisg
ICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwOgorICAg
ICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9PYmplY3RTaW1wbGUpOgorICAgICAgICAqIHF0L3Rl
c3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmg6CisKIDIwMTAtMDQtMjAgIEplZHJ6
ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5j
cHAKaW5kZXggZDQ5YzU3OC4uZGMwOGNkOSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHRlbmdpbmUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0
ZW5naW5lLmNwcApAQCAtMTUxLDYgKzE1MSwyOCBAQCBRU2NyaXB0U3RyaW5nIFFTY3JpcHRFbmdp
bmU6OnRvU3RyaW5nSGFuZGxlKGNvbnN0IFFTdHJpbmcmIHN0cikKIH0KIAogLyohCisgIENvbnZl
cnRzIHRoZSBnaXZlbiBcYSB2YWx1ZSB0byBhbiBvYmplY3QsIGlmIHN1Y2ggYSBjb252ZXJzaW9u
IGlzCisgIHBvc3NpYmxlOyBvdGhlcndpc2UgcmV0dXJucyBhbiBpbnZhbGlkIFFTY3JpcHRWYWx1
ZS4gVGhlIGNvbnZlcnNpb24KKyAgaXMgcGVyZm9ybWVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93
aW5nIHRhYmxlOgorCisgICAgXHRhYmxlCisgICAgXGhlYWRlciBcbyBJbnB1dCBUeXBlIFxvIFJl
c3VsdAorICAgIFxyb3cgICAgXG8gVW5kZWZpbmVkICBcbyBBbiBpbnZhbGlkIFFTY3JpcHRWYWx1
ZS4KKyAgICBccm93ICAgIFxvIE51bGwgICAgICAgXG8gQW4gaW52YWxpZCBRU2NyaXB0VmFsdWUu
CisgICAgXHJvdyAgICBcbyBCb29sZWFuICAgIFxvIEEgbmV3IEJvb2xlYW4gb2JqZWN0IHdob3Nl
IGludGVybmFsIHZhbHVlIGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIGJvb2xlYW4uCisgICAg
XHJvdyAgICBcbyBOdW1iZXIgICAgIFxvIEEgbmV3IE51bWJlciBvYmplY3Qgd2hvc2UgaW50ZXJu
YWwgdmFsdWUgaXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgbnVtYmVyLgorICAgIFxyb3cgICAg
XG8gU3RyaW5nICAgICBcbyBBIG5ldyBTdHJpbmcgb2JqZWN0IHdob3NlIGludGVybmFsIHZhbHVl
IGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIHN0cmluZy4KKyAgICBccm93ICAgIFxvIE9iamVj
dCAgICAgXG8gVGhlIHJlc3VsdCBpcyB0aGUgb2JqZWN0IGl0c2VsZiAobm8gY29udmVyc2lvbiku
CisgICAgXGVuZHRhYmxlCisKKyAgICBcc2EgbmV3T2JqZWN0KCkKKyovCitRU2NyaXB0VmFsdWUg
UVNjcmlwdEVuZ2luZTo6dG9PYmplY3QoY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KFFTY3JpcHRWYWx1ZVByaXZhdGU6Omdl
dCh2YWx1ZSktPnRvT2JqZWN0KGRfcHRyLmRhdGEoKSkpOworfQorCisvKiEKICAgUmV0dXJucyBh
IFFTY3JpcHRWYWx1ZSBvZiB0aGUgcHJpbWl0aXZlIHR5cGUgTnVsbC4KIAogICBcc2EgdW5kZWZp
bmVkVmFsdWUoKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdp
bmUuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKaW5kZXggZTEwODg4
ZC4uZTE5ZWJkYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdp
bmUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5oCkBAIC00Niw2
ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydEFkZGl0aW9uYWxNZW1vcnlDb3N0KGlu
dCBjb3N0KTsKIAogICAgIFFTY3JpcHRTdHJpbmcgdG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0cmlu
ZyYgc3RyKTsKKyAgICBRU2NyaXB0VmFsdWUgdG9PYmplY3QoY29uc3QgUVNjcmlwdFZhbHVlJiB2
YWx1ZSk7CiAKICAgICBRU2NyaXB0VmFsdWUgbnVsbFZhbHVlKCk7CiAgICAgUVNjcmlwdFZhbHVl
IHVuZGVmaW5lZFZhbHVlKCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNj
cmlwdHZhbHVlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCmlu
ZGV4IGY2OTI4MTcuLmE1M2EyZmUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0dmFsdWUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUu
Y3BwCkBAIC00NjcsNiArNDY3LDE2IEBAIHF1aW50MTYgUVNjcmlwdFZhbHVlOjp0b1VJbnQxNigp
IGNvbnN0CiB9CiAKIC8qIQorICBcb2Jzb2xldGUKKworICBUaGlzIGZ1bmN0aW9uIGlzIG9ic29s
ZXRlOyB1c2UgUVNjcmlwdEVuZ2luZTo6dG9PYmplY3QoKSBpbnN0ZWFkLgorKi8KK1FTY3JpcHRW
YWx1ZSBRU2NyaXB0VmFsdWU6OnRvT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT50b09iamVjdCgpKTsKK30KKworLyohCiAgIENhbGxz
IHRoaXMgUVNjcmlwdFZhbHVlIGFzIGEgZnVuY3Rpb24sIHVzaW5nIFxhIHRoaXNPYmplY3QgYXMK
ICAgdGhlIGB0aGlzJyBvYmplY3QgaW4gdGhlIGZ1bmN0aW9uIGNhbGwsIGFuZCBwYXNzaW5nIFxh
IGFyZ3MKICAgYXMgYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlvbi4gUmV0dXJucyB0aGUgdmFsdWUg
cmV0dXJuZWQgZnJvbQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2
YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oCmluZGV4IGQ0NWFl
ZDMuLjE4MmYzMTEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFs
dWUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKQEAgLTgzLDYg
KzgzLDcgQEAgcHVibGljOgogICAgIHFpbnQzMiB0b0ludDMyKCkgY29uc3Q7CiAgICAgcXVpbnQz
MiB0b1VJbnQzMigpIGNvbnN0OwogICAgIHF1aW50MTYgdG9VSW50MTYoKSBjb25zdDsKKyAgICBR
U2NyaXB0VmFsdWUgdG9PYmplY3QoKSBjb25zdDsKIAogICAgIFFTY3JpcHRWYWx1ZSBjYWxsKGNv
bnN0IFFTY3JpcHRWYWx1ZSYgdGhpc09iamVjdCA9IFFTY3JpcHRWYWx1ZSgpLAogICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFFTY3JpcHRWYWx1ZUxpc3QmIGFyZ3MgPSBRU2NyaXB0VmFsdWVM
aXN0KCkpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9w
LmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCBiNTg4N2Nj
Li4zNjFiZmY5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
X3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtMTAz
LDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgcWludDMyIHRvSW50MzIoKSBjb25zdDsK
ICAgICBpbmxpbmUgcXVpbnQzMiB0b1VJbnQzMigpIGNvbnN0OwogICAgIGlubGluZSBxdWludDE2
IHRvVUludDE2KCkgY29uc3Q7CisgICAgaW5saW5lIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHRvT2Jq
ZWN0KFFTY3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUpOworICAgIGlubGluZSBRU2NyaXB0VmFs
dWVQcml2YXRlKiB0b09iamVjdCgpOwogCiAgICAgaW5saW5lIGJvb2wgZXF1YWxzKFFTY3JpcHRW
YWx1ZVByaXZhdGUqIG90aGVyKTsKICAgICBpbmxpbmUgYm9vbCBzdHJpY3RseUVxdWFscyhjb25z
dCBRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikgY29uc3Q7CkBAIC01MjEsNiArNTIzLDc1IEBA
IHF1aW50MTYgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9VSW50MTYoKSBjb25zdAogICAgIHJldHVy
biB0b0ludDMyKCk7CiB9CiAKKy8qIQorICBDcmVhdGVzIGEgY29weSBvZiB0aGlzIHZhbHVlIGFu
ZCBjb252ZXJ0cyBpdCB0byBhbiBvYmplY3QuIElmIHRoaXMgdmFsdWUgaXMgYW4gb2JqZWN0Cisg
IHRoZW4gcG9pbnRlciB0byB0aGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQuCisgIFxhdHRlbnRp
b24gaXQgc2hvdWxkIG5vdCBoYXBwZW4gYnV0IGlmIHRoaXMgdmFsdWUgaXMgYm91bmRlZCB0byBh
IGRpZmZlcmVudCBlbmdpbmUgdGhhdCB0aGUgZ2l2ZW4sIHRoZSBmaXJzdAorICBvbmUgd2lsbCBi
ZSB1c2VkLgorICBcaW50ZXJuYWwKKyAgKi8KK1FTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRW
YWx1ZVByaXZhdGU6OnRvT2JqZWN0KFFTY3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUpCit7Cisg
ICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBJbnZhbGlkOgorICAgIGNhc2UgQ1NwZWNp
YWw6CisgICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZTsKKyAgICBjYXNlIENT
dHJpbmc6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEV4Y2VwdGlvbiBjYW4ndCBvY2N1ciBo
ZXJlLgorICAgICAgICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGVu
Z2luZS0+Y29udGV4dCgpLCBlbmdpbmUtPm1ha2VKU1ZhbHVlKG1fc3RyaW5nKSwgLyogZXhjZXB0
aW9uICovIDApOworICAgICAgICAgICAgUV9BU1NFUlQob2JqZWN0KTsKKyAgICAgICAgICAgIHJl
dHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZShlbmdpbmUsIG9iamVjdCwgb2JqZWN0KTsKKyAg
ICAgICAgfQorICAgIGNhc2UgQ051bWJlcjoKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRXhj
ZXB0aW9uIGNhbid0IG9jY3VyIGhlcmUuCisgICAgICAgICAgICBKU09iamVjdFJlZiBvYmplY3Qg
PSBKU1ZhbHVlVG9PYmplY3QoZW5naW5lLT5jb250ZXh0KCksIGVuZ2luZS0+bWFrZUpTVmFsdWUo
bV9udW1iZXIpLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAgICAgICAgICBRX0FTU0VSVChvYmpl
Y3QpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKGVuZ2luZSwg
b2JqZWN0LCBvYmplY3QpOworICAgICAgICB9CisgICAgY2FzZSBDQm9vbDoKKyAgICAgICAgewor
ICAgICAgICAgICAgLy8gRXhjZXB0aW9uIGNhbid0IG9jY3VyZSBoZXJlLgorICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGVuZ2luZS0+Y29udGV4dCgpLCBl
bmdpbmUtPm1ha2VKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+KG1fbnVtYmVyKSksIC8qIGV4Y2Vw
dGlvbiAqLyAwKTsKKyAgICAgICAgICAgIFFfQVNTRVJUKG9iamVjdCk7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUoZW5naW5lLCBvYmplY3QsIG9iamVjdCk7Cisg
ICAgICAgIH0KKyAgICBjYXNlIEpTVmFsdWU6CisgICAgICAgIGlmIChyZWZpbmVkSlNWYWx1ZSgp
ICE9IEpTUHJpbWl0aXZlKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIEZhbGwtdGhy
b3VnaC4KKyAgICBjYXNlIEpTUHJpbWl0aXZlOgorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
ZW5naW5lICE9IHRoaXMtPmVuZ2luZSgpKQorICAgICAgICAgICAgICAgIHFXYXJuaW5nKCJRU2Ny
aXB0RW5naW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQgdmFsdWUgY3JlYXRlZCBpbiBhIGRp
ZmZlcmVudCBlbmdpbmUiKTsKKyAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9IEpTVmFs
dWVUb09iamVjdChjb250ZXh0KCksIHZhbHVlKCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAg
ICAgICAgIGlmIChvYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFs
dWVQcml2YXRlKG1fZW5naW5lLmNvbnN0RGF0YSgpLCBvYmplY3QpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZTsKKyAgICBjYXNlIEpTT2JqZWN0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoZW5naW5lICE9IHRoaXMtPmVuZ2luZSgp
KQorICAgICAgICBxV2FybmluZygiUVNjcmlwdEVuZ2luZTo6dG9PYmplY3Q6IGNhbm5vdCBjb252
ZXJ0IHZhbHVlIGNyZWF0ZWQgaW4gYSBkaWZmZXJlbnQgZW5naW5lIik7CisgICAgUV9BU1NFUlQo
bV9zdGF0ZSA9PSBKU09iamVjdCk7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKKy8qIQorICBUaGlz
IG1ldGhvZCBpcyBjcmVhdGVkIG9ubHkgZm9yIFFTY3JpcHRWYWx1ZTo6dG9PYmplY3QoKSBwdXJw
b3NlIHdoaWNoIGlzIG9ic29sZXRlLgorICBcaW50ZXJuYWwKKyAqLworUVNjcmlwdFZhbHVlUHJp
dmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9PYmplY3QoKQoreworICAgIGlmIChpc0pTQmFz
ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRvT2JqZWN0KG1fZW5naW5lLmRhdGEoKSk7CisKKyAgICAv
LyBXaXRob3V0IGFuIGVuZ2luZSB0aGVyZSBpcyBub3QgbXVjaCB3ZSBjYW4gZG8uCisgICAgcmV0
dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOworfQogCiBib29sIFFTY3JpcHRWYWx1ZVByaXZh
dGU6OmVxdWFscyhRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikKIHsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2lu
ZS5jcHAKaW5kZXggMWVjOWFkMy4uMzgyNDNkMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAKQEAg
LTQ0LDYgKzQ0LDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGV2YWx1YXRlUHJvZ3JhbSgp
OwogICAgIHZvaWQgY2hlY2tTeW50YXhfZGF0YSgpOwogICAgIHZvaWQgY2hlY2tTeW50YXgoKTsK
KyAgICB2b2lkIHRvT2JqZWN0KCk7CisgICAgdm9pZCB0b09iamVjdFR3b0VuZ2luZXMoKTsKIH07
CiAKIC8qIEV2YWx1YXRpbmcgYSBzY3JpcHQgdGhhdCB0aHJvdyBhbiB1bmhhbmRsZWQgZXhjZXB0
aW9uIHNob3VsZCByZXR1cm4gYW4gaW52YWxpZCB2YWx1ZS4gKi8KQEAgLTMwMyw2ICszMDUsOTcg
QEAgdm9pZCB0c3RfUVNjcmlwdEVuZ2luZTo6Y2hlY2tTeW50YXgoKQogICAgIFFDT01QQVJFKHJl
c3VsdC5lcnJvck1lc3NhZ2UoKSwgZXJyb3JNZXNzYWdlKTsKIH0KIAordm9pZCB0c3RfUVNjcmlw
dEVuZ2luZTo6dG9PYmplY3QoKQoreworICAgIFFTY3JpcHRFbmdpbmUgZW5nOworICAgIFFWRVJJ
RlkoIWVuZy50b09iamVjdChlbmcudW5kZWZpbmVkVmFsdWUoKSkuaXNWYWxpZCgpKTsKKyAgICBR
VkVSSUZZKCFlbmcudG9PYmplY3QoZW5nLm51bGxWYWx1ZSgpKS5pc1ZhbGlkKCkpOworICAgIFFW
RVJJRlkoIWVuZy50b09iamVjdChRU2NyaXB0VmFsdWUoKSkuaXNWYWxpZCgpKTsKKworICAgIFFT
Y3JpcHRWYWx1ZSBmYWxza3QoZmFsc2UpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRt
cCA9IGVuZy50b09iamVjdChmYWxza3QpOworICAgICAgICBRVkVSSUZZKHRtcC5pc09iamVjdCgp
KTsKKyAgICAgICAgUVZFUklGWSghZmFsc2t0LmlzT2JqZWN0KCkpOworICAgICAgICBRVkVSSUZZ
KCFmYWxza3QuZW5naW5lKCkpOworICAgICAgICBRQ09NUEFSRSh0bXAudG9OdW1iZXIoKSwgZmFs
c2t0LnRvTnVtYmVyKCkpOworICAgIH0KKworICAgIFFTY3JpcHRWYWx1ZSBzYW50KHRydWUpOwor
ICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IGVuZy50b09iamVjdChzYW50KTsKKyAg
ICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3QoKSk7CisgICAgICAgIFFWRVJJRlkoIXNhbnQuaXNP
YmplY3QoKSk7CisgICAgICAgIFFWRVJJRlkoIXNhbnQuZW5naW5lKCkpOworICAgICAgICBRQ09N
UEFSRSh0bXAudG9OdW1iZXIoKSwgc2FudC50b051bWJlcigpKTsKKyAgICB9CisKKyAgICBRU2Ny
aXB0VmFsdWUgbnVtYmVyKDEyMy4wKTsKKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAg
PSBlbmcudG9PYmplY3QobnVtYmVyKTsKKyAgICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3QoKSk7
CisgICAgICAgIFFWRVJJRlkoIW51bWJlci5pc09iamVjdCgpKTsKKyAgICAgICAgUVZFUklGWSgh
bnVtYmVyLmVuZ2luZSgpKTsKKyAgICAgICAgUUNPTVBBUkUodG1wLnRvTnVtYmVyKCksIG51bWJl
ci50b051bWJlcigpKTsKKyAgICB9CisKKyAgICBRU2NyaXB0VmFsdWUgc3RyID0gUVNjcmlwdFZh
bHVlKCZlbmcsIFFTdHJpbmcoImNpYW8iKSk7CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUg
dG1wID0gZW5nLnRvT2JqZWN0KHN0cik7CisgICAgICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkp
OworICAgICAgICBRVkVSSUZZKCFzdHIuaXNPYmplY3QoKSk7CisgICAgICAgIFFDT01QQVJFKHRt
cC50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgUVNjcmlwdFZhbHVl
IG9iamVjdCA9IGVuZy5ldmFsdWF0ZSgibmV3IE9iamVjdCIpOworICAgIHsKKyAgICAgICAgUVNj
cmlwdFZhbHVlIHRtcCA9IGVuZy50b09iamVjdChvYmplY3QpOworICAgICAgICBRVkVSSUZZKHRt
cC5pc09iamVjdCgpKTsKKyAgICAgICAgUVZFUklGWShvYmplY3QuaXNPYmplY3QoKSk7CisgICAg
ICAgIFFWRVJJRlkodG1wLnN0cmljdGx5RXF1YWxzKG9iamVjdCkpOworICAgIH0KK30KKwordm9p
ZCB0c3RfUVNjcmlwdEVuZ2luZTo6dG9PYmplY3RUd29FbmdpbmVzKCkKK3sKKyAgICBRU2NyaXB0
RW5naW5lIGVuZ2luZTE7CisgICAgUVNjcmlwdEVuZ2luZSBlbmdpbmUyOworCisgICAgeworICAg
ICAgICBRU2NyaXB0VmFsdWUgbnVsbCA9IGVuZ2luZTEubnVsbFZhbHVlKCk7CisgICAgICAgIFFU
ZXN0OjppZ25vcmVNZXNzYWdlKFF0V2FybmluZ01zZywgIlFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0
OiBjYW5ub3QgY29udmVydCB2YWx1ZSBjcmVhdGVkIGluIGEgZGlmZmVyZW50IGVuZ2luZSIpOwor
ICAgICAgICBRVkVSSUZZKCFlbmdpbmUyLnRvT2JqZWN0KG51bGwpLmlzVmFsaWQoKSk7CisgICAg
ICAgIFFWRVJJRlkobnVsbC5pc1ZhbGlkKCkpOworICAgICAgICBRVGVzdDo6aWdub3JlTWVzc2Fn
ZShRdFdhcm5pbmdNc2csICJRU2NyaXB0RW5naW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQg
dmFsdWUgY3JlYXRlZCBpbiBhIGRpZmZlcmVudCBlbmdpbmUiKTsKKyAgICAgICAgUVZFUklGWShl
bmdpbmUyLnRvT2JqZWN0KG51bGwpLmVuZ2luZSgpICE9ICZlbmdpbmUyKTsKKyAgICB9CisgICAg
eworICAgICAgICBRU2NyaXB0VmFsdWUgdW5kZWZpbmVkID0gZW5naW5lMS51bmRlZmluZWRWYWx1
ZSgpOworICAgICAgICBRVGVzdDo6aWdub3JlTWVzc2FnZShRdFdhcm5pbmdNc2csICJRU2NyaXB0
RW5naW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQgdmFsdWUgY3JlYXRlZCBpbiBhIGRpZmZl
cmVudCBlbmdpbmUiKTsKKyAgICAgICAgUVZFUklGWSghZW5naW5lMi50b09iamVjdCh1bmRlZmlu
ZWQpLmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkodW5kZWZpbmVkLmlzVmFsaWQoKSk7Cisg
ICAgICAgIFFUZXN0OjppZ25vcmVNZXNzYWdlKFF0V2FybmluZ01zZywgIlFTY3JpcHRFbmdpbmU6
OnRvT2JqZWN0OiBjYW5ub3QgY29udmVydCB2YWx1ZSBjcmVhdGVkIGluIGEgZGlmZmVyZW50IGVu
Z2luZSIpOworICAgICAgICBRVkVSSUZZKGVuZ2luZTIudG9PYmplY3QodW5kZWZpbmVkKS5lbmdp
bmUoKSAhPSAmZW5naW5lMik7CisgICAgfQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHZh
bHVlID0gZW5naW5lMS5ldmFsdWF0ZSgiMSIpOworICAgICAgICBRVGVzdDo6aWdub3JlTWVzc2Fn
ZShRdFdhcm5pbmdNc2csICJRU2NyaXB0RW5naW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQg
dmFsdWUgY3JlYXRlZCBpbiBhIGRpZmZlcmVudCBlbmdpbmUiKTsKKyAgICAgICAgUVZFUklGWShl
bmdpbmUyLnRvT2JqZWN0KHZhbHVlKS5lbmdpbmUoKSAhPSAmZW5naW5lMik7CisgICAgICAgIFFW
RVJJRlkoIXZhbHVlLmlzT2JqZWN0KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFFTY3JpcHRW
YWx1ZSBzdHJpbmcgPSBlbmdpbmUxLmV2YWx1YXRlKCInUXQnIik7CisgICAgICAgIFFUZXN0Ojpp
Z25vcmVNZXNzYWdlKFF0V2FybmluZ01zZywgIlFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0OiBjYW5u
b3QgY29udmVydCB2YWx1ZSBjcmVhdGVkIGluIGEgZGlmZmVyZW50IGVuZ2luZSIpOworICAgICAg
ICBRVkVSSUZZKGVuZ2luZTIudG9PYmplY3Qoc3RyaW5nKS5lbmdpbmUoKSAhPSAmZW5naW5lMik7
CisgICAgICAgIFFWRVJJRlkoIXN0cmluZy5pc09iamVjdCgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBRU2NyaXB0VmFsdWUgb2JqZWN0ID0gZW5naW5lMS5ldmFsdWF0ZSgibmV3IE9iamVjdCIp
OworICAgICAgICBRVGVzdDo6aWdub3JlTWVzc2FnZShRdFdhcm5pbmdNc2csICJRU2NyaXB0RW5n
aW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQgdmFsdWUgY3JlYXRlZCBpbiBhIGRpZmZlcmVu
dCBlbmdpbmUiKTsKKyAgICAgICAgUVZFUklGWShlbmdpbmUyLnRvT2JqZWN0KG9iamVjdCkuZW5n
aW5lKCkgIT0gJmVuZ2luZTIpOworICAgICAgICBRVkVSSUZZKG9iamVjdC5pc09iamVjdCgpKTsK
KyAgICB9Cit9CiAKIFFURVNUX01BSU4odHN0X1FTY3JpcHRFbmdpbmUpCiAjaW5jbHVkZSAidHN0
X3FzY3JpcHRlbmdpbmUubW9jIgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMv
cXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVz
dHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCmluZGV4IDgyZjA5MDEuLjkwNzMw
YzMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3Rf
cXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKQEAgLTQzMSw1ICs0MzEsMTEzIEBAIHZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6Y2FsbCgpCiAgICAgUVZFUklGWShpbmNyLmNhbGwoKS5pc1ZhbGlkKCkpOyAv
LyBFeGNlcHRpb24uCiB9CiAKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9PYmplY3RTaW1wbGUo
KQoreworICAgIFFTY3JpcHRFbmdpbmUgZW5nOworCisgICAgUVNjcmlwdFZhbHVlIHVuZGVmaW5l
ZCA9IGVuZy51bmRlZmluZWRWYWx1ZSgpOworICAgIFFDT01QQVJFKHVuZGVmaW5lZC50b09iamVj
dCgpLmlzVmFsaWQoKSwgZmFsc2UpOworICAgIFFTY3JpcHRWYWx1ZSBudWxsID0gZW5nLm51bGxW
YWx1ZSgpOworICAgIFFDT01QQVJFKG51bGwudG9PYmplY3QoKS5pc1ZhbGlkKCksIGZhbHNlKTsK
KyAgICBRQ09NUEFSRShRU2NyaXB0VmFsdWUoKS50b09iamVjdCgpLmlzVmFsaWQoKSwgZmFsc2Up
OworCisgICAgUVNjcmlwdFZhbHVlIGZhbHNrdCA9IFFTY3JpcHRWYWx1ZSgmZW5nLCBmYWxzZSk7
CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZmFsc2t0LnRvT2JqZWN0KCk7Cisg
ICAgICAgIFFDT01QQVJFKHRtcC5pc09iamVjdCgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUo
ZmFsc2t0LmlzT2JqZWN0KCksIGZhbHNlKTsKKyAgICAgICAgUUNPTVBBUkUodG1wLnRvTnVtYmVy
KCksIGZhbHNrdC50b051bWJlcigpKTsKKyAgICB9CisKKyAgICBRU2NyaXB0VmFsdWUgc2FudCA9
IFFTY3JpcHRWYWx1ZSgmZW5nLCB0cnVlKTsKKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSB0
bXAgPSBzYW50LnRvT2JqZWN0KCk7CisgICAgICAgIFFDT01QQVJFKHRtcC5pc09iamVjdCgpLCB0
cnVlKTsKKyAgICAgICAgUUNPTVBBUkUoc2FudC5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAg
IFFDT01QQVJFKHRtcC50b051bWJlcigpLCBzYW50LnRvTnVtYmVyKCkpOworICAgIH0KKworICAg
IFFTY3JpcHRWYWx1ZSBudW1iZXIgPSBRU2NyaXB0VmFsdWUoJmVuZywgMTIzLjApOworICAgIHsK
KyAgICAgICAgUVNjcmlwdFZhbHVlIHRtcCA9IG51bWJlci50b09iamVjdCgpOworICAgICAgICBR
Q09NUEFSRSh0bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKG51bWJlci5p
c09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIFFDT01QQVJFKHRtcC50b051bWJlcigpLCBudW1i
ZXIudG9OdW1iZXIoKSk7CisgICAgfQorCisgICAgUVNjcmlwdFZhbHVlIHN0ciA9IFFTY3JpcHRW
YWx1ZSgmZW5nLCBRU3RyaW5nKCJjaWFvIikpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVl
IHRtcCA9IHN0ci50b09iamVjdCgpOworICAgICAgICBRQ09NUEFSRSh0bXAuaXNPYmplY3QoKSwg
dHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKHN0ci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAg
IFFDT01QQVJFKHRtcC50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisKKyAg
ICBRU2NyaXB0VmFsdWUgb2JqZWN0ID0gZW5nLmV2YWx1YXRlKCJuZXcgT2JqZWN0Iik7CisgICAg
eworICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gb2JqZWN0LnRvT2JqZWN0KCk7CisgICAgICAg
IFFWRVJJRlkodG1wLnN0cmljdGx5RXF1YWxzKG9iamVjdCkpOworICAgICAgICBRQ09NUEFSRSh0
bXAuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAgfQorCisKKyAgICAvLyBWMiBjb25zdHJ1Y3RvcnM6
IGluIHRoaXMgY2FzZSwgeW91IGhhdmUgdG8gdXNlIFFTY3JpcHRFbmdpbmU6OnRvT2JqZWN0KCkK
KyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSB1bmRlZmluZWQgPSBRU2NyaXB0VmFsdWUoUVNj
cmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSk7CisgICAgICAgIFFWRVJJRlkoIXVuZGVmaW5lZC50
b09iamVjdCgpLmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkoIWVuZy50b09iamVjdCh1bmRl
ZmluZWQpLmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkoIXVuZGVmaW5lZC5lbmdpbmUoKSk7
CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIG51bGwgPSBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVl
OjpOdWxsVmFsdWUpOworICAgICAgICBRVkVSSUZZKCFudWxsLnRvT2JqZWN0KCkuaXNWYWxpZCgp
KTsKKyAgICAgICAgUVZFUklGWSghZW5nLnRvT2JqZWN0KG51bGwpLmlzVmFsaWQoKSk7CisgICAg
ICAgIFFWRVJJRlkoIW51bGwuZW5naW5lKCkpOworCisgICAgICAgIFFTY3JpcHRWYWx1ZSBmYWxz
a3QgPSBRU2NyaXB0VmFsdWUoZmFsc2UpOworICAgICAgICBRVkVSSUZZKCFmYWxza3QudG9PYmpl
Y3QoKS5pc1ZhbGlkKCkpOworICAgICAgICBRQ09NUEFSRShmYWxza3QuaXNPYmplY3QoKSwgZmFs
c2UpOworICAgICAgICBRVkVSSUZZKCFmYWxza3QuZW5naW5lKCkpOworICAgICAgICB7CisgICAg
ICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRvT2JqZWN0KGZhbHNrdCk7CisgICAgICAg
ICAgICBRVkVSSUZZKHRtcC5pc09iamVjdCgpKTsKKyAgICAgICAgICAgIFFWRVJJRlkodG1wLnRv
Qm9vbCgpKTsKKyAgICAgICAgICAgIFFWRVJJRlkoIWZhbHNrdC5pc09iamVjdCgpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIFFTY3JpcHRWYWx1ZSBzYW50ID0gUVNjcmlwdFZhbHVlKHRydWUpOwor
ICAgICAgICBRVkVSSUZZKCFzYW50LnRvT2JqZWN0KCkuaXNWYWxpZCgpKTsKKyAgICAgICAgUUNP
TVBBUkUoc2FudC5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIFFWRVJJRlkoIXNhbnQuZW5n
aW5lKCkpOworICAgICAgICB7CisgICAgICAgICAgICBRU2NyaXB0VmFsdWUgdG1wID0gZW5nLnRv
T2JqZWN0KHNhbnQpOworICAgICAgICAgICAgUVZFUklGWSh0bXAuaXNPYmplY3QoKSk7CisgICAg
ICAgICAgICBRVkVSSUZZKHRtcC50b0Jvb2woKSk7CisgICAgICAgICAgICBRVkVSSUZZKCFzYW50
LmlzT2JqZWN0KCkpOworICAgICAgICB9CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIG51bWJlciA9
IFFTY3JpcHRWYWx1ZSgxMjMuMCk7CisgICAgICAgIFFWRVJJRlkoIW51bWJlci50b09iamVjdCgp
LmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkoIW51bWJlci5lbmdpbmUoKSk7CisgICAgICAg
IFFDT01QQVJFKG51bWJlci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIHsKKyAgICAgICAg
ICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3QobnVtYmVyKTsKKyAgICAgICAgICAg
IFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUUNPTVBBUkUodG1wLnRvSW50
MzIoKSwgbnVtYmVyLnRvSW50MzIoKSk7CisgICAgICAgICAgICBRVkVSSUZZKCFudW1iZXIuaXNP
YmplY3QoKSk7CisgICAgICAgIH0KKworICAgICAgICBRU2NyaXB0VmFsdWUgc3RyID0gUVNjcmlw
dFZhbHVlKFFTdHJpbmc6OmZyb21MYXRpbjEoImNpYW8iKSk7CisgICAgICAgIFFWRVJJRlkoIXN0
ci50b09iamVjdCgpLmlzVmFsaWQoKSk7CisgICAgICAgIFFWRVJJRlkoIXN0ci5lbmdpbmUoKSk7
CisgICAgICAgIFFDT01QQVJFKHN0ci5pc09iamVjdCgpLCBmYWxzZSk7CisgICAgICAgIHsKKyAg
ICAgICAgICAgIFFTY3JpcHRWYWx1ZSB0bXAgPSBlbmcudG9PYmplY3Qoc3RyKTsKKyAgICAgICAg
ICAgIFFWRVJJRlkodG1wLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgUUNPTVBBUkUodG1wLnRv
U3RyaW5nKCksIFFTdHJpbmc6OmZyb21MYXRpbjEoImNpYW8iKSk7CisgICAgICAgICAgICBRVkVS
SUZZKCFzdHIuaXNPYmplY3QoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CiAKIFFURVNUX01BSU4o
dHN0X1FTY3JpcHRWYWx1ZSkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmggYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9x
c2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCmluZGV4IDI4MTU0YTkuLjI3ZDVmOTkgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlw
dHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9x
c2NyaXB0dmFsdWUuaApAQCAtNDcsNiArNDcsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQg
Y29uc3RydWN0b3JzKCk7CiAgICAgdm9pZCBjYWxsKCk7CiAgICAgdm9pZCBjdG9yKCk7CisgICAg
dm9pZCB0b09iamVjdFNpbXBsZSgpOwogCiAgICAgLy8gR2VuZXJhdGVkIHRlc3QgZnVuY3Rpb25z
LgogICAgIHZvaWQgaXNCb29sX2RhdGEoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>