<?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>74719</bug_id>
          
          <creation_ts>2011-12-16 08:38:40 -0800</creation_ts>
          <short_desc>TextureMapper: Simplify transform manipulations.</short_desc>
          <delta_ts>2012-01-13 06:40:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75918</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>kenneth</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522759</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-12-16 08:38:40 -0800</bug_when>
    <thetext>TextureMapper: Simplify transform manipulations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522760</commentid>
    <comment_count>1</comment_count>
      <attachid>119613</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-12-16 08:39:26 -0800</bug_when>
    <thetext>Created attachment 119613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522803</commentid>
    <comment_count>2</comment_count>
      <attachid>119613</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-12-16 10:00:10 -0800</bug_when>
    <thetext>Comment on attachment 119613
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        - Make sure that the replica node has a complete transform and
&gt; +          use it directly instead of keeping a copy in the source.

I can&apos;t see how this code would work; Since the replica&apos;s parent layer is always null, and you don&apos;t check for replicatedLayer.
Someone needs to combine the &quot;regular&quot; layer&apos;s transform and the replica&apos;s local transform. 
That code was pretty tricky and is tested by many layout tests (compositing/reflection). I see no mention in this changelog that those were tested before+after the changes, which makes me think that these changes would break those reflection tests :)

&gt; Source/WebCore/ChangeLog:18
&gt; +        - Fix the fillsForward transform adjustment in syncAnimations and
&gt; +          make the intention clearer by using setTransform and setOpacity.

Different patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534888</commentid>
    <comment_count>3</comment_count>
      <attachid>122255</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-12 09:06:50 -0800</bug_when>
    <thetext>Created attachment 122255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534900</commentid>
    <comment_count>4</comment_count>
      <attachid>122255</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-12 09:21:56 -0800</bug_when>
    <thetext>Comment on attachment 122255
Patch

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

Good direction, needs some improvements.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:69
&gt; +void TextureMapperNode::computeTransformsSelf(const TransformationMatrix&amp; parentTransform)

I don&apos;t see why we need to functions. We should just have one function, and use (parent || effectTarget).

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:76
&gt; +    m_transforms.target = parentTransform;
&gt; +    m_transforms.target
&gt;          .translate3d(originX + m_state.pos.x(), originY + m_state.pos.y(), m_state.anchorPoint.z() )
&gt; -        .multiply(m_transforms.base)
&gt; -        .translate3d(-originX, -originY, -m_state.anchorPoint.z());
&gt; +        .multiply(m_transforms.base);

You can do
m_transforms.target = TransformationMatrix(parentTransform).multiply(m_transforms.base);
&lt;nitpick/&gt;

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:78
&gt; +    // In case a parent had preserves3D and this layer has not, flatten our children.

We should early-return if we don&apos;t have children, after we&apos;ve translated the target transform back.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:95
&gt; +    // The replica layer isn&apos;t parented and needs its transform to be stacked atop ours.
&gt; +    if (m_state.replicaLayer)
&gt; +        m_state.replicaLayer-&gt;computeTransformsSelf(m_transforms.target);

Instead, you can call effectTarget from within the replica layer if there&apos;s no parent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534902</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-12 09:24:08 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 122255 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122255&amp;action=review
&gt; 
&gt; Good direction, needs some improvements.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:69
&gt; &gt; +void TextureMapperNode::computeTransformsSelf(const TransformationMatrix&amp; parentTransform)
&gt; 
&gt; I don&apos;t see why we need to functions. We should just have one function, and use (parent || effectTarget).
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:76
&gt; &gt; +    m_transforms.target = parentTransform;
&gt; &gt; +    m_transforms.target
&gt; &gt;          .translate3d(originX + m_state.pos.x(), originY + m_state.pos.y(), m_state.anchorPoint.z() )
&gt; &gt; -        .multiply(m_transforms.base)
&gt; &gt; -        .translate3d(-originX, -originY, -m_state.anchorPoint.z());
&gt; &gt; +        .multiply(m_transforms.base);
&gt; 
&gt; You can do
&gt; m_transforms.target = TransformationMatrix(parentTransform).multiply(m_transforms.base);
&gt; &lt;nitpick/&gt;
I mean
m_transforms.target = 
    TransformationMatrix(parentTransform)
        .translate3d(originX + m_state.pos.x(), originY + m_state.pos.y(), m_state.anchorPoint.z() )
        .multiply(m_transforms.base);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535019</commentid>
    <comment_count>6</comment_count>
      <attachid>122255</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-12 11:54:09 -0800</bug_when>
    <thetext>Comment on attachment 122255
Patch

After discussing this on IRC, I believe that my comments actually don&apos;t make this patch any better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535633</commentid>
    <comment_count>7</comment_count>
      <attachid>122421</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-13 06:19:57 -0800</bug_when>
    <thetext>Created attachment 122421
Patch

Here, it should be on the right bug. Tried to use webkit-patch upload -g SHA^..SHA, but I guess I&apos;ll stick with -g HEAD..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535643</commentid>
    <comment_count>8</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-13 06:40:15 -0800</bug_when>
    <thetext>Committed r104931: &lt;http://trac.webkit.org/changeset/104931&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119613</attachid>
            <date>2011-12-16 08:39:26 -0800</date>
            <delta_ts>2012-01-12 09:06:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74719-20111216173836.patch</filename>
            <type>text/plain</type>
            <size>12830</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk0MTBhYzZmOTE2NmRl
MTQyZTU0NDljNTc0MWY0NDlmMzJjYzJmMS4uYTQ4YjY3N2Q0ZDBkMjA3YjlhODUyZTMzMjE0MDhh
OTE5MTNlNWU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTEyLTE1ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CisKKyAgICAgICAgVGV4
dHVyZU1hcHBlcjogU2ltcGxpZnkgdHJhbnNmb3JtIG1hbmlwdWxhdGlvbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTWFrZSBzdXJlIHRoYXQgdGhl
IHJlcGxpY2Egbm9kZSBoYXMgYSBjb21wbGV0ZSB0cmFuc2Zvcm0gYW5kCisgICAgICAgICAgdXNl
IGl0IGRpcmVjdGx5IGluc3RlYWQgb2Yga2VlcGluZyBhIGNvcHkgaW4gdGhlIHNvdXJjZS4KKyAg
ICAgICAgLSBBcHBseSB0aGUgb3JpZ2luIGFuZCBwb3NpdGlvbiB0cmFuc2xhdGlvbiBvbmx5IG9u
Y2UsIG9uIHRoZQorICAgICAgICAgIHRhcmdldCBhbmQgZGVzY2VuZGFudHMgdHJhbnNmb3Jtcy4K
KyAgICAgICAgLSBVc2UgdG8yZFRyYW5zZm9ybSgpIG9uICFwcmVzZXJ2ZXMzRCBsYXllcnMgaW5z
dGVhZCBvZiBkb2luZworICAgICAgICAgIHRoZSBmbGF0dGVuaW5nIG1hbnVhbGx5LgorICAgICAg
ICAtIFJlbW92ZSBtZW50aW9ucyBvZiBwZXJzcGVjdGl2ZSBhcyB0aGlzIGlzIGhhbmRsZWQgYnkg
V2ViQ29yZQorICAgICAgICAgIHRocm91Z2ggdGhlIGNoaWxkcmVuIHRyYW5zZm9ybS4KKyAgICAg
ICAgLSBNZXJnZSB0aGUgYmFzZSBhbmQgbG9jYWwgdHJhbnNmb3Jtcy4KKyAgICAgICAgLSBGaXgg
dGhlIGZpbGxzRm9yd2FyZCB0cmFuc2Zvcm0gYWRqdXN0bWVudCBpbiBzeW5jQW5pbWF0aW9ucyBh
bmQKKyAgICAgICAgICBtYWtlIHRoZSBpbnRlbnRpb24gY2xlYXJlciBieSB1c2luZyBzZXRUcmFu
c2Zvcm0gYW5kIHNldE9wYWNpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ck5vZGU6OnNldFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9k
ZTo6Y29tcHV0ZUFsbFRyYW5zZm9ybXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ck5vZGU6OnBhaW50U2VsZik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6
cGFpbnRTZWxmQW5kQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5v
ZGU6OnBhaW50UmVmbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9k
ZTo6c3luY0NvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJOb2RlOjpzeW5jQW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmg6CisKIDIwMTEtMTItMTYgIFBhdHJpY2sgR2Fuc3Rl
cmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXaW5DRSBidWls
ZCBmaXggYWZ0ZXIgcjEwMjk3OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IDkxNTdl
MjNhY2Q2OGRjMWFkODQxNjg0YTE1MGJkNjE0NTA2ZTgzMDUuLjEzNzhlOTg4OTM5M2U5ODY4N2Jl
ZTRhMzhmN2EwNmJjMWU2NjQ5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtODEs
MjIgKzgxLDcgQEAgVGV4dHVyZU1hcHBlck5vZGUqIFRleHR1cmVNYXBwZXJOb2RlOjpyb290TGF5
ZXIoKQogCiB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKIHsKLSAgICBpZiAobV90cmFuc2Zvcm1zLmJhc2UgPT0g
bWF0cml4KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3RyYW5zZm9ybXMuYmFzZSA9IG1hdHJp
eDsKLX0KLQotdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNm
b3JtSWZOZWVkZWQoKQotewotICAgIGlmIChtX2NoaWxkcmVuLmlzRW1wdHkoKSB8fCBtX3N0YXRl
LmNoaWxkcmVuVHJhbnNmb3JtLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y29uc3QgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9IEZsb2F0UG9pbnQobV9zaXplLndpZHRoKCkg
LyAyLCBtX3NpemUuaGVpZ2h0KCkgLyAyKTsKLSAgICBtX3RyYW5zZm9ybXMucGVyc3BlY3RpdmUg
PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpCi0gICAgICAgICAgICAudHJhbnNsYXRlKGNlbnRlclBv
aW50LngoKSwgY2VudGVyUG9pbnQueSgpKQotICAgICAgICAgICAgLm11bHRpcGx5KG1fc3RhdGUu
Y2hpbGRyZW5UcmFuc2Zvcm0pCi0gICAgICAgICAgICAudHJhbnNsYXRlKC1jZW50ZXJQb2ludC54
KCksIC1jZW50ZXJQb2ludC55KCkpOworICAgIG1fdHJhbnNmb3Jtcy5sb2NhbCA9IG1hdHJpeDsK
IH0KIAogaW50IFRleHR1cmVNYXBwZXJOb2RlOjpjb3VudERlc2NlbmRhbnRzV2l0aENvbnRlbnQo
KSBjb25zdApAQCAtMTE1LDYxICsxMDAsMjUgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29t
cHV0ZU92ZXJsYXBzSWZOZWVkZWQoKQogICAgIG1fc3RhdGUubWlnaHRIYXZlT3ZlcmxhcHMgPSBj
b3VudERlc2NlbmRhbnRzV2l0aENvbnRlbnQoKSA+IDE7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBl
ck5vZGU6OmNvbXB1dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKQordm9pZCBUZXh0dXJlTWFw
cGVyTm9kZTo6Y29tcHV0ZUFsbFRyYW5zZm9ybXMoKQogewotICAgIGlmICghbV9zdGF0ZS5yZXBs
aWNhTGF5ZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBtX3RyYW5zZm9ybXMudGFyZ2V0ID0gbV9w
YXJlbnQgPyBtX3BhcmVudC0+bV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzIDogVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKTsKIAotICAgIG1fdHJhbnNmb3Jtcy5yZXBsaWNhID0KLSAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdldCkKLSAgICAgICAgICAgIC5tdWx0
aXBseShtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLmxvY2FsKQotICAgICAgICAg
ICAgLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fdHJhbnNmb3Jtcy50YXJnZXQpLmlu
dmVyc2UoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVMb2NhbFRyYW5z
Zm9ybUlmTmVlZGVkKCkKLXsKICAgICBmbG9hdCBvcmlnaW5YID0gbV9zdGF0ZS5hbmNob3JQb2lu
dC54KCkgKiBtX3NpemUud2lkdGgoKTsKICAgICBmbG9hdCBvcmlnaW5ZID0gbV9zdGF0ZS5hbmNo
b3JQb2ludC55KCkgKiBtX3NpemUuaGVpZ2h0KCk7Ci0gICAgbV90cmFuc2Zvcm1zLmxvY2FsID0K
LSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgoKQorICAgIG1fdHJhbnNmb3Jtcy50YXJnZXQK
ICAgICAgICAgLnRyYW5zbGF0ZTNkKG9yaWdpblggKyBtX3N0YXRlLnBvcy54KCksIG9yaWdpblkg
KyBtX3N0YXRlLnBvcy55KCksIG1fc3RhdGUuYW5jaG9yUG9pbnQueigpICkKLSAgICAgICAgLm11
bHRpcGx5KG1fdHJhbnNmb3Jtcy5iYXNlKQotICAgICAgICAudHJhbnNsYXRlM2QoLW9yaWdpblgs
IC1vcmlnaW5ZLCAtbV9zdGF0ZS5hbmNob3JQb2ludC56KCkpOwotfQorICAgICAgICAubXVsdGlw
bHkobV90cmFuc2Zvcm1zLmxvY2FsKTsKIAotdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0
ZUFsbFRyYW5zZm9ybXMoKQotewotICAgIGlmIChtX3NpemUuaXNFbXB0eSgpICYmIG1fc3RhdGUu
bWFza3NUb0JvdW5kcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29tcHV0ZUxvY2FsVHJhbnNm
b3JtSWZOZWVkZWQoKTsKLSAgICBjb21wdXRlUmVwbGljYVRyYW5zZm9ybUlmTmVlZGVkKCk7Ci0g
ICAgY29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNmb3JtSWZOZWVkZWQoKTsKKyAgICAvLyBJbiBjYXNl
IGEgcGFyZW50IGhhZCBwcmVzZXJ2ZXMzRCBhbmQgdGhpcyBsYXllciBoYXMgbm90LCBmbGF0dGVu
IG91ciBjaGlsZHJlbi4KKyAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgPSBtX3N0YXRl
LnByZXNlcnZlczNEID8gbV90cmFuc2Zvcm1zLnRhcmdldCA6IG1fdHJhbnNmb3Jtcy50YXJnZXQu
dG8yZFRyYW5zZm9ybSgpOworICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5tdWx0aXBs
eShtX3N0YXRlLmNoaWxkcmVuVHJhbnNmb3JtKTsKIAotICAgIG1fdHJhbnNmb3Jtcy50YXJnZXQg
PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX3BhcmVudCA/IG1fcGFyZW50LT5tX3RyYW5zZm9ybXMu
Zm9yRGVzY2VuZGFudHMgOiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKS5tdWx0aXBseShtX3RyYW5z
Zm9ybXMubG9jYWwpOwotCi0gICAgbV9zdGF0ZS52aXNpYmxlID0gbV9zdGF0ZS5iYWNrZmFjZVZp
c2liaWxpdHkgfHwgbV90cmFuc2Zvcm1zLnRhcmdldC5pbnZlcnNlKCkubTMzKCkgPj0gMDsKLSAg
ICBpZiAoIW1fc3RhdGUudmlzaWJsZSkKLSAgICAgICAgcmV0dXJuOworICAgIG1fdHJhbnNmb3Jt
cy50YXJnZXQudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtbV9zdGF0ZS5hbmNob3JQ
b2ludC56KCkpOworICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy50cmFuc2xhdGUzZCgt
b3JpZ2luWCwgLW9yaWdpblksIC1tX3N0YXRlLmFuY2hvclBvaW50LnooKSk7CiAKLSAgICAvLyBU
aGlzIHRyYW5zZm9ybSBpcyBvbmx5IGFwcGxpZWQgaWYgdXNpbmcgYSB0d28tcGFzcyBmb3IgdGhl
IHJlcGxpY2EsIGJlY2F1c2UgdGhlIHRyYW5zZm9ybSBuZWVkcyB0byBiZSBhZGp1c3RlZCB0byB0
aGUgc2l6ZSBvZiB0aGUgaW50ZXJtZWRpYXRlIHN1cmZhY2UsIGluc3RlYWYgb2YgdGhlIHNpemUg
b2YgdGhlIGNvbnRlbnQgbGF5ZXIuCiAgICAgaWYgKG1fcGFyZW50ICYmIG1fcGFyZW50LT5tX3N0
YXRlLnByZXNlcnZlczNEKQogICAgICAgICBtX3RyYW5zZm9ybXMuY2VudGVyWiA9IG1fdHJhbnNm
b3Jtcy50YXJnZXQubWFwUG9pbnQoRmxvYXRQb2ludDNEKG1fc2l6ZS53aWR0aCgpIC8gMiwgbV9z
aXplLmhlaWdodCgpIC8gMiwgMCkpLnooKTsKLQotICAgIGlmICghbV9jaGlsZHJlbi5zaXplKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cyA9IG1f
dHJhbnNmb3Jtcy50YXJnZXQ7Ci0KLSAgICBpZiAoIW1fc3RhdGUucHJlc2VydmVzM0QpIHsKLSAg
ICAgICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzID0gVHJhbnNmb3JtYXRpb25NYXRyaXgo
Ci0gICAgICAgICAgICAgICAgICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5tMTEoKSwg
bV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm0xMigpLCAwLCBtX3RyYW5zZm9ybXMuZm9yRGVz
Y2VuZGFudHMubTE0KCksCi0gICAgICAgICAgICAgICAgICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNj
ZW5kYW50cy5tMjEoKSwgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm0yMigpLCAwLCBtX3Ry
YW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTI0KCksCi0gICAgICAgICAgICAgICAgICAgIDAsIDAs
IDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5t
NDEoKSwgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm00MigpLCAwLCBtX3RyYW5zZm9ybXMu
Zm9yRGVzY2VuZGFudHMubTQ0KCkpOwotICAgIH0KLQotICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNj
ZW5kYW50cy5tdWx0aXBseShtX3RyYW5zZm9ybXMucGVyc3BlY3RpdmUpOwogfQogCiB2b2lkIFRl
eHR1cmVNYXBwZXJOb2RlOjpjb21wdXRlVGlsZXMoKQpAQCAtNDA5LDcgKzM1OCw3IEBAIHZvaWQg
VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRp
b25zJiBvcHRpb25zKQogCiAgICAgICAgICAgICBmbG9hdCByZXBsaWNhT3BhY2l0eSA9IDEuMDsK
ICAgICAgICAgICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllcikgewotICAgICAgICAgICAgICAg
IHJlcGxpY2FNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX3RyYW5zZm9ybXMudGFyZ2V0
KS5zY2FsZSgxLjAgLyB0aWxlLnNjYWxlKS5tdWx0aXBseShtX3N0YXRlLnJlcGxpY2FMYXllci0+
bV90cmFuc2Zvcm1zLmxvY2FsKTsKKyAgICAgICAgICAgICAgICByZXBsaWNhTWF0cml4ID0gbV9z
dGF0ZS5yZXBsaWNhTGF5ZXItPm1fdHJhbnNmb3Jtcy50YXJnZXQuc2NhbGUoMS4wIC8gdGlsZS5z
Y2FsZSk7CiAgICAgICAgICAgICAgICAgcmVwbGljYU9wYWNpdHkgPSBvcGFjaXR5ICogbV9zdGF0
ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEJp
dG1hcFRleHR1cmUmIHRleHR1cmUgPSAqdGlsZS5mcm9udEJ1ZmZlci50ZXh0dXJlOwpAQCAtNDI2
LDcgKzM3NSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2VsZihjb25zdCBUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBCaXRtYXBUZXh0dXJlKiB0
ZXh0dXJlID0gbV9vd25lZFRpbGVzW2ldLnRleHR1cmUuZ2V0KCk7CiAgICAgICAgIGlmIChtX3N0
YXRlLnJlcGxpY2FMYXllciAmJiAhb3B0aW9ucy5pc1N1cmZhY2UpIHsKICAgICAgICAgICAgIG9w
dGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnRleHR1cmUsIHRhcmdldFJlY3RGb3JU
aWxlUmVjdCh0YXJnZXRSZWN0LCBtX293bmVkVGlsZXNbaV0ucmVjdCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fdHJhbnNmb3Jtcy50YXJnZXQp
Lm11bHRpcGx5KG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMubG9jYWwpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zv
cm1zLnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAqIG1fc3Rh
dGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxpY2FNYXNrVGV4dHVyZSA/IHJlcGxpY2FNYXNrVGV4dHVyZS5nZXQoKSA6IG1hc2tUZXh0
dXJlLmdldCgpKTsKICAgICAgICAgfQpAQCAtNDM4LDcgKzM4Nyw3IEBAIHZvaWQgVGV4dHVyZU1h
cHBlck5vZGU6OnBhaW50U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRp
b25zKQogICAgIGlmIChtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRUeXBlID09IE1lZGlhQ29udGVu
dFR5cGUgJiYgbV9jdXJyZW50Q29udGVudC5tZWRpYSkgewogICAgICAgICBpZiAobV9zdGF0ZS5y
ZXBsaWNhTGF5ZXIgJiYgIW9wdGlvbnMuaXNTdXJmYWNlKQogICAgICAgICAgICAgbV9jdXJyZW50
Q29udGVudC5tZWRpYS0+cGFpbnRUb1RleHR1cmVNYXBwZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVy
LCB0YXJnZXRSZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdldCku
bXVsdGlwbHkobV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fdHJhbnNmb3Jtcy5sb2NhbCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0
YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLnRhcmdldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgKiBtX3N0YXRl
LnJlcGxpY2FMYXllci0+bV9vcGFjaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGljYU1hc2tUZXh0dXJlID8gcmVwbGljYU1h
c2tUZXh0dXJlLmdldCgpIDogbWFza1RleHR1cmUuZ2V0KCkpOwogICAgICAgICBtX2N1cnJlbnRD
b250ZW50Lm1lZGlhLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBwZXIs
IHRhcmdldFJlY3QsIG1fdHJhbnNmb3Jtcy50YXJnZXQsIG9wYWNpdHksIG9wdGlvbnMuaXNTdXJm
YWNlID8gMCA6IG1hc2tUZXh0dXJlLmdldCgpKTsKQEAgLTQ2MSw3ICs0MTAsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGZBbmRDaGlsZHJlbihjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJiBvcAogewogICAgIGJvb2wgaGFzQ2xpcCA9IG1fc3RhdGUubWFza3NUb0Jv
dW5kcyAmJiAhbV9jaGlsZHJlbi5pc0VtcHR5KCk7CiAgICAgaWYgKGhhc0NsaXApCi0gICAgICAg
IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmVnaW5DbGlwKG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5k
YW50cywgRmxvYXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsK
KyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iZWdpbkNsaXAobV90cmFuc2Zvcm1zLnRh
cmdldCwgRmxvYXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsK
IAogICAgIHBhaW50U2VsZihvcHRpb25zKTsKIApAQCAtNTI0LDcgKzQ3Myw3IEBAIGJvb2wgVGV4
dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRP
cHRpb25zJiBvcHRpb25zCiAgICAgaWYgKHVzZUludGVybWVkaWF0ZUJ1ZmZlckZvclJlcGxpY2Ep
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHJlcGxpY2FTdXJmYWNlID0gb3B0aW9u
cy5zdXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOwogICAgICAgICBvcHRp
b25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHJlcGxpY2FTdXJmYWNlLmdldCgpKTsKLSAg
ICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwg
dmlld3BvcnRSZWN0LCBtX3RyYW5zZm9ybXMucmVwbGljYSwgbV9zdGF0ZS5yZXBsaWNhTGF5ZXIt
Pm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKKyAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBt
X3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLnRhcmdldCwgbV9zdGF0ZS5yZXBsaWNh
TGF5ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgb3B0
aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRS
ZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7CiAgICAg
ICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1
cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJmYWNlID0gcmVwbGljYVN1cmZhY2U7CkBAIC01MzQs
NyArNDgzLDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWZsZWN0aW9uKGNvbnN0
IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKIAogICAgIC8vIERyYXcgdGhlIHJl
ZmxlY3Rpb24uCiAgICAgaWYgKCF1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNhKQotICAg
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2
aWV3cG9ydFJlY3QsIG1fdHJhbnNmb3Jtcy5yZXBsaWNhLCBtX3N0YXRlLnJlcGxpY2FMYXllci0+
bV9vcGFjaXR5LCByZXBsaWNhTWFza1RleHR1cmUuZ2V0KCkpOworICAgICAgICBvcHRpb25zLnRl
eHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIG1f
c3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMudGFyZ2V0LCBtX3N0YXRlLnJlcGxpY2FM
YXllci0+bV9vcGFjaXR5LCByZXBsaWNhTWFza1RleHR1cmUuZ2V0KCkpOwogCiAgICAgLy8gRHJh
dyB0aGUgb3JpZ2luYWwuCiAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgq
c3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBvcHRp
b25zLm9wYWNpdHksIG1hc2tUZXh0dXJlLmdldCgpKTsKQEAgLTc4Myw3ICs3MzIsNyBAQCB2b2lk
IFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIqIGdyYQogICAgIGlmICghaGFzT3BhY2l0eUFuaW1hdGlvbigpKQogICAg
ICAgICBtX29wYWNpdHkgPSBtX3N0YXRlLm9wYWNpdHk7CiAgICAgaWYgKCFoYXNUcmFuc2Zvcm1B
bmltYXRpb24oKSkKLSAgICAgICAgbV90cmFuc2Zvcm1zLmJhc2UgPSBtX3N0YXRlLnRyYW5zZm9y
bTsKKyAgICAgICAgbV90cmFuc2Zvcm1zLmxvY2FsID0gbV9zdGF0ZS50cmFuc2Zvcm07CiB9CiAK
IGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OmRlc2NlbmRhbnRzT3JTZWxmSGF2ZVJ1bm5pbmdBbmlt
YXRpb25zKCkgY29uc3QKQEAgLTk3NSw5ICs5MjQsOSBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2Rl
OjpzeW5jQW5pbWF0aW9ucyhHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogbGF5ZXIpCiAgICAg
ICAgICAgICAvLyBXZSBhcHBseSBhbiBhbmltYXRpb24gdGhhdCB2ZXJ5IGNsb3NlIHRvIHRoZSBl
ZGdlLCBzbyB0aGF0IHRoZSBmaW5hbCBmcmFtZSBpcyBhcHBsaWVkLCBvdGVyd2lzZSB3ZSBtaWdo
dCBnZXQsIGZvciBleGFtcGxlLCBhbiBvcGFjaXR5IG9mIDAuMDEgd2hpY2ggaXMgc3RpbGwgdmlz
aWJsZS4KICAgICAgICAgICAgIGlmIChhbmltLT5maWxsc0ZvcndhcmRzKCkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoYW5pbWF0aW9uLT5rZXlmcmFtZXMucHJvcGVydHkoKSA9PSBBbmltYXRlZFBy
b3BlcnR5V2Via2l0VHJhbnNmb3JtKQotICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnRyYW5z
Zm9ybSA9IG1fdHJhbnNmb3Jtcy5iYXNlOworICAgICAgICAgICAgICAgICAgICBzZXRUcmFuc2Zv
cm0obV9zdGF0ZS50cmFuc2Zvcm0pOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFuaW1hdGlv
bi0+a2V5ZnJhbWVzLnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpCi0gICAg
ICAgICAgICAgICAgICAgIG1fb3BhY2l0eSA9IG1fc3RhdGUub3BhY2l0eTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0T3BhY2l0eShtX3N0YXRlLm9wYWNpdHkpOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBtX2FuaW1hdGlvbnMucmVtb3ZlKGkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApp
bmRleCBmYzQ3OWJhYzZhNTNiNzUxZDg2MTUwNzg1NzczNWY1NTY2MjQ2ZDk3Li42YTIzNjBkM2Q3
MTE0YjZiOGM0YmFmYzhmOWJjYWI5OTUxYzA1Y2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApA
QCAtMTY5LDEwICsxNjksNyBAQCBwcml2YXRlOgogICAgIFRleHR1cmVNYXBwZXJOb2RlKiByb290
TGF5ZXIoKTsKICAgICB2b2lkIGNvbXB1dGVBbGxUcmFuc2Zvcm1zKCk7CiAgICAgdm9pZCBjb21w
dXRlVmlzaWJsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByb290VmlzaWJsZVJlY3QpOwotICAgIHZv
aWQgY29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNmb3JtSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNvbXB1
dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKTsKICAgICB2b2lkIGNvbXB1dGVPdmVybGFwc0lm
TmVlZGVkKCk7Ci0gICAgdm9pZCBjb21wdXRlTG9jYWxUcmFuc2Zvcm1JZk5lZWRlZCgpOwogICAg
IHZvaWQgY29tcHV0ZVRpbGVzKCk7CiAgICAgdm9pZCBzd2FwQ29udGVudHNCdWZmZXJzKCk7CiAg
ICAgaW50IGNvdW50RGVzY2VuZGFudHNXaXRoQ29udGVudCgpIGNvbnN0OwpAQCAtMjAyLDExICsx
OTksOCBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFRyYW5zZm9ybURhdGEgewogICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB0YXJnZXQ7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHJlcGxpY2E7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZvckRlc2NlbmRhbnRzOwog
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsb2NhbDsKLSAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggYmFzZTsKLSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcGVyc3BlY3RpdmU7
CiAgICAgICAgIGZsb2F0IGNlbnRlclo7CiAgICAgICAgIFRyYW5zZm9ybURhdGEoKSB7IH0KICAg
ICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122255</attachid>
            <date>2012-01-12 09:06:50 -0800</date>
            <delta_ts>2012-01-13 06:19:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74719-20120112180405.patch</filename>
            <type>text/plain</type>
            <size>12460</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVkZjNkYTcwNTBiOTUy
NDhlYjQ2NjM0NTQzYTJlZjU1Zjg2ZjdjMC4uODhkOGZmYjgyZjhjYWQ3ZjMzYjdmMmRkMzQ3YzMw
NTI5NWNlOWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTAxLTEyICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKKyAgICAgICAgVGV4
dHVyZU1hcHBlcjogU2ltcGxpZnkgdHJhbnNmb3JtIG1hbmlwdWxhdGlvbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTWFrZSBzdXJlIHRoYXQgdGhl
IHJlcGxpY2Egbm9kZSBoYXMgYSBjb21wbGV0ZSB0cmFuc2Zvcm0gYW5kCisgICAgICAgICAgdXNl
IGl0IGRpcmVjdGx5IGluc3RlYWQgb2Yga2VlcGluZyBhIGNvcHkgaW4gdGhlIHNvdXJjZS4KKyAg
ICAgICAgLSBBcHBseSB0aGUgb3JpZ2luIGFuZCBwb3NpdGlvbiB0cmFuc2xhdGlvbiBvbmx5IG9u
Y2UsIG9uIHRoZQorICAgICAgICAgIHRhcmdldCBhbmQgZGVzY2VuZGFudHMgdHJhbnNmb3Jtcy4K
KyAgICAgICAgLSBVc2UgdG8yZFRyYW5zZm9ybSgpIG9uICFwcmVzZXJ2ZXMzRCBsYXllcnMgaW5z
dGVhZCBvZiBkb2luZworICAgICAgICAgIHRoZSBmbGF0dGVuaW5nIG1hbnVhbGx5LgorICAgICAg
ICAtIFJlbW92ZSBtZW50aW9ucyBvZiBwZXJzcGVjdGl2ZSBhcyB0aGlzIGlzIGhhbmRsZWQgYnkg
V2ViQ29yZQorICAgICAgICAgIHRocm91Z2ggdGhlIGNoaWxkcmVuIHRyYW5zZm9ybS4KKyAgICAg
ICAgLSBBcHBseSB0aGUgaW52ZXJzZSB0YXJnZXQgdHJhbnNmb3JtIG9uIHRoZSByZXBsaWNhIG9u
bHkgd2hlcmUgaXQKKyAgICAgICAgICBpcyBuZWVkZWQgaW4gcGFpbnRSZWZsZWN0aW9uIGFzIGlu
IHBhaW50U2VsZiBpdCB1c2VzIHRoZSBmdWxsIHRyYW5zZm9ybS4KKyAgICAgICAgLSBNZXJnZSB0
aGUgYmFzZSBhbmQgbG9jYWwgdHJhbnNmb3Jtcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyTm9kZTo6c2V0VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJOb2RlOjpjb21wdXRlVHJhbnNmb3Jtc1NlbGYpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVBbGxUcmFuc2Zvcm1zKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGYpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmg6CisKKzIwMTItMDEtMTIgIEpvY2VseW4gVHVy
Y290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KKwogICAgICAgICBUZXh0dXJlTWFw
cGVyOiBGaXggdGhlIGZpbGxzRm9yd2FyZCB0cmFuc2Zvcm0gYWRqdXN0bWVudCBpbiBzeW5jQW5p
bWF0aW9ucy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MTg0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IDQzODdiZDRiZDA4YWY4YThl
Njc5NzI2OTg2MjRlMTdlY2NiMzU1ZTQuLjhjNWExNjBjNTkwOWU3NzY4MDY5OGIxZmYyOTVlY2Mx
NGI2MzUwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNDcsMjQgKzQ3LDkgQEAg
VGV4dHVyZU1hcHBlck5vZGUqIFRleHR1cmVNYXBwZXJOb2RlOjpyb290TGF5ZXIoKQogCiB2b2lk
IFRleHR1cmVNYXBwZXJOb2RlOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCkKIHsKLSAgICBpZiAobV90cmFuc2Zvcm1zLmJhc2UgPT0gbWF0cml4KQotICAg
ICAgICByZXR1cm47Ci0KICAgICBtX3RyYW5zZm9ybXMuYmFzZSA9IG1hdHJpeDsKIH0KIAotdm9p
ZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNmb3JtSWZOZWVkZWQo
KQotewotICAgIGlmIChtX2NoaWxkcmVuLmlzRW1wdHkoKSB8fCBtX3N0YXRlLmNoaWxkcmVuVHJh
bnNmb3JtLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29uc3QgRmxvYXRQ
b2ludCBjZW50ZXJQb2ludCA9IEZsb2F0UG9pbnQobV9zaXplLndpZHRoKCkgLyAyLCBtX3NpemUu
aGVpZ2h0KCkgLyAyKTsKLSAgICBtX3RyYW5zZm9ybXMucGVyc3BlY3RpdmUgPSBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpCi0gICAgICAgICAgICAudHJhbnNsYXRlKGNlbnRlclBvaW50LngoKSwgY2Vu
dGVyUG9pbnQueSgpKQotICAgICAgICAgICAgLm11bHRpcGx5KG1fc3RhdGUuY2hpbGRyZW5UcmFu
c2Zvcm0pCi0gICAgICAgICAgICAudHJhbnNsYXRlKC1jZW50ZXJQb2ludC54KCksIC1jZW50ZXJQ
b2ludC55KCkpOwotfQotCiBpbnQgVGV4dHVyZU1hcHBlck5vZGU6OmNvdW50RGVzY2VuZGFudHNX
aXRoQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3N0YXRlLnZpc2libGUgfHwgKCFtX3Np
emUud2lkdGgoKSAmJiAhbV9zaXplLmhlaWdodCgpICYmIG1fc3RhdGUubWFza3NUb0JvdW5kcykp
CkBAIC04MSwyNiArNjYsMjEgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZU92ZXJs
YXBzSWZOZWVkZWQoKQogICAgIG1fc3RhdGUubWlnaHRIYXZlT3ZlcmxhcHMgPSBjb3VudERlc2Nl
bmRhbnRzV2l0aENvbnRlbnQoKSA+IDE7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNv
bXB1dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKQotewotICAgIGlmICghbV9zdGF0ZS5yZXBs
aWNhTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fdHJhbnNmb3Jtcy5yZXBsaWNhID0K
LSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdldCkKLSAgICAg
ICAgICAgIC5tdWx0aXBseShtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLmxvY2Fs
KQotICAgICAgICAgICAgLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fdHJhbnNmb3Jt
cy50YXJnZXQpLmludmVyc2UoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1
dGVMb2NhbFRyYW5zZm9ybUlmTmVlZGVkKCkKK3ZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1
dGVUcmFuc2Zvcm1zU2VsZihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFyZW50VHJhbnNm
b3JtKQogewogICAgIGZsb2F0IG9yaWdpblggPSBtX3N0YXRlLmFuY2hvclBvaW50LngoKSAqIG1f
c2l6ZS53aWR0aCgpOwogICAgIGZsb2F0IG9yaWdpblkgPSBtX3N0YXRlLmFuY2hvclBvaW50Lnko
KSAqIG1fc2l6ZS5oZWlnaHQoKTsKLSAgICBtX3RyYW5zZm9ybXMubG9jYWwgPQotICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpCisgICAgbV90cmFuc2Zvcm1zLnRhcmdldCA9IHBhcmVudFRy
YW5zZm9ybTsKKyAgICBtX3RyYW5zZm9ybXMudGFyZ2V0CiAgICAgICAgIC50cmFuc2xhdGUzZChv
cmlnaW5YICsgbV9zdGF0ZS5wb3MueCgpLCBvcmlnaW5ZICsgbV9zdGF0ZS5wb3MueSgpLCBtX3N0
YXRlLmFuY2hvclBvaW50LnooKSApCi0gICAgICAgIC5tdWx0aXBseShtX3RyYW5zZm9ybXMuYmFz
ZSkKLSAgICAgICAgLnRyYW5zbGF0ZTNkKC1vcmlnaW5YLCAtb3JpZ2luWSwgLW1fc3RhdGUuYW5j
aG9yUG9pbnQueigpKTsKKyAgICAgICAgLm11bHRpcGx5KG1fdHJhbnNmb3Jtcy5iYXNlKTsKKwor
ICAgIC8vIEluIGNhc2UgYSBwYXJlbnQgaGFkIHByZXNlcnZlczNEIGFuZCB0aGlzIGxheWVyIGhh
cyBub3QsIGZsYXR0ZW4gb3VyIGNoaWxkcmVuLgorICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5k
YW50cyA9IG1fc3RhdGUucHJlc2VydmVzM0QgPyBtX3RyYW5zZm9ybXMudGFyZ2V0IDogbV90cmFu
c2Zvcm1zLnRhcmdldC50bzJkVHJhbnNmb3JtKCk7CisgICAgbV90cmFuc2Zvcm1zLmZvckRlc2Nl
bmRhbnRzLm11bHRpcGx5KG1fc3RhdGUuY2hpbGRyZW5UcmFuc2Zvcm0pOworCisgICAgbV90cmFu
c2Zvcm1zLnRhcmdldC50cmFuc2xhdGUzZCgtb3JpZ2luWCwgLW9yaWdpblksIC1tX3N0YXRlLmFu
Y2hvclBvaW50LnooKSk7CisgICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLnRyYW5zbGF0
ZTNkKC1vcmlnaW5YLCAtb3JpZ2luWSwgLW1fc3RhdGUuYW5jaG9yUG9pbnQueigpKTsKIH0KIAog
dm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZUFsbFRyYW5zZm9ybXMoKQpAQCAtMTA4LDM0
ICs4OCwxNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpjb21wdXRlQWxsVHJhbnNmb3Jtcygp
CiAgICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5tYXNrc1RvQm91bmRzKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBjb21wdXRlTG9jYWxUcmFuc2Zvcm1JZk5lZWRlZCgpOwotICAg
IGNvbXB1dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKTsKLSAgICBjb21wdXRlUGVyc3BlY3Rp
dmVUcmFuc2Zvcm1JZk5lZWRlZCgpOworICAgIGNvbXB1dGVUcmFuc2Zvcm1zU2VsZihtX3BhcmVu
dCA/IG1fcGFyZW50LT5tX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgOiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgpKTsKIAotICAgIG1fdHJhbnNmb3Jtcy50YXJnZXQgPSBUcmFuc2Zvcm1hdGlvbk1h
dHJpeChtX3BhcmVudCA/IG1fcGFyZW50LT5tX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgOiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpKS5tdWx0aXBseShtX3RyYW5zZm9ybXMubG9jYWwpOworICAg
IC8vIFRoZSByZXBsaWNhIGxheWVyIGlzbid0IHBhcmVudGVkIGFuZCBuZWVkcyBpdHMgdHJhbnNm
b3JtIHRvIGJlIHN0YWNrZWQgYXRvcCBvdXJzLgorICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXll
cikKKyAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPmNvbXB1dGVUcmFuc2Zvcm1zU2VsZiht
X3RyYW5zZm9ybXMudGFyZ2V0KTsKIAogICAgIG1fc3RhdGUudmlzaWJsZSA9IG1fc3RhdGUuYmFj
a2ZhY2VWaXNpYmlsaXR5IHx8IG1fdHJhbnNmb3Jtcy50YXJnZXQuaW52ZXJzZSgpLm0zMygpID49
IDA7Ci0gICAgaWYgKCFtX3N0YXRlLnZpc2libGUpCi0gICAgICAgIHJldHVybjsKIAotICAgIC8v
IFRoaXMgdHJhbnNmb3JtIGlzIG9ubHkgYXBwbGllZCBpZiB1c2luZyBhIHR3by1wYXNzIGZvciB0
aGUgcmVwbGljYSwgYmVjYXVzZSB0aGUgdHJhbnNmb3JtIG5lZWRzIHRvIGJlIGFkanVzdGVkIHRv
IHRoZSBzaXplIG9mIHRoZSBpbnRlcm1lZGlhdGUgc3VyZmFjZSwgaW5zdGVhZiBvZiB0aGUgc2l6
ZSBvZiB0aGUgY29udGVudCBsYXllci4KICAgICBpZiAobV9wYXJlbnQgJiYgbV9wYXJlbnQtPm1f
c3RhdGUucHJlc2VydmVzM0QpCiAgICAgICAgIG1fdHJhbnNmb3Jtcy5jZW50ZXJaID0gbV90cmFu
c2Zvcm1zLnRhcmdldC5tYXBQb2ludChGbG9hdFBvaW50M0QobV9zaXplLndpZHRoKCkgLyAyLCBt
X3NpemUuaGVpZ2h0KCkgLyAyLCAwKSkueigpOwotCi0gICAgaWYgKCFtX2NoaWxkcmVuLnNpemUo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzID0g
bV90cmFuc2Zvcm1zLnRhcmdldDsKLQotICAgIGlmICghbV9zdGF0ZS5wcmVzZXJ2ZXMzRCkgewot
ICAgICAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgPSBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgKLSAgICAgICAgICAgICAgICAgICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm0xMSgp
LCBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTEyKCksIDAsIG1fdHJhbnNmb3Jtcy5mb3JE
ZXNjZW5kYW50cy5tMTQoKSwKLSAgICAgICAgICAgICAgICAgICAgbV90cmFuc2Zvcm1zLmZvckRl
c2NlbmRhbnRzLm0yMSgpLCBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTIyKCksIDAsIG1f
dHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5tMjQoKSwKLSAgICAgICAgICAgICAgICAgICAgMCwg
MCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRz
Lm00MSgpLCBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTQyKCksIDAsIG1fdHJhbnNmb3Jt
cy5mb3JEZXNjZW5kYW50cy5tNDQoKSk7Ci0gICAgfQotCi0gICAgbV90cmFuc2Zvcm1zLmZvckRl
c2NlbmRhbnRzLm11bHRpcGx5KG1fdHJhbnNmb3Jtcy5wZXJzcGVjdGl2ZSk7CiB9CiAKIHZvaWQg
VGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVUaWxlcygpCkBAIC0zNzEsNyArMzMzLDcgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9w
dGlvbnMmIG9wdGlvbnMpCiAKICAgICAgICAgICAgIGZsb2F0IHJlcGxpY2FPcGFjaXR5ID0gMS4w
OwogICAgICAgICAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyKSB7Ci0gICAgICAgICAgICAg
ICAgcmVwbGljYU1hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fdHJhbnNmb3Jtcy50YXJn
ZXQpLnNjYWxlKDEuMCAvIHRpbGUuc2NhbGUpLm11bHRpcGx5KG1fc3RhdGUucmVwbGljYUxheWVy
LT5tX3RyYW5zZm9ybXMubG9jYWwpOworICAgICAgICAgICAgICAgIHJlcGxpY2FNYXRyaXggPSBt
X3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLnRhcmdldC5zY2FsZSgxLjAgLyB0aWxl
LnNjYWxlKTsKICAgICAgICAgICAgICAgICByZXBsaWNhT3BhY2l0eSA9IG9wYWNpdHkgKiBtX3N0
YXRlLnJlcGxpY2FMYXllci0+bV9vcGFjaXR5OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Qml0bWFwVGV4dHVyZSYgdGV4dHVyZSA9ICp0aWxlLmZyb250QnVmZmVyLnRleHR1cmU7CkBAIC0z
ODgsNyArMzUwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRTZWxmKGNvbnN0IFRl
eHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIEJpdG1hcFRleHR1cmUq
IHRleHR1cmUgPSBtX293bmVkVGlsZXNbaV0udGV4dHVyZS5nZXQoKTsKICAgICAgICAgaWYgKG1f
c3RhdGUucmVwbGljYUxheWVyICYmICFvcHRpb25zLmlzU3VyZmFjZSkgewogICAgICAgICAgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqdGV4dHVyZSwgdGFyZ2V0UmVjdEZv
clRpbGVSZWN0KHRhcmdldFJlY3QsIG1fb3duZWRUaWxlc1tpXS5yZWN0KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdl
dCkubXVsdGlwbHkobV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fdHJhbnNmb3Jtcy5sb2NhbCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5z
Zm9ybXMudGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICogbV9z
dGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGljYU1hc2tUZXh0dXJlID8gcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpIDogbWFza1Rl
eHR1cmUuZ2V0KCkpOwogICAgICAgICB9CkBAIC00MDAsNyArMzYyLDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyTm9kZTo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9w
dGlvbnMpCiAgICAgaWYgKG1fY3VycmVudENvbnRlbnQuY29udGVudFR5cGUgPT0gTWVkaWFDb250
ZW50VHlwZSAmJiBtX2N1cnJlbnRDb250ZW50Lm1lZGlhKSB7CiAgICAgICAgIGlmIChtX3N0YXRl
LnJlcGxpY2FMYXllciAmJiAhb3B0aW9ucy5pc1N1cmZhY2UpCiAgICAgICAgICAgICBtX2N1cnJl
bnRDb250ZW50Lm1lZGlhLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBw
ZXIsIHRhcmdldFJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX3RyYW5zZm9ybXMudGFyZ2V0
KS5tdWx0aXBseShtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLmxvY2FsKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
c3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMudGFyZ2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAqIG1fc3Rh
dGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsaWNhTWFza1RleHR1cmUgPyByZXBsaWNh
TWFza1RleHR1cmUuZ2V0KCkgOiBtYXNrVGV4dHVyZS5nZXQoKSk7CiAgICAgICAgIG1fY3VycmVu
dENvbnRlbnQubWVkaWEtPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBl
ciwgdGFyZ2V0UmVjdCwgbV90cmFuc2Zvcm1zLnRhcmdldCwgb3BhY2l0eSwgb3B0aW9ucy5pc1N1
cmZhY2UgPyAwIDogbWFza1RleHR1cmUuZ2V0KCkpOwpAQCAtNDU1LDYgKzQxNywxMCBAQCBib29s
IFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBh
aW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGNvbnN0IGJvb2wgdXNlSW50ZXJtZWRpYXRlQnVmZmVy
Rm9yUmVwbGljYSA9IG1fc3RhdGUucmVwbGljYUxheWVyICYmIG9wdGlvbnMub3BhY2l0eSA8IDAu
OTk7CiAgICAgY29uc3QgYm9vbCB1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JNYXNrID0gbWFza1Rl
eHR1cmUgJiYgcmVwbGljYU1hc2tUZXh0dXJlOwogICAgIGNvbnN0IEZsb2F0UmVjdCB2aWV3cG9y
dFJlY3QoMCwgMCwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7
CisgICAgLy8gUmV2ZXJzZSB0aGlzIGxheWVyJ3MgdHJhbnNmb3JtIG9uIHRoZSByZXBsaWNhJ3Mg
dHJhbnNmb3JtIGFuZCB1c2UgaXQgd2l0aCB0aGUgY29udGVudHMKKyAgICAvLyBpbnRlcm1lZGlh
dGUgc3VyZmFjZSwgYXBwbGllZCBpbiB0aGUgdmlld3BvcnQgY29vcmRpbmF0ZSBzeXN0ZW0uCisg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVwbGljYU1hdHJpeCA9IG1fc3RhdGUucmVwbGljYUxh
eWVyLT5tX3RyYW5zZm9ybXMudGFyZ2V0OworICAgIHJlcGxpY2FNYXRyaXgubXVsdGlwbHkobV90
cmFuc2Zvcm1zLnRhcmdldC5pbnZlcnNlKCkpOwogCiAgICAgLy8gVGhlIG1hc2sgaGFzIHRvIGJl
IGFkanVzdGVkIHRvIHRhcmdldCBjb29yZGluYXRlcy4KICAgICBpZiAobWFza1RleHR1cmUpIHsK
QEAgLTQ4Niw3ICs0NTIsNyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rp
b24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGlmICh1c2VJ
bnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNhKSB7CiAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1
cmVGcm9tUG9vbChvcHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAg
ICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShyZXBsaWNhU3VyZmFjZS5nZXQo
KSk7Ci0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2Uu
Z2V0KCksIHZpZXdwb3J0UmVjdCwgbV90cmFuc2Zvcm1zLnJlcGxpY2EsIG1fc3RhdGUucmVwbGlj
YUxheWVyLT5tX29wYWNpdHksIHJlcGxpY2FNYXNrVGV4dHVyZS5nZXQoKSk7CisgICAgICAgIG9w
dGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0
UmVjdCwgcmVwbGljYU1hdHJpeCwgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eSwgcmVw
bGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5k
cmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1h
cHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIHN1cmZh
Y2UgPSByZXBsaWNhU3VyZmFjZTsKQEAgLTQ5Niw3ICs0NjIsNyBAQCBib29sIFRleHR1cmVNYXBw
ZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYg
b3B0aW9ucwogCiAgICAgLy8gRHJhdyB0aGUgcmVmbGVjdGlvbi4KICAgICBpZiAoIXVzZUludGVy
bWVkaWF0ZUJ1ZmZlckZvclJlcGxpY2EpCi0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+
ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgbV90cmFuc2Zvcm1zLnJl
cGxpY2EsIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksIHJlcGxpY2FNYXNrVGV4dHVy
ZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1
cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgcmVwbGljYU1hdHJpeCwgbV9zdGF0ZS5yZXBsaWNh
TGF5ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKIAogICAgIC8vIERy
YXcgdGhlIG9yaWdpbmFsLgogICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUo
KnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgb3B0
aW9ucy5vcGFjaXR5LCBtYXNrVGV4dHVyZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmlu
ZGV4IGI0MGNkNWQzOGY1NThmYTlhNTQ2Mjg2OGZlZTRmYWYwMjUwMGI2ZGUuLmQ1OTkwYzRjMGEw
MzcyMjcwNGQwMTYyNGIxNzRjNWRmNTI0YmFhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCkBA
IC0xNzUsMTEgKzE3NSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlck5v
ZGUqIHJvb3RMYXllcigpOwogICAgIHZvaWQgY29tcHV0ZUFsbFRyYW5zZm9ybXMoKTsKKyAgICB2
b2lkIGNvbXB1dGVUcmFuc2Zvcm1zU2VsZihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFy
ZW50VHJhbnNmb3JtKTsKICAgICB2b2lkIGNvbXB1dGVWaXNpYmxlUmVjdChjb25zdCBGbG9hdFJl
Y3QmIHJvb3RWaXNpYmxlUmVjdCk7Ci0gICAgdm9pZCBjb21wdXRlUGVyc3BlY3RpdmVUcmFuc2Zv
cm1JZk5lZWRlZCgpOwotICAgIHZvaWQgY29tcHV0ZVJlcGxpY2FUcmFuc2Zvcm1JZk5lZWRlZCgp
OwogICAgIHZvaWQgY29tcHV0ZU92ZXJsYXBzSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNvbXB1dGVM
b2NhbFRyYW5zZm9ybUlmTmVlZGVkKCk7CiAgICAgdm9pZCBjb21wdXRlVGlsZXMoKTsKICAgICB2
b2lkIHN3YXBDb250ZW50c0J1ZmZlcnMoKTsKICAgICBpbnQgY291bnREZXNjZW5kYW50c1dpdGhD
b250ZW50KCkgY29uc3Q7CkBAIC0yMDksMTEgKzIwNyw4IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1
Y3QgVHJhbnNmb3JtRGF0YSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRhcmdldDsK
LSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVwbGljYTsKICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggZm9yRGVzY2VuZGFudHM7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IGxvY2FsOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBiYXNlOwotICAgICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBwZXJzcGVjdGl2ZTsKICAgICAgICAgZmxvYXQgY2VudGVyWjsKICAg
ICAgICAgVHJhbnNmb3JtRGF0YSgpIHsgfQogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122421</attachid>
            <date>2012-01-13 06:19:57 -0800</date>
            <delta_ts>2012-01-13 06:22:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74719-20120113151707.patch</filename>
            <type>text/plain</type>
            <size>12939</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBmNjUyMDNlMzI3YTYz
MDgxYTVhZTEyMWQ5Njg2MTkzNTQ5N2E1My4uOWE5ZDBkZTY4MDc0YjEwZjVjNzlkNzYwZWZkYzVi
MDMwMmUwMTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTAxLTEyICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKKyAgICAgICAgVGV4
dHVyZU1hcHBlcjogU2ltcGxpZnkgdHJhbnNmb3JtIG1hbmlwdWxhdGlvbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTWFrZSBzdXJlIHRoYXQgdGhl
IHJlcGxpY2Egbm9kZSBoYXMgYSBjb21wbGV0ZSB0cmFuc2Zvcm0gYW5kCisgICAgICAgICAgdXNl
IGl0IGRpcmVjdGx5IGluc3RlYWQgb2Yga2VlcGluZyBhIGNvcHkgaW4gdGhlIHNvdXJjZS4KKyAg
ICAgICAgLSBBcHBseSB0aGUgb3JpZ2luIGFuZCBwb3NpdGlvbiB0cmFuc2xhdGlvbiBvbmx5IG9u
Y2UsIG9uIHRoZQorICAgICAgICAgIHRhcmdldCBhbmQgZGVzY2VuZGFudHMgdHJhbnNmb3Jtcy4K
KyAgICAgICAgLSBVc2UgdG8yZFRyYW5zZm9ybSgpIG9uICFwcmVzZXJ2ZXMzRCBsYXllcnMgaW5z
dGVhZCBvZiBkb2luZworICAgICAgICAgIHRoZSBmbGF0dGVuaW5nIG1hbnVhbGx5LgorICAgICAg
ICAtIFJlbW92ZSBtZW50aW9ucyBvZiBwZXJzcGVjdGl2ZSBhcyB0aGlzIGlzIGhhbmRsZWQgYnkg
V2ViQ29yZQorICAgICAgICAgIHRocm91Z2ggdGhlIGNoaWxkcmVuIHRyYW5zZm9ybS4KKyAgICAg
ICAgLSBBcHBseSB0aGUgaW52ZXJzZSB0YXJnZXQgdHJhbnNmb3JtIG9uIHRoZSByZXBsaWNhIG9u
bHkgd2hlcmUgaXQKKyAgICAgICAgICBpcyBuZWVkZWQgaW4gcGFpbnRSZWZsZWN0aW9uIHNpbmNl
IGl0IHVzZXMgdGhlIGZ1bGwgdHJhbnNmb3JtIGluIHBhaW50U2VsZi4KKyAgICAgICAgLSBNZXJn
ZSB0aGUgYmFzZSBhbmQgbG9jYWwgdHJhbnNmb3Jtcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyTm9kZTo6c2V0VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJOb2RlOjpjb21wdXRlVHJhbnNmb3Jtc1NlbGYpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVBbGxUcmFuc2Zvcm1zKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGYpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmg6CisKKzIwMTItMDEtMTIgIEpvY2VseW4g
VHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KKwogICAgICAgICBUZXh0dXJl
TWFwcGVyOiBGaXggdGhlIGZpbGxzRm9yd2FyZCB0cmFuc2Zvcm0gYWRqdXN0bWVudCBpbiBzeW5j
QW5pbWF0aW9ucy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2MTg0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IGE2NzlhNmNiMzdlYzI3
ZWQ2MjQ2N2QzZWVmNjY5NWNiMmI5Y2U2YjIuLjQ0ZjBjMzcwZjk2NjZjNTQ0ZjUxMTY5NWQzNDRj
MTE5OTQxNzNjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNDcsMjQgKzQ3LDkg
QEAgVGV4dHVyZU1hcHBlck5vZGUqIFRleHR1cmVNYXBwZXJOb2RlOjpyb290TGF5ZXIoKQogCiB2
b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCkKIHsKLSAgICBpZiAobV90cmFuc2Zvcm1zLmJhc2UgPT0gbWF0cml4KQot
ICAgICAgICByZXR1cm47Ci0KICAgICBtX3RyYW5zZm9ybXMuYmFzZSA9IG1hdHJpeDsKIH0KIAot
dm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNmb3JtSWZOZWVk
ZWQoKQotewotICAgIGlmIChtX2NoaWxkcmVuLmlzRW1wdHkoKSB8fCBtX3N0YXRlLmNoaWxkcmVu
VHJhbnNmb3JtLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29uc3QgRmxv
YXRQb2ludCBjZW50ZXJQb2ludCA9IEZsb2F0UG9pbnQobV9zaXplLndpZHRoKCkgLyAyLCBtX3Np
emUuaGVpZ2h0KCkgLyAyKTsKLSAgICBtX3RyYW5zZm9ybXMucGVyc3BlY3RpdmUgPSBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgpCi0gICAgICAgICAgICAudHJhbnNsYXRlKGNlbnRlclBvaW50LngoKSwg
Y2VudGVyUG9pbnQueSgpKQotICAgICAgICAgICAgLm11bHRpcGx5KG1fc3RhdGUuY2hpbGRyZW5U
cmFuc2Zvcm0pCi0gICAgICAgICAgICAudHJhbnNsYXRlKC1jZW50ZXJQb2ludC54KCksIC1jZW50
ZXJQb2ludC55KCkpOwotfQotCiBpbnQgVGV4dHVyZU1hcHBlck5vZGU6OmNvdW50RGVzY2VuZGFu
dHNXaXRoQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3N0YXRlLnZpc2libGUgfHwgKCFt
X3NpemUud2lkdGgoKSAmJiAhbV9zaXplLmhlaWdodCgpICYmIG1fc3RhdGUubWFza3NUb0JvdW5k
cykpCkBAIC04MSwyNiArNjYsMzMgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZU92
ZXJsYXBzSWZOZWVkZWQoKQogICAgIG1fc3RhdGUubWlnaHRIYXZlT3ZlcmxhcHMgPSBjb3VudERl
c2NlbmRhbnRzV2l0aENvbnRlbnQoKSA+IDE7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6
OmNvbXB1dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKQotewotICAgIGlmICghbV9zdGF0ZS5y
ZXBsaWNhTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fdHJhbnNmb3Jtcy5yZXBsaWNh
ID0KLSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdldCkKLSAg
ICAgICAgICAgIC5tdWx0aXBseShtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLmxv
Y2FsKQotICAgICAgICAgICAgLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fdHJhbnNm
b3Jtcy50YXJnZXQpLmludmVyc2UoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNv
bXB1dGVMb2NhbFRyYW5zZm9ybUlmTmVlZGVkKCkKK3ZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNv
bXB1dGVUcmFuc2Zvcm1zU2VsZigpCiB7CiAgICAgZmxvYXQgb3JpZ2luWCA9IG1fc3RhdGUuYW5j
aG9yUG9pbnQueCgpICogbV9zaXplLndpZHRoKCk7CiAgICAgZmxvYXQgb3JpZ2luWSA9IG1fc3Rh
dGUuYW5jaG9yUG9pbnQueSgpICogbV9zaXplLmhlaWdodCgpOwotICAgIG1fdHJhbnNmb3Jtcy5s
b2NhbCA9Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KCkKLSAgICAgICAgLnRyYW5zbGF0
ZTNkKG9yaWdpblggKyBtX3N0YXRlLnBvcy54KCksIG9yaWdpblkgKyBtX3N0YXRlLnBvcy55KCks
IG1fc3RhdGUuYW5jaG9yUG9pbnQueigpICkKLSAgICAgICAgLm11bHRpcGx5KG1fdHJhbnNmb3Jt
cy5iYXNlKQotICAgICAgICAudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtbV9zdGF0
ZS5hbmNob3JQb2ludC56KCkpOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcGFyZW50VHJh
bnNmb3JtOworICAgIGlmIChtX3BhcmVudCkKKyAgICAgICAgcGFyZW50VHJhbnNmb3JtID0gbV9w
YXJlbnQtPm1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50czsKKyAgICBlbHNlIGlmIChtX2VmZmVj
dFRhcmdldCkKKyAgICAgICAgcGFyZW50VHJhbnNmb3JtID0gbV9lZmZlY3RUYXJnZXQtPm1fdHJh
bnNmb3Jtcy50YXJnZXQ7CisgICAgbV90cmFuc2Zvcm1zLnRhcmdldCA9CisgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KHBhcmVudFRyYW5zZm9ybSkKKyAgICAgICAgICAgIC50cmFuc2xhdGUz
ZChvcmlnaW5YICsgbV9zdGF0ZS5wb3MueCgpLCBvcmlnaW5ZICsgbV9zdGF0ZS5wb3MueSgpLCBt
X3N0YXRlLmFuY2hvclBvaW50LnooKSApCisgICAgICAgICAgICAubXVsdGlwbHkobV90cmFuc2Zv
cm1zLmJhc2UpOworCisgICAgLy8gVGhlIGRlc2NlbmRhbnRzIHRyYW5zZm9ybSB3aWxsIHRha2Ug
aXQgZnJvbSBoZXJlLCBpZiBuZWVkZWQuCisgICAgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRz
ID0gbV90cmFuc2Zvcm1zLnRhcmdldDsKKyAgICBtX3RyYW5zZm9ybXMudGFyZ2V0LnRyYW5zbGF0
ZTNkKC1vcmlnaW5YLCAtb3JpZ2luWSwgLW1fc3RhdGUuYW5jaG9yUG9pbnQueigpKTsKKworICAg
IGlmIChtX2NoaWxkcmVuLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSW4g
Y2FzZSBhIHBhcmVudCBoYWQgcHJlc2VydmVzM0QgYW5kIHRoaXMgbGF5ZXIgaGFzIG5vdCwgZmxh
dHRlbiBvdXIgY2hpbGRyZW4uCisgICAgaWYgKCFtX3N0YXRlLnByZXNlcnZlczNEKQorICAgICAg
ICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgPSBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFu
dHMudG8yZFRyYW5zZm9ybSgpOworICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5tdWx0
aXBseShtX3N0YXRlLmNoaWxkcmVuVHJhbnNmb3JtKTsKKyAgICBtX3RyYW5zZm9ybXMuZm9yRGVz
Y2VuZGFudHMudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtbV9zdGF0ZS5hbmNob3JQ
b2ludC56KCkpOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpjb21wdXRlQWxsVHJhbnNm
b3JtcygpCkBAIC0xMDgsMzUgKzEwMCwxNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpjb21w
dXRlQWxsVHJhbnNmb3JtcygpCiAgICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5t
YXNrc1RvQm91bmRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb21wdXRlTG9jYWxUcmFuc2Zv
cm1JZk5lZWRlZCgpOwotICAgIGNvbXB1dGVSZXBsaWNhVHJhbnNmb3JtSWZOZWVkZWQoKTsKLSAg
ICBjb21wdXRlUGVyc3BlY3RpdmVUcmFuc2Zvcm1JZk5lZWRlZCgpOwotCi0gICAgVGV4dHVyZU1h
cHBlck5vZGUqIHBhcmVudCA9IG1fcGFyZW50ID8gbV9wYXJlbnQgOiBtX2VmZmVjdFRhcmdldDsK
LSAgICBtX3RyYW5zZm9ybXMudGFyZ2V0ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgocGFyZW50ID8g
cGFyZW50LT5tX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgOiBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgpKS5tdWx0aXBseShtX3RyYW5zZm9ybXMubG9jYWwpOworICAgIGNvbXB1dGVUcmFuc2Zvcm1z
U2VsZigpOwogCiAgICAgbV9zdGF0ZS52aXNpYmxlID0gbV9zdGF0ZS5iYWNrZmFjZVZpc2liaWxp
dHkgfHwgbV90cmFuc2Zvcm1zLnRhcmdldC5pbnZlcnNlKCkubTMzKCkgPj0gMDsKLSAgICBpZiAo
IW1fc3RhdGUudmlzaWJsZSkKLSAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhpcyB0cmFuc2Zv
cm0gaXMgb25seSBhcHBsaWVkIGlmIHVzaW5nIGEgdHdvLXBhc3MgZm9yIHRoZSByZXBsaWNhLCBi
ZWNhdXNlIHRoZSB0cmFuc2Zvcm0gbmVlZHMgdG8gYmUgYWRqdXN0ZWQgdG8gdGhlIHNpemUgb2Yg
dGhlIGludGVybWVkaWF0ZSBzdXJmYWNlLCBpbnN0ZWFmIG9mIHRoZSBzaXplIG9mIHRoZSBjb250
ZW50IGxheWVyLgotICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5tX3N0YXRlLnByZXNlcnZlczNE
KQorICAgIGlmIChtX3BhcmVudCAmJiBtX3BhcmVudC0+bV9zdGF0ZS5wcmVzZXJ2ZXMzRCkKICAg
ICAgICAgbV90cmFuc2Zvcm1zLmNlbnRlclogPSBtX3RyYW5zZm9ybXMudGFyZ2V0Lm1hcFBvaW50
KEZsb2F0UG9pbnQzRChtX3NpemUud2lkdGgoKSAvIDIsIG1fc2l6ZS5oZWlnaHQoKSAvIDIsIDAp
KS56KCk7CiAKLSAgICBpZiAoIW1fY2hpbGRyZW4uc2l6ZSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgPSBtX3RyYW5zZm9ybXMudGFyZ2V0Owot
Ci0gICAgaWYgKCFtX3N0YXRlLnByZXNlcnZlczNEKSB7Ci0gICAgICAgIG1fdHJhbnNmb3Jtcy5m
b3JEZXNjZW5kYW50cyA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KAotICAgICAgICAgICAgICAgICAg
ICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTExKCksIG1fdHJhbnNmb3Jtcy5mb3JEZXNj
ZW5kYW50cy5tMTIoKSwgMCwgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm0xNCgpLAotICAg
ICAgICAgICAgICAgICAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTIxKCksIG1fdHJh
bnNmb3Jtcy5mb3JEZXNjZW5kYW50cy5tMjIoKSwgMCwgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRh
bnRzLm0yNCgpLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAg
ICAgICAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubTQxKCksIG1fdHJhbnNmb3Jtcy5m
b3JEZXNjZW5kYW50cy5tNDIoKSwgMCwgbV90cmFuc2Zvcm1zLmZvckRlc2NlbmRhbnRzLm00NCgp
KTsKLSAgICB9Ci0KLSAgICBtX3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMubXVsdGlwbHkobV90
cmFuc2Zvcm1zLnBlcnNwZWN0aXZlKTsKKyAgICBpZiAobV9zdGF0ZS5tYXNrTGF5ZXIpCisgICAg
ICAgIG1fc3RhdGUubWFza0xheWVyLT5jb21wdXRlQWxsVHJhbnNmb3JtcygpOworICAgIGlmICht
X3N0YXRlLnJlcGxpY2FMYXllcikKKyAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPmNvbXB1
dGVBbGxUcmFuc2Zvcm1zKCk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVU
aWxlcygpCkBAIC00MDEsNyArMzc1LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRT
ZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiAKICAgICAgICAg
ICAgIGZsb2F0IHJlcGxpY2FPcGFjaXR5ID0gMS4wOwogICAgICAgICAgICAgaWYgKG1fc3RhdGUu
cmVwbGljYUxheWVyKSB7Ci0gICAgICAgICAgICAgICAgcmVwbGljYU1hdHJpeCA9IFRyYW5zZm9y
bWF0aW9uTWF0cml4KG1fdHJhbnNmb3Jtcy50YXJnZXQpLnNjYWxlKDEuMCAvIHRpbGUuc2NhbGUp
Lm11bHRpcGx5KG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMubG9jYWwpOworICAg
ICAgICAgICAgICAgIHJlcGxpY2FNYXRyaXggPSBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFu
c2Zvcm1zLnRhcmdldC5zY2FsZSgxLjAgLyB0aWxlLnNjYWxlKTsKICAgICAgICAgICAgICAgICBy
ZXBsaWNhT3BhY2l0eSA9IG9wYWNpdHkgKiBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV9vcGFjaXR5
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSA9ICp0
aWxlLmZyb250QnVmZmVyLnRleHR1cmU7CkBAIC00MTgsNyArMzkyLDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyTm9kZTo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9w
dGlvbnMpCiAgICAgICAgIEJpdG1hcFRleHR1cmUqIHRleHR1cmUgPSBtX293bmVkVGlsZXNbaV0u
dGV4dHVyZS5nZXQoKTsKICAgICAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyICYmICFvcHRp
b25zLmlzU3VyZmFjZSkgewogICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3
VGV4dHVyZSgqdGV4dHVyZSwgdGFyZ2V0UmVjdEZvclRpbGVSZWN0KHRhcmdldFJlY3QsIG1fb3du
ZWRUaWxlc1tpXS5yZWN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXgobV90cmFuc2Zvcm1zLnRhcmdldCkubXVsdGlwbHkobV9zdGF0ZS5yZXBsaWNh
TGF5ZXItPm1fdHJhbnNmb3Jtcy5sb2NhbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMudGFyZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGFjaXR5ICogbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGljYU1hc2tUZXh0dXJlID8gcmVw
bGljYU1hc2tUZXh0dXJlLmdldCgpIDogbWFza1RleHR1cmUuZ2V0KCkpOwogICAgICAgICB9CkBA
IC00MzAsNyArNDA0LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRTZWxmKGNvbnN0
IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgaWYgKG1fY3VycmVudENv
bnRlbnQuY29udGVudFR5cGUgPT0gTWVkaWFDb250ZW50VHlwZSAmJiBtX2N1cnJlbnRDb250ZW50
Lm1lZGlhKSB7CiAgICAgICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllciAmJiAhb3B0aW9ucy5p
c1N1cmZhY2UpCiAgICAgICAgICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhLT5wYWludFRvVGV4
dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIHRhcmdldFJlY3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeChtX3RyYW5zZm9ybXMudGFyZ2V0KS5tdWx0aXBseShtX3N0YXRlLnJlcGxpY2FM
YXllci0+bV90cmFuc2Zvcm1zLmxvY2FsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5z
Zm9ybXMudGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3BhY2l0eSAqIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsaWNhTWFza1RleHR1cmUgPyByZXBsaWNhTWFza1RleHR1cmUuZ2V0KCkgOiBtYXNrVGV4
dHVyZS5nZXQoKSk7CiAgICAgICAgIG1fY3VycmVudENvbnRlbnQubWVkaWEtPnBhaW50VG9UZXh0
dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgdGFyZ2V0UmVjdCwgbV90cmFuc2Zvcm1z
LnRhcmdldCwgb3BhY2l0eSwgb3B0aW9ucy5pc1N1cmZhY2UgPyAwIDogbWFza1RleHR1cmUuZ2V0
KCkpOwpAQCAtNDg1LDYgKzQ1OSwxMCBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJl
ZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGNv
bnN0IGJvb2wgdXNlSW50ZXJtZWRpYXRlQnVmZmVyRm9yUmVwbGljYSA9IG1fc3RhdGUucmVwbGlj
YUxheWVyICYmIG9wdGlvbnMub3BhY2l0eSA8IDAuOTk7CiAgICAgY29uc3QgYm9vbCB1c2VJbnRl
cm1lZGlhdGVCdWZmZXJGb3JNYXNrID0gbWFza1RleHR1cmUgJiYgcmVwbGljYU1hc2tUZXh0dXJl
OwogICAgIGNvbnN0IEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QoMCwgMCwgdmlld3BvcnRTaXplLndp
ZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CisgICAgLy8gUmV2ZXJzZSB0aGlzIGxheWVy
J3MgdHJhbnNmb3JtIG9uIHRoZSByZXBsaWNhJ3MgdHJhbnNmb3JtIGFuZCB1c2UgaXQgd2l0aCB0
aGUgY29udGVudHMKKyAgICAvLyBpbnRlcm1lZGlhdGUgc3VyZmFjZSwgYXBwbGllZCBpbiB0aGUg
dmlld3BvcnQgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVw
bGljYU1hdHJpeCA9IG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybXMudGFyZ2V0Owor
ICAgIHJlcGxpY2FNYXRyaXgubXVsdGlwbHkobV90cmFuc2Zvcm1zLnRhcmdldC5pbnZlcnNlKCkp
OwogCiAgICAgLy8gVGhlIG1hc2sgaGFzIHRvIGJlIGFkanVzdGVkIHRvIHRhcmdldCBjb29yZGlu
YXRlcy4KICAgICBpZiAobWFza1RleHR1cmUpIHsKQEAgLTUxNiw3ICs0OTQsNyBAQCBib29sIFRl
eHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50
T3B0aW9ucyYgb3B0aW9ucwogICAgIGlmICh1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNh
KSB7CiAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25zLnRleHR1cmVN
YXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5i
aW5kU3VyZmFjZShyZXBsaWNhU3VyZmFjZS5nZXQoKSk7Ci0gICAgICAgIG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgbV90cmFu
c2Zvcm1zLnJlcGxpY2EsIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksIHJlcGxpY2FN
YXNrVGV4dHVyZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1Rl
eHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgcmVwbGljYU1hdHJpeCwgbV9zdGF0
ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAg
ICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwg
dmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQo
KSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2wo
c3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIHN1cmZhY2UgPSByZXBsaWNhU3VyZmFjZTsKQEAgLTUy
Niw3ICs1MDQsNyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29u
c3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAgLy8gRHJhdyB0aGUg
cmVmbGVjdGlvbi4KICAgICBpZiAoIXVzZUludGVybWVkaWF0ZUJ1ZmZlckZvclJlcGxpY2EpCi0g
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCks
IHZpZXdwb3J0UmVjdCwgbV90cmFuc2Zvcm1zLnJlcGxpY2EsIG1fc3RhdGUucmVwbGljYUxheWVy
LT5tX29wYWNpdHksIHJlcGxpY2FNYXNrVGV4dHVyZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwg
cmVwbGljYU1hdHJpeCwgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1h
c2tUZXh0dXJlLmdldCgpKTsKIAogICAgIC8vIERyYXcgdGhlIG9yaWdpbmFsLgogICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVj
dCwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgb3B0aW9ucy5vcGFjaXR5LCBtYXNrVGV4dHVyZS5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmluZGV4IDRlZTM3NTc0NzQ2ZmVmNzQyYTg2Y2U5
YWVhOTg0NzBhMjQxNDZjODIuLmU0YWMxYjFkMjQ0ZTdiZTM1YTFmNWZkNmVlYWY1OTFlYWY1ZDRi
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCkBAIC0xNzUsMTEgKzE3NSw5IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlck5vZGUqIHJvb3RMYXllcigpOwogICAgIHZvaWQg
Y29tcHV0ZUFsbFRyYW5zZm9ybXMoKTsKKyAgICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1zU2VsZigp
OwogICAgIHZvaWQgY29tcHV0ZVZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcm9vdFZpc2li
bGVSZWN0KTsKLSAgICB2b2lkIGNvbXB1dGVQZXJzcGVjdGl2ZVRyYW5zZm9ybUlmTmVlZGVkKCk7
Ci0gICAgdm9pZCBjb21wdXRlUmVwbGljYVRyYW5zZm9ybUlmTmVlZGVkKCk7CiAgICAgdm9pZCBj
b21wdXRlT3ZlcmxhcHNJZk5lZWRlZCgpOwotICAgIHZvaWQgY29tcHV0ZUxvY2FsVHJhbnNmb3Jt
SWZOZWVkZWQoKTsKICAgICB2b2lkIGNvbXB1dGVUaWxlcygpOwogICAgIHZvaWQgc3dhcENvbnRl
bnRzQnVmZmVycygpOwogICAgIGludCBjb3VudERlc2NlbmRhbnRzV2l0aENvbnRlbnQoKSBjb25z
dDsKQEAgLTIwOSwxMSArMjA3LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc01vcmVUaGFuT25l
VGlsZSgpIGNvbnN0OwogICAgIHN0cnVjdCBUcmFuc2Zvcm1EYXRhIHsKICAgICAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggdGFyZ2V0OwotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByZXBs
aWNhOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBmb3JEZXNjZW5kYW50czsKLSAgICAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbG9jYWw7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGJhc2U7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHBlcnNwZWN0aXZlOwogICAg
ICAgICBmbG9hdCBjZW50ZXJaOwogICAgICAgICBUcmFuc2Zvcm1EYXRhKCkgeyB9CiAgICAgfTsK
</data>
<flag name="review"
          id="123201"
          type_id="1"
          status="+"
          setter="noam"
    />
          </attachment>
      

    </bug>

</bugzilla>