<?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>103215</bug_id>
          
          <creation_ts>2012-11-25 22:19:42 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Refactor code managing a backing store in LayerTreeRenderer.</short_desc>
          <delta_ts>2012-11-26 14:49:16 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>103298</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775149</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 22:19:42 -0800</bug_when>
    <thetext>This patch makes LayerTreeRenderer assign a content backing store to
TextureMapperLayer only in setLayerState(). Currently, createTile() can assign
the backing store to TextureMapperLayer and it can break the invariant condition
of TextureMapperLayer: TextureMapperLayer can have its own backing store only if
the layer has following conditions: drawsContent, contentsVisible and non empty
size.

In addition, the modified code about creating and removing a backing store
matches the same purpose code of CoordinatedGraphicsLayer and
GraphicsLayerTextureMapepr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775151</commentid>
    <comment_count>1</comment_count>
      <attachid>175925</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 22:29:22 -0800</bug_when>
    <thetext>Created attachment 175925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775158</commentid>
    <comment_count>2</comment_count>
      <attachid>175925</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-25 22:41:11 -0800</bug_when>
    <thetext>Comment on attachment 175925
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:416
&gt; +    if (graphicsLayer-&gt;drawsContent() &amp;&amp; graphicsLayer-&gt;contentsAreVisible() &amp;&amp; !graphicsLayer-&gt;size().isEmpty())

Put this in a static function layerShouldHaveBackingStore

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:419
&gt; +    else if (getBackingStore(graphicsLayer))
&gt; +        removeBackingStore(graphicsLayer);

I would just have removeBackingStore return early if there is no backing store.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:427
&gt; +    if (getBackingStore(graphicsLayer))
&gt; +        return;
&gt; +
&gt;      TextureMapperLayer* layer = toTextureMapperLayer(graphicsLayer);

I&apos;d prefer it if this function didn&apos;t call getBackingStore, but returned early on if layer-&gt;backingStore()

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:439
&gt;      RefPtr&lt;CoordinatedBackingStore&gt; backingStore = static_cast&lt;CoordinatedBackingStore*&gt;(layer-&gt;backingStore().get());
&gt;      ASSERT(backingStore);

This is not needed.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:465
&gt; +    // LayerTreeRenderer::setLayerState removes a backing store.

Unnecessary comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775169</commentid>
    <comment_count>3</comment_count>
      <attachid>175929</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 23:03:27 -0800</bug_when>
    <thetext>Created attachment 175929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775170</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 23:05:08 -0800</bug_when>
    <thetext>(In reply to comment #2)

Thanks for review!

&gt; (From update of attachment 175925 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175925&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:416
&gt; &gt; +    if (graphicsLayer-&gt;drawsContent() &amp;&amp; graphicsLayer-&gt;contentsAreVisible() &amp;&amp; !graphicsLayer-&gt;size().isEmpty())
&gt; 
&gt; Put this in a static function layerShouldHaveBackingStore
Done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:419
&gt; &gt; +    else if (getBackingStore(graphicsLayer))
&gt; &gt; +        removeBackingStore(graphicsLayer);
&gt; 
&gt; I would just have removeBackingStore return early if there is no backing store.
Done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:427
&gt; &gt; +    if (getBackingStore(graphicsLayer))
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt;      TextureMapperLayer* layer = toTextureMapperLayer(graphicsLayer);
&gt; 
&gt; I&apos;d prefer it if this function didn&apos;t call getBackingStore, but returned early on if layer-&gt;backingStore()
Done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:439
&gt; &gt;      RefPtr&lt;CoordinatedBackingStore&gt; backingStore = static_cast&lt;CoordinatedBackingStore*&gt;(layer-&gt;backingStore().get());
&gt; &gt;      ASSERT(backingStore);
&gt; 
&gt; This is not needed.
You&apos;re right! Done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:465
&gt; &gt; +    // LayerTreeRenderer::setLayerState removes a backing store.
&gt; 
&gt; Unnecessary comment.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775175</commentid>
    <comment_count>5</comment_count>
      <attachid>175929</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-25 23:17:34 -0800</bug_when>
    <thetext>Comment on attachment 175929
Patch

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

&gt; Source/WebKit2/ChangeLog:39
&gt; +            if needed. Moreover, we must sync a layer state prior to create a

create -&gt; creating.
Also lines are too short...

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:422
&gt; +    if (!shouldHaveBackingStore &amp;&amp; getBackingStore(graphicsLayer)) {

The call to getBackingStore(graphicsLayer) is redundant.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:427
&gt; +    if (shouldHaveBackingStore)

This is not really needed if the above call is redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775187</commentid>
    <comment_count>6</comment_count>
      <attachid>175935</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 23:42:14 -0800</bug_when>
    <thetext>Created attachment 175935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775188</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-25 23:43:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 175929 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175929&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:39
&gt; &gt; +            if needed. Moreover, we must sync a layer state prior to create a
&gt; 
&gt; create -&gt; creating.
&gt; Also lines are too short...
Do you mean writing more words in lines? If so, done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:422
&gt; &gt; +    if (!shouldHaveBackingStore &amp;&amp; getBackingStore(graphicsLayer)) {
&gt; 
&gt; The call to getBackingStore(graphicsLayer) is redundant.
Ok, Done.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:427
&gt; &gt; +    if (shouldHaveBackingStore)
&gt; 
&gt; This is not really needed if the above call is redundant.
Ok, Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775218</commentid>
    <comment_count>8</comment_count>
      <attachid>175937</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 00:31:30 -0800</bug_when>
    <thetext>Created attachment 175937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775219</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 00:31:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=175937) [details]
&gt; Patch

post for running ews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775532</commentid>
    <comment_count>10</comment_count>
      <attachid>175937</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-26 09:04:45 -0800</bug_when>
    <thetext>Comment on attachment 175937
Patch

LGTM, but EWS is purple so it probably doesn&apos;t apply...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775886</commentid>
    <comment_count>11</comment_count>
      <attachid>176063</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 14:19:24 -0800</bug_when>
    <thetext>Created attachment 176063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775887</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 14:20:24 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 175937 [details])
&gt; LGTM, but EWS is purple so it probably doesn&apos;t apply...

Thanks for review!

I don&apos;t know why ews is purlple. I tried again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775911</commentid>
    <comment_count>13</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 14:44:18 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 175937 [details] [details])
&gt; &gt; LGTM, but EWS is purple so it probably doesn&apos;t apply...
&gt; 
&gt; Thanks for review!
&gt; 
&gt; I don&apos;t know why ews is purlple. I tried again.

EWS is purple too..

I think this bug has some problems...

I&apos;ll make a duplicated new bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775921</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 14:46:26 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 103298 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175925</attachid>
            <date>2012-11-25 22:29:22 -0800</date>
            <delta_ts>2012-11-25 23:03:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103215-20121126152646.patch</filename>
            <type>text/plain</type>
            <size>11146</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDIyNGUwM2Q1NTVjMjY4
ODczOWFmNWM5MzQ4NDYxNDM2NTIzYTdiZi4uZjYzMGMxOWJjZDI2MDFlY2MwNzBmMWFhZDk2ZjE0
NDk2Nzc2MGJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTExLTI1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIG1hbmFnaW5nIGEgYmFja2luZyBzdG9yZSBpbiBM
YXllclRyZWVSZW5kZXJlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgTGF5ZXJUcmVlUmVuZGVyZXIgYXNzaWduIGEgY29u
dGVudCBiYWNraW5nIHN0b3JlIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBvbmx5IGlu
IHNldExheWVyU3RhdGUoKS4gQ3VycmVudGx5LCBjcmVhdGVUaWxlKCkgY2FuIGFzc2lnbgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byBUZXh0dXJlTWFwcGVyTGF5ZXIgYW5kIGl0IGNhbiBi
cmVhayB0aGUgaW52YXJpYW50IGNvbmRpdGlvbgorICAgICAgICBvZiBUZXh0dXJlTWFwcGVyTGF5
ZXI6IFRleHR1cmVNYXBwZXJMYXllciBjYW4gaGF2ZSBpdHMgb3duIGJhY2tpbmcgc3RvcmUgb25s
eSBpZgorICAgICAgICB0aGUgbGF5ZXIgaGFzIGZvbGxvd2luZyBjb25kaXRpb25zOiBkcmF3c0Nv
bnRlbnQsIGNvbnRlbnRzVmlzaWJsZSBhbmQgbm9uIGVtcHR5CisgICAgICAgIHNpemUuCisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIHRoZSBtb2RpZmllZCBjb2RlIGFib3V0IGNyZWF0aW5nIGFuZCBy
ZW1vdmluZyBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgbWF0Y2hlcyB0aGUgc2FtZSBwdXJwb3Nl
IGNvZGUgb2YgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGFuZAorICAgICAgICBHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcGVwci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnNldExheWVyU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5k
ZXJlcjo6Z2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZSk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3Rv
cmVTaXplVG9MYXllclNpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
Y3JlYXRlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVU
aWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSk6CisgICAgICAgICAgICBUaGlzIG1l
dGhvZCBkb2VzIG5vdCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGFueW1vcmUgYmVjYXVzZQorICAg
ICAgICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpIGNhbiBjcmVh
dGUgYSBiYWNraW5nIHN0b3JlCisgICAgICAgICAgICBpZiBuZWVkZWQuIE1vcmVvdmVyLCB3ZSBt
dXN0IHN5bmMgYSBsYXllciBzdGF0ZSBwcmlvciB0byBjcmVhdGUgYQorICAgICAgICAgICAgYmFj
a2luZyBzdG9yZSBhZnRlciB0aGlzIHBhdGNoLCBiZWNhdXNlCisgICAgICAgICAgICBMYXllclRy
ZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpIGRvZXMgbm90IGNyZWF0ZSBhIGJhY2tpbmcgc3RvcmUK
KyAgICAgICAgICAgIGFueW1vcmUuCisKIDIwMTItMTEtMjMgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IEFk
ZCBDb29yZGluYXRlZFN1cmZhY2UgdG8gcmVtb3ZlIHRoZSBkZXBlbmRlbmN5IG9mIFNoYXJlYWJs
ZVN1cmZhY2UgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCBhZjAzMDJjYzZhZjFkNmM2ZjIyMjJmMmMy
ODU3N2I4MTNhNzIyMDhjLi5kMjk5YjIzNmIzNThlNDk2YjkzOTk0NjE2ODY1MjAyNGY1ZWVkMmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC05
MiwxMSArOTIsNiBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKGlu
dCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29ucwogICAgIGl0LT52YWx1ZS5zZXRC
YWNrQnVmZmVyKHRpbGVSZWN0LCBzb3VyY2VSZWN0LCBiYWNrQnVmZmVyLCBvZmZzZXQpOwogfQog
Ci1ib29sIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjppc0VtcHR5KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV90aWxlcy5zaXplKCkgPT0gbV90aWxlc1RvUmVtb3ZlLnNpemUoKTsKLX0KLQogUGFz
c1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgp
IGNvbnN0CiB7CiAgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUuaAppbmRleCAwMmQ5MTVlNjQxODRlMjE3NWQ0MWY0M2Y0M2Uz
YzI1MzdkMGQ0MGQwLi5lZjI3N2UyMmJlYTg4ODU1Zjc0NDAyZDMxNWJjMDM4N2EzOTU4ZjU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKQEAgLTYxLDcgKzYx
LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZShpbnQpOwogICAgIHZvaWQgcmVtb3Zl
QWxsVGlsZXMoKTsKICAgICB2b2lkIHVwZGF0ZVRpbGUoaW50LCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJm
YWNlPiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25z
dDsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKTsgfQogICAg
IHZvaWQgY29tbWl0VGlsZU9wZXJhdGlvbnMoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciopOwogICAg
IFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IDIwMTc1ZTUwODgzODg1ZWQ2NTAz
ODVhYjQ3YTY2MGMwNWU2OGJjNTkuLjA2YTI1ZTgzZWE5ZTEwZDdhNTNmZWY5YzE0M2RhYmUyZGEy
NjZiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTM1MSw2ICsz
NTEsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKFdlYkxheWVySUQg
aWQsIGNvbnN0IFdlYkxheWVySW5mbyYgbGF5ZXJJbgogICAgICAgICBtX2ZpeGVkTGF5ZXJzLnJl
bW92ZShpZCk7CiAKICAgICBhc3NpZ25JbWFnZUJhY2tpbmdUb0xheWVyKGxheWVyLCBsYXllcklu
Zm8uaW1hZ2VJRCk7CisgICAgcHJlcGFyZUNvbnRlbnRCYWNraW5nU3RvcmUobGF5ZXIpOwogCiAg
ICAgLy8gTmV2ZXIgbWFrZSB0aGUgcm9vdCBsYXllciBjbGlwLgogICAgIGxheWVyLT5zZXRNYXNr
c1RvQm91bmRzKGxheWVySW5mby5pc1Jvb3RMYXllciA/IGZhbHNlIDogbGF5ZXJJbmZvLm1hc2tz
VG9Cb3VuZHMpOwpAQCAtNDAzLDM1ICs0MDQsNDYgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
c2V0Um9vdExheWVySUQoV2ViTGF5ZXJJRCBsYXllcklEKQogICAgIG1fcm9vdExheWVyLT5hZGRD
aGlsZChsYXllcik7CiB9CiAKLVBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IExh
eWVyVHJlZVJlbmRlcmVyOjpnZXRCYWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBMYXllclRyZWVSZW5kZXJlcjo6Z2V0QmFj
a2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVyZU1h
cHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGdyYXBoaWNzTGF5ZXIpOwog
ICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBi
YWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVy
LT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7Ci0gICAgaWYgKCFiYWNraW5nU3RvcmUpIHsKLSAgICAg
ICAgYmFja2luZ1N0b3JlID0gQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpOwotICAg
ICAgICBsYXllci0+c2V0QmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSk7Ci0gICAgfQotICAgIEFT
U0VSVChiYWNraW5nU3RvcmUpOwotICAgIHJldHVybiBiYWNraW5nU3RvcmU7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKj4obGF5ZXItPmJhY2tpbmdTdG9y
ZSgpLmdldCgpKTsKK30KKwordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cHJlcGFyZUNvbnRlbnRC
YWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBpZiAoZ3Jh
cGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkgJiYgZ3JhcGhpY3NMYXllci0+Y29udGVudHNBcmVW
aXNpYmxlKCkgJiYgIWdyYXBoaWNzTGF5ZXItPnNpemUoKS5pc0VtcHR5KCkpCisgICAgICAgIGNy
ZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKGdyYXBoaWNzTGF5ZXIpOworICAgIGVsc2UgaWYgKGdl
dEJhY2tpbmdTdG9yZShncmFwaGljc0xheWVyKSkKKyAgICAgICAgcmVtb3ZlQmFja2luZ1N0b3Jl
KGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNr
aW5nU3RvcmVJZk5lZWRlZChHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6Y3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllcikKIHsKKyAgICBpZiAoZ2V0QmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIp
KQorICAgICAgICByZXR1cm47CisKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9U
ZXh0dXJlTWFwcGVyTGF5ZXIoZ3JhcGhpY3NMYXllcik7CiAgICAgQVNTRVJUKGxheWVyKTsKLSAg
ICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IHN0YXRpY19j
YXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKj4obGF5ZXItPmJhY2tpbmdTdG9yZSgpLmdldCgp
KTsKLSAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKLSAgICBpZiAoYmFja2luZ1N0b3JlLT5pc0Vt
cHR5KCkpCi0gICAgICAgIGxheWVyLT5zZXRCYWNraW5nU3RvcmUoMCk7CisgICAgUmVmUHRyPENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNyZWF0ZSgpKTsKKyAgICBiYWNraW5nU3RvcmUtPnNldFNpemUoZ3JhcGhpY3NMYXllci0+
c2l6ZSgpKTsKKyAgICBsYXllci0+c2V0QmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSk7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXpl
KEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpy
ZW1vdmVCYWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoZ3JhcGhpY3NM
YXllcik7CiAgICAgQVNTRVJUKGxheWVyKTsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU+IGJhY2tpbmdTdG9yZSA9IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
Kj4obGF5ZXItPmJhY2tpbmdTdG9yZSgpLmdldCgpKTsKICAgICBBU1NFUlQoYmFja2luZ1N0b3Jl
KTsKKyAgICBsYXllci0+c2V0QmFja2luZ1N0b3JlKDApOworfQorCit2b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpyZXNldEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQoreworICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3Rv
cmUgPSBnZXRCYWNraW5nU3RvcmUoZ3JhcGhpY3NMYXllcik7CisgICAgQVNTRVJUKGJhY2tpbmdT
dG9yZSk7CiAgICAgYmFja2luZ1N0b3JlLT5zZXRTaXplKGdyYXBoaWNzTGF5ZXItPnNpemUoKSk7
CiB9CiAKQEAgLTQzOSw3ICs0NTEsOCBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVU
aWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUpCiB7CiAgICAg
R3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxh
eWVyKTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9
IGdldEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqIGJh
Y2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgQVNTRVJUKGJhY2tpbmdT
dG9yZSk7CiAgICAgYmFja2luZ1N0b3JlLT5jcmVhdGVUaWxlKHRpbGVJRCwgc2NhbGUpOwogICAg
IHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxheWVyKTsKIH0KQEAgLTQ0OCwxMSAr
NDYxLDE0IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBs
YXllcklELCBpbnQgdGlsZUlEKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJC
eUlEKGxheWVySUQpOwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUobGF5ZXIpOworICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUo
bGF5ZXIpOworICAgIC8vIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlIHJlbW92ZXMg
YSBiYWNraW5nIHN0b3JlLgorICAgIGlmICghYmFja2luZ1N0b3JlKQorICAgICAgICByZXR1cm47
CisKICAgICBiYWNraW5nU3RvcmUtPnJlbW92ZVRpbGUodGlsZUlEKTsKICAgICByZXNldEJhY2tp
bmdTdG9yZVNpemVUb0xheWVyU2l6ZShsYXllcik7CiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBl
bmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOwotICAgIHJlbW92ZUJhY2tpbmdTdG9yZUlm
TmVlZGVkKGxheWVyKTsKIH0KIAogdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlVGlsZShX
ZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmIHVwZGF0ZSkK
QEAgLTQ2MCw2ICs0NzYsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKFdl
YkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgVGlsZVVwZAogICAgIEdyYXBoaWNz
TGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGxheWVySUQpOwogICAgIEFTU0VSVChsYXllcik7CiAg
ICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNr
aW5nU3RvcmUobGF5ZXIpOworICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwogICAgIGJhY2tpbmdT
dG9yZS0+dXBkYXRlVGlsZSh0aWxlSUQsIHVwZGF0ZS5zb3VyY2VSZWN0LCB1cGRhdGUudGlsZVJl
Y3QsIHVwZGF0ZS5zdXJmYWNlLCB1cGRhdGUub2Zmc2V0KTsKICAgICByZXNldEJhY2tpbmdTdG9y
ZVNpemVUb0xheWVyU2l6ZShsYXllcik7CiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdC
dWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgK
aW5kZXggNzJiNTA1OTc2NDBlMGI3NzllYWNjYmQ3ZTg5MTc3MWI2ZDllZjc3NS4uNmQyODM3NGZl
NzllZGQzNjE4YzhmMDJjZTBmNzQ0Y2VkZDZjOGM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oCkBAIC0xNDUsOCArMTQ1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVM
YXllcihXZWJMYXllcklEKTsKICAgICB2b2lkIGNvbW1pdFRpbGVPcGVyYXRpb25zKCk7CiAKLSAg
ICBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBnZXRCYWNraW5nU3RvcmUoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgcmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVk
ZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
KiBnZXRCYWNraW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZvaWQgcHJl
cGFyZUNvbnRlbnRCYWNraW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZv
aWQgY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwor
ICAgIHZvaWQgcmVtb3ZlQmFja2luZ1N0b3JlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2b2lkIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKj4gTGF5ZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZTU0Y2Q5ODljYTczYmFmM2Q2
YjliOThhOTY5NmQ5MTY3OWYxYzc5Li44MTVkZDQ5NWIxMzYxZjk1YTg3NTg3NDU3ODE0Yjc5OTdj
NGQ2YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTY1Myw4ICs2NTMsNiBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSgpCiAKICAgICAvLyBObyByZWFzb24g
dG8gc2F2ZSB0aGUgcHJldmlvdXMgYmFja2luZyBzdG9yZSBmb3Igbm9uLXZpc2libGUgYXJlYXMu
CiAgICAgbV9wcmV2aW91c0JhY2tpbmdTdG9yZS0+cmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzKCk7
Ci0KLSAgICBjcmVhdGVCYWNraW5nU3RvcmUoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175929</attachid>
            <date>2012-11-25 23:03:27 -0800</date>
            <delta_ts>2012-11-25 23:42:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103215-20121126160052.patch</filename>
            <type>text/plain</type>
            <size>11636</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDIyNGUwM2Q1NTVjMjY4
ODczOWFmNWM5MzQ4NDYxNDM2NTIzYTdiZi4uYWE0ZGY3OGI4ZWE4MjI2NGMwMTZjYjMxNGFhYjA1
MTM3MDU1YTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTExLTI1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIG1hbmFnaW5nIGEgYmFja2luZyBzdG9yZSBpbiBM
YXllclRyZWVSZW5kZXJlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgTGF5ZXJUcmVlUmVuZGVyZXIgYXNzaWduIGEgY29u
dGVudCBiYWNraW5nIHN0b3JlIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBvbmx5IGlu
IHNldExheWVyU3RhdGUoKS4gQ3VycmVudGx5LCBjcmVhdGVUaWxlKCkgY2FuIGFzc2lnbgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byBUZXh0dXJlTWFwcGVyTGF5ZXIgYW5kIGl0IGNhbiBi
cmVhayB0aGUgaW52YXJpYW50IGNvbmRpdGlvbgorICAgICAgICBvZiBUZXh0dXJlTWFwcGVyTGF5
ZXI6IFRleHR1cmVNYXBwZXJMYXllciBjYW4gaGF2ZSBpdHMgb3duIGJhY2tpbmcgc3RvcmUgb25s
eSBpZgorICAgICAgICB0aGUgbGF5ZXIgaGFzIGZvbGxvd2luZyBjb25kaXRpb25zOiBkcmF3c0Nv
bnRlbnQsIGNvbnRlbnRzVmlzaWJsZSBhbmQgbm9uIGVtcHR5CisgICAgICAgIHNpemUuCisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIHRoZSBtb2RpZmllZCBjb2RlIGFib3V0IGNyZWF0aW5nIGFuZCBy
ZW1vdmluZyBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgbWF0Y2hlcyB0aGUgc2FtZSBwdXJwb3Nl
IGNvZGUgb2YgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGFuZAorICAgICAgICBHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcGVwci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bGF5ZXJTaG91
bGRIYXZlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9M
YXllclNpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSk6CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBkb2Vz
IG5vdCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGFueW1vcmUgYmVjYXVzZQorICAgICAgICAgICAg
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpIGNhbiBjcmVhdGUgYSBiYWNr
aW5nIHN0b3JlCisgICAgICAgICAgICBpZiBuZWVkZWQuIE1vcmVvdmVyLCB3ZSBtdXN0IHN5bmMg
YSBsYXllciBzdGF0ZSBwcmlvciB0byBjcmVhdGUgYQorICAgICAgICAgICAgYmFja2luZyBzdG9y
ZSBhZnRlciB0aGlzIHBhdGNoLCBiZWNhdXNlCisgICAgICAgICAgICBMYXllclRyZWVSZW5kZXJl
cjo6Y3JlYXRlVGlsZSgpIGRvZXMgbm90IGNyZWF0ZSBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAg
ICAgIGFueW1vcmUuCisKIDIwMTItMTEtMjMgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29t
cGFueTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IEFkZCBDb29yZGlu
YXRlZFN1cmZhY2UgdG8gcmVtb3ZlIHRoZSBkZXBlbmRlbmN5IG9mIFNoYXJlYWJsZVN1cmZhY2Ug
ZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
QmFja2luZ1N0b3JlLmNwcAppbmRleCBhZjAzMDJjYzZhZjFkNmM2ZjIyMjJmMmMyODU3N2I4MTNh
NzIyMDhjLi5kMjk5YjIzNmIzNThlNDk2YjkzOTk0NjE2ODY1MjAyNGY1ZWVkMmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC05MiwxMSArOTIs
NiBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKGludCBpZCwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29ucwogICAgIGl0LT52YWx1ZS5zZXRCYWNrQnVmZmVy
KHRpbGVSZWN0LCBzb3VyY2VSZWN0LCBiYWNrQnVmZmVyLCBvZmZzZXQpOwogfQogCi1ib29sIENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjppc0VtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90
aWxlcy5zaXplKCkgPT0gbV90aWxlc1RvUmVtb3ZlLnNpemUoKTsKLX0KLQogUGFzc1JlZlB0cjxC
aXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7
CiAgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmUuaAppbmRleCAwMmQ5MTVlNjQxODRlMjE3NWQ0MWY0M2Y0M2UzYzI1MzdkMGQ0
MGQwLi5lZjI3N2UyMmJlYTg4ODU1Zjc0NDAyZDMxNWJjMDM4N2EzOTU4ZjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKQEAgLTYxLDcgKzYxLDYgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZShpbnQpOwogICAgIHZvaWQgcmVtb3ZlQWxsVGlsZXMo
KTsKICAgICB2b2lkIHVwZGF0ZVRpbGUoaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKTsgfQogICAgIHZvaWQgY29t
bWl0VGlsZU9wZXJhdGlvbnMoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciopOwogICAgIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVu
ZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IDIwMTc1ZTUwODgzODg1ZWQ2NTAzODVhYjQ3YTY2
MGMwNWU2OGJjNTkuLmUyMDgyNWFmMWYwODM1OGUzYWI1OGMyZGU3MTc0MTI2YzE3NmMzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTY2LDYgKzY2LDExIEBAIHN0
YXRpYyBGbG9hdFBvaW50IGJvdW5kZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QKICAgICByZXR1cm4gRmxvYXRQb2ludChzY3JvbGxQb3NpdGlv
blgsIHNjcm9sbFBvc2l0aW9uWSk7CiB9CiAKK3N0YXRpYyBib29sIGxheWVyU2hvdWxkSGF2ZUJh
Y2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBsYXllcikKK3sKKyAgICByZXR1cm4gbGF5ZXItPmRy
YXdzQ29udGVudCgpICYmIGxheWVyLT5jb250ZW50c0FyZVZpc2libGUoKSAmJiAhbGF5ZXItPnNp
emUoKS5pc0VtcHR5KCk7Cit9CisKIExheWVyVHJlZVJlbmRlcmVyOjpMYXllclRyZWVSZW5kZXJl
cihMYXllclRyZWVDb29yZGluYXRvclByb3h5KiBsYXllclRyZWVDb29yZGluYXRvclByb3h5KQog
ICAgIDogbV9sYXllclRyZWVDb29yZGluYXRvclByb3h5KGxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQpAQCAtMzUxLDYgKzM1Niw3IEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5
ZXJJbmZvJiBsYXllckluCiAgICAgICAgIG1fZml4ZWRMYXllcnMucmVtb3ZlKGlkKTsKIAogICAg
IGFzc2lnbkltYWdlQmFja2luZ1RvTGF5ZXIobGF5ZXIsIGxheWVySW5mby5pbWFnZUlEKTsKKyAg
ICBwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShsYXllcik7CiAKICAgICAvLyBOZXZlciBtYWtl
IHRoZSByb290IGxheWVyIGNsaXAuCiAgICAgbGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMobGF5ZXJJ
bmZvLmlzUm9vdExheWVyID8gZmFsc2UgOiBsYXllckluZm8ubWFza3NUb0JvdW5kcyk7CkBAIC00
MDMsMzQgKzQwOSw0NyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRSb290TGF5ZXJJRChX
ZWJMYXllcklEIGxheWVySUQpCiAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkKGxheWVyKTsKIH0K
IAotUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gTGF5ZXJUcmVlUmVuZGVyZXI6
OmdldEJhY2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQorQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUqIExheWVyVHJlZVJlbmRlcmVyOjpnZXRCYWNraW5nU3RvcmUoR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVy
ID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoZ3JhcGhpY3NMYXllcik7CiAgICAgQVNTRVJUKGxheWVy
KTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IHN0
YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKj4obGF5ZXItPmJhY2tpbmdTdG9yZSgp
LmdldCgpKTsKLSAgICBpZiAoIWJhY2tpbmdTdG9yZSkgewotICAgICAgICBiYWNraW5nU3RvcmUg
PSBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgIGxheWVyLT5zZXRC
YWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUqPihsYXllci0+YmFja2luZ1N0b3JlKCkuZ2V0KCkpOworfQorCit2
b2lkIExheWVyVHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShHcmFwaGlj
c0xheWVyKiBncmFwaGljc0xheWVyKQoreworICAgIGJvb2wgc2hvdWxkSGF2ZUJhY2tpbmdTdG9y
ZSA9IGxheWVyU2hvdWxkSGF2ZUJhY2tpbmdTdG9yZShncmFwaGljc0xheWVyKTsKKyAgICBpZiAo
IXNob3VsZEhhdmVCYWNraW5nU3RvcmUgJiYgZ2V0QmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIp
KSB7CisgICAgICAgIHJlbW92ZUJhY2tpbmdTdG9yZShncmFwaGljc0xheWVyKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKLSAgICByZXR1cm4gYmFj
a2luZ1N0b3JlOworCisgICAgaWYgKHNob3VsZEhhdmVCYWNraW5nU3RvcmUpCisgICAgICAgIGNy
ZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQmFja2luZ1N0b3Jl
SWZOZWVkZWQoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBUZXh0dXJlTWFw
cGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoZ3JhcGhpY3NMYXllcik7CiAg
ICAgQVNTRVJUKGxheWVyKTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJh
Y2tpbmdTdG9yZSA9IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKj4obGF5ZXIt
PmJhY2tpbmdTdG9yZSgpLmdldCgpKTsKLSAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKLSAgICBp
ZiAoYmFja2luZ1N0b3JlLT5pc0VtcHR5KCkpCi0gICAgICAgIGxheWVyLT5zZXRCYWNraW5nU3Rv
cmUoMCk7CisgICAgaWYgKGxheWVyLT5iYWNraW5nU3RvcmUoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUoQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKKyAgICBiYWNraW5nU3RvcmUtPnNldFNpemUo
Z3JhcGhpY3NMYXllci0+c2l6ZSgpKTsKKyAgICBsYXllci0+c2V0QmFja2luZ1N0b3JlKGJhY2tp
bmdTdG9yZSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlc2V0QmFja2luZ1N0b3Jl
U2l6ZVRvTGF5ZXJTaXplKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKIHsKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVy
TGF5ZXIoZ3JhcGhpY3NMYXllcik7CiAgICAgQVNTRVJUKGxheWVyKTsKLSAgICBSZWZQdHI8Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IHN0YXRpY19jYXN0PENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlKj4obGF5ZXItPmJhY2tpbmdTdG9yZSgpLmdldCgpKTsKKyAgICBsYXll
ci0+c2V0QmFja2luZ1N0b3JlKDApOworfQorCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZXNl
dEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQoreworICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBnZXRCYWNr
aW5nU3RvcmUoZ3JhcGhpY3NMYXllcik7CiAgICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAgICAg
YmFja2luZ1N0b3JlLT5zZXRTaXplKGdyYXBoaWNzTGF5ZXItPnNpemUoKSk7CiB9CkBAIC00Mzks
NyArNDU4LDggQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklE
IGxheWVySUQsIGludCB0aWxlSUQsIGZsb2F0IHNjYWxlKQogewogICAgIEdyYXBoaWNzTGF5ZXIq
IGxheWVyID0gbGF5ZXJCeUlEKGxheWVySUQpOwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVm
UHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3Rv
cmUobGF5ZXIpOworICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBn
ZXRCYWNraW5nU3RvcmUobGF5ZXIpOworICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwogICAgIGJh
Y2tpbmdTdG9yZS0+Y3JlYXRlVGlsZSh0aWxlSUQsIHNjYWxlKTsKICAgICByZXNldEJhY2tpbmdT
dG9yZVNpemVUb0xheWVyU2l6ZShsYXllcik7CiB9CkBAIC00NDgsMTEgKzQ2OCwxMyBAQCB2b2lk
IExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRp
bGVJRCkKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsK
ICAgICBBU1NFUlQobGF5ZXIpOwotICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4g
YmFja2luZ1N0b3JlID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBp
ZiAoIWJhY2tpbmdTdG9yZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYmFja2luZ1N0b3JlLT5y
ZW1vdmVUaWxlKHRpbGVJRCk7CiAgICAgcmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUo
bGF5ZXIpOwogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2lu
Z1N0b3JlKTsKLSAgICByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChsYXllcik7CiB9CiAKIHZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQg
dGlsZUlELCBjb25zdCBUaWxlVXBkYXRlJiB1cGRhdGUpCkBAIC00NjAsNiArNDgyLDcgQEAgdm9p
ZCBMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0
aWxlSUQsIGNvbnN0IFRpbGVVcGQKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJ
RChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwogICAgIFJlZlB0cjxDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBB
U1NFUlQoYmFja2luZ1N0b3JlKTsKICAgICBiYWNraW5nU3RvcmUtPnVwZGF0ZVRpbGUodGlsZUlE
LCB1cGRhdGUuc291cmNlUmVjdCwgdXBkYXRlLnRpbGVSZWN0LCB1cGRhdGUuc3VyZmFjZSwgdXBk
YXRlLm9mZnNldCk7CiAgICAgcmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUobGF5ZXIp
OwogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3Jl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IDcyYjUwNTk3NjQwZTBiNzc5
ZWFjY2JkN2U4OTE3NzFiNmQ5ZWY3NzUuLjZkMjgzNzRmZTc5ZWRkMzYxOGM4ZjAyY2UwZjc0NGNl
ZGQ2YzhjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApAQCAtMTQ1LDggKzE0
NSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlTGF5ZXIoV2ViTGF5ZXJJRCk7CiAgICAg
dm9pZCBjb21taXRUaWxlT3BlcmF0aW9ucygpOwogCi0gICAgUGFzc1JlZlB0cjxDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZT4gZ2V0QmFja2luZ1N0b3JlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
LSAgICB2b2lkIHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKTsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogZ2V0QmFja2luZ1N0b3JlKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2b2lkIHByZXBhcmVDb250ZW50QmFja2luZ1N0b3Jl
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2b2lkIGNyZWF0ZUJhY2tpbmdTdG9yZUlm
TmVlZGVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2b2lkIHJlbW92ZUJhY2tpbmdT
dG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCByZXNldEJhY2tpbmdTdG9y
ZVNpemVUb0xheWVyU2l6ZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8V2ViTGF5ZXJJRCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IExheWVyTWFwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAKaW5kZXggNWU1NGNkOTg5Y2E3M2JhZjNkNmI5Yjk4YTk2OTZkOTE2NzlmMWM3OS4u
ODE1ZGQ0OTViMTM2MWY5NWE4NzU4NzQ1NzgxNGI3OTk3YzRkNmJhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBA
IC02NTMsOCArNjUzLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkanVzdENv
bnRlbnRzU2NhbGUoKQogCiAgICAgLy8gTm8gcmVhc29uIHRvIHNhdmUgdGhlIHByZXZpb3VzIGJh
Y2tpbmcgc3RvcmUgZm9yIG5vbi12aXNpYmxlIGFyZWFzLgogICAgIG1fcHJldmlvdXNCYWNraW5n
U3RvcmUtPnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOwotCi0gICAgY3JlYXRlQmFja2luZ1N0
b3JlKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVCYWNraW5n
U3RvcmUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175935</attachid>
            <date>2012-11-25 23:42:14 -0800</date>
            <delta_ts>2012-11-26 00:31:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103215-20121126163938.patch</filename>
            <type>text/plain</type>
            <size>11469</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDIyNGUwM2Q1NTVjMjY4
ODczOWFmNWM5MzQ4NDYxNDM2NTIzYTdiZi4uMGEyZmY1MjA3MDJiZThhZDAyYTEzNDY4NTY1YzYz
N2NlN2ZlZmExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTExLTI1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIG1hbmFnaW5nIGEgYmFja2luZyBzdG9yZSBpbiBM
YXllclRyZWVSZW5kZXJlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgTGF5ZXJUcmVlUmVuZGVyZXIgYXNzaWduIGEgY29u
dGVudCBiYWNraW5nIHN0b3JlIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBvbmx5IGlu
IHNldExheWVyU3RhdGUoKS4gQ3VycmVudGx5LCBjcmVhdGVUaWxlKCkgY2FuIGFzc2lnbgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byBUZXh0dXJlTWFwcGVyTGF5ZXIgYW5kIGl0IGNhbiBi
cmVhayB0aGUgaW52YXJpYW50IGNvbmRpdGlvbgorICAgICAgICBvZiBUZXh0dXJlTWFwcGVyTGF5
ZXI6IFRleHR1cmVNYXBwZXJMYXllciBjYW4gaGF2ZSBpdHMgb3duIGJhY2tpbmcgc3RvcmUgb25s
eSBpZgorICAgICAgICB0aGUgbGF5ZXIgaGFzIGZvbGxvd2luZyBjb25kaXRpb25zOiBkcmF3c0Nv
bnRlbnQsIGNvbnRlbnRzVmlzaWJsZSBhbmQgbm9uIGVtcHR5CisgICAgICAgIHNpemUuCisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIHRoZSBtb2RpZmllZCBjb2RlIGFib3V0IGNyZWF0aW5nIGFuZCBy
ZW1vdmluZyBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgbWF0Y2hlcyB0aGUgc2FtZSBwdXJwb3Nl
IGNvZGUgb2YgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGFuZAorICAgICAgICBHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcGVwci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bGF5ZXJTaG91
bGRIYXZlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9M
YXllclNpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSk6CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBkb2Vz
IG5vdCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGFueW1vcmUgYmVjYXVzZSBmbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKKyAgICAgICAgICAgIGNhbiBjcmVhdGUgYSBiYWNr
aW5nIHN0b3JlIGlmIG5lZWRlZC4gTW9yZW92ZXIsIHdlIG11c3Qgc3luYyBhIGxheWVyIHN0YXRl
IHByaW9yIHRvIGNyZWF0aW5nIGEgYmFja2luZyBzdG9yZQorICAgICAgICAgICAgYWZ0ZXIgdGhp
cyBwYXRjaCwgYmVjYXVzZSBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpIGRvZXMgbm90
IGNyZWF0ZSBhIGJhY2tpbmcgc3RvcmUgYW55bW9yZS4KKwogMjAxMi0xMS0yMyAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBH
cmFwaGljczogQWRkIENvb3JkaW5hdGVkU3VyZmFjZSB0byByZW1vdmUgdGhlIGRlcGVuZGVuY3kg
b2YgU2hhcmVhYmxlU3VyZmFjZSBmcm9tIENvb3JkaW5hdGVkIEdyYXBoaWNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGFmMDMwMmNjNmFmMWQ2
YzZmMjIyMmYyYzI4NTc3YjgxM2E3MjIwOGMuLmQyOTliMjM2YjM1OGU0OTZiOTM5OTQ2MTY4NjUy
MDI0ZjVlZWQyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTkyLDExICs5Miw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVw
ZGF0ZVRpbGUoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zCiAgICAgaXQt
PnZhbHVlLnNldEJhY2tCdWZmZXIodGlsZVJlY3QsIHNvdXJjZVJlY3QsIGJhY2tCdWZmZXIsIG9m
ZnNldCk7CiB9CiAKLWJvb2wgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmlzRW1wdHkoKSBjb25z
dAotewotICAgIHJldHVybiBtX3RpbGVzLnNpemUoKSA9PSBtX3RpbGVzVG9SZW1vdmUuc2l6ZSgp
OwotfQotCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
Ojp0ZXh0dXJlKCkgY29uc3QKIHsKICAgICBIYXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDAyZDkxNWU2NDE4NGUyMTc1
ZDQxZjQzZjQzZTNjMjUzN2QwZDQwZDAuLmVmMjc3ZTIyYmVhODg4NTVmNzQ0MDJkMzE1YmMwMzg3
YTM5NThmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApA
QCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVUaWxlKGludCk7CiAgICAg
dm9pZCByZW1vdmVBbGxUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlVGlsZShpbnQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxDb29y
ZGluYXRlZFN1cmZhY2U+LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUpOyB9CiAgICAgdm9pZCBjb21taXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyKik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggMjAxNzVlNTA4
ODM4ODVlZDY1MDM4NWFiNDdhNjYwYzA1ZTY4YmM1OS4uOGE2Y2VkYjA2N2IwOWI0NjY0MWM2MDI1
ZDcxYmZjNzhlZmRkMjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApA
QCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIEZsb2F0UG9pbnQgYm91bmRlZFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdAogICAgIHJldHVybiBGbG9h
dFBvaW50KHNjcm9sbFBvc2l0aW9uWCwgc2Nyb2xsUG9zaXRpb25ZKTsKIH0KIAorc3RhdGljIGJv
b2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQorewor
ICAgIHJldHVybiBsYXllci0+ZHJhd3NDb250ZW50KCkgJiYgbGF5ZXItPmNvbnRlbnRzQXJlVmlz
aWJsZSgpICYmICFsYXllci0+c2l6ZSgpLmlzRW1wdHkoKTsKK30KKwogTGF5ZXJUcmVlUmVuZGVy
ZXI6OkxheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqIGxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgOiBtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkobGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCkBAIC0zNTEs
NiArMzU2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShXZWJMYXll
cklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGxheWVySW4KICAgICAgICAgbV9maXhlZExheWVy
cy5yZW1vdmUoaWQpOwogCiAgICAgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihsYXllciwgbGF5
ZXJJbmZvLmltYWdlSUQpOworICAgIHByZXBhcmVDb250ZW50QmFja2luZ1N0b3JlKGxheWVyKTsK
IAogICAgIC8vIE5ldmVyIG1ha2UgdGhlIHJvb3QgbGF5ZXIgY2xpcC4KICAgICBsYXllci0+c2V0
TWFza3NUb0JvdW5kcyhsYXllckluZm8uaXNSb290TGF5ZXIgPyBmYWxzZSA6IGxheWVySW5mby5t
YXNrc1RvQm91bmRzKTsKQEAgLTQwMywzNCArNDA5LDQ1IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGQobGF5ZXIpOwogfQogCi1QYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBMYXllclRyZWVSZW5kZXJlcjo6Z2V0QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCitDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogTGF5ZXJUcmVlUmVuZGVyZXI6Omdl
dEJhY2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIFRleHR1
cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllcihncmFwaGljc0xheWVy
KTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZT4gYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqPihs
YXllci0+YmFja2luZ1N0b3JlKCkuZ2V0KCkpOwotICAgIGlmICghYmFja2luZ1N0b3JlKSB7Ci0g
ICAgICAgIGJhY2tpbmdTdG9yZSA9IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsK
LSAgICAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3Rv
cmUoKS5nZXQoKSk7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnByZXBhcmVDb250ZW50
QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgaWYgKCFs
YXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoZ3JhcGhpY3NMYXllcikpIHsKKyAgICAgICAgcmVt
b3ZlQmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOworICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwotICAgIHJldHVybiBiYWNraW5nU3RvcmU7CisKKyAg
ICBjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZChncmFwaGljc0xheWVyKTsKIH0KIAotdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUJhY2tpbmdT
dG9yZUlmTmVlZGVkKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVy
ZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGdyYXBoaWNzTGF5ZXIp
OwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxh
eWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7Ci0gICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7Ci0g
ICAgaWYgKGJhY2tpbmdTdG9yZS0+aXNFbXB0eSgpKQotICAgICAgICBsYXllci0+c2V0QmFja2lu
Z1N0b3JlKDApOworICAgIGlmIChsYXllci0+YmFja2luZ1N0b3JlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRT
aXplKGdyYXBoaWNzTGF5ZXItPnNpemUoKSk7CisgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShi
YWNraW5nU3RvcmUpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZXNldEJhY2tpbmdT
dG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1h
cHBlckxheWVyKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRy
PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7CisgICAg
bGF5ZXItPnNldEJhY2tpbmdTdG9yZSgwKTsKK30KKwordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
cmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3sKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0gZ2V0
QmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwog
ICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShncmFwaGljc0xheWVyLT5zaXplKCkpOwogfQpAQCAt
NDM5LDcgKzQ1Niw4IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5
ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKIHsKICAgICBHcmFwaGljc0xh
eWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAg
IFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0QmFja2lu
Z1N0b3JlKGxheWVyKTsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3Jl
ID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKICAg
ICBiYWNraW5nU3RvcmUtPmNyZWF0ZVRpbGUodGlsZUlELCBzY2FsZSk7CiAgICAgcmVzZXRCYWNr
aW5nU3RvcmVTaXplVG9MYXllclNpemUobGF5ZXIpOwogfQpAQCAtNDQ4LDExICs0NjYsMTMgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJ
RCk7CiAgICAgQVNTRVJUKGxheWVyKTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgaWYgKCFiYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybjsKKwogICAgIGJhY2tpbmdTdG9y
ZS0+cmVtb3ZlVGlsZSh0aWxlSUQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJT
aXplKGxheWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJh
Y2tpbmdTdG9yZSk7Ci0gICAgcmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQobGF5ZXIpOwogfQog
CiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgVGlsZVVwZGF0ZSYgdXBkYXRlKQpAQCAtNDYwLDYgKzQ4MCw3IEBA
IHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBUaWxlVXBkCiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXll
ckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKICAgICBSZWZQdHI8Q29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAgICAgYmFja2luZ1N0b3JlLT51cGRhdGVUaWxlKHRp
bGVJRCwgdXBkYXRlLnNvdXJjZVJlY3QsIHVwZGF0ZS50aWxlUmVjdCwgdXBkYXRlLnN1cmZhY2Us
IHVwZGF0ZS5vZmZzZXQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxh
eWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdT
dG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCA3MmI1MDU5NzY0MGUw
Yjc3OWVhY2NiZDdlODkxNzcxYjZkOWVmNzc1Li42ZDI4Mzc0ZmU3OWVkZDM2MThjOGYwMmNlMGY3
NDRjZWRkNmM4YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTE0NSw4
ICsxNDUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZUxheWVyKFdlYkxheWVySUQpOwog
ICAgIHZvaWQgY29tbWl0VGlsZU9wZXJhdGlvbnMoKTsKIAotICAgIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU+IGdldEJhY2tpbmdTdG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7Ci0gICAgdm9pZCByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqIGdldEJhY2tpbmdTdG9yZShX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBwcmVwYXJlQ29udGVudEJhY2tpbmdT
dG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBjcmVhdGVCYWNraW5nU3Rv
cmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCByZW1vdmVCYWNr
aW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgcmVzZXRCYWNraW5n
U3RvcmVTaXplVG9MYXllclNpemUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXllck1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDVlNTRjZDk4OWNhNzNiYWYzZDZiOWI5OGE5Njk2ZDkxNjc5ZjFj
NzkuLjgxNWRkNDk1YjEzNjFmOTVhODc1ODc0NTc4MTRiNzk5N2M0ZDZiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtNjUzLDggKzY1Myw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGp1
c3RDb250ZW50c1NjYWxlKCkKIAogICAgIC8vIE5vIHJlYXNvbiB0byBzYXZlIHRoZSBwcmV2aW91
cyBiYWNraW5nIHN0b3JlIGZvciBub24tdmlzaWJsZSBhcmVhcy4KICAgICBtX3ByZXZpb3VzQmFj
a2luZ1N0b3JlLT5yZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKTsKLQotICAgIGNyZWF0ZUJhY2tp
bmdTdG9yZSgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlQmFj
a2luZ1N0b3JlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175937</attachid>
            <date>2012-11-26 00:31:30 -0800</date>
            <delta_ts>2012-11-26 14:19:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103215-20121126172854.patch</filename>
            <type>text/plain</type>
            <size>11469</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDIyNGUwM2Q1NTVjMjY4
ODczOWFmNWM5MzQ4NDYxNDM2NTIzYTdiZi4uMGEyZmY1MjA3MDJiZThhZDAyYTEzNDY4NTY1YzYz
N2NlN2ZlZmExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTExLTI1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIG1hbmFnaW5nIGEgYmFja2luZyBzdG9yZSBpbiBM
YXllclRyZWVSZW5kZXJlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgTGF5ZXJUcmVlUmVuZGVyZXIgYXNzaWduIGEgY29u
dGVudCBiYWNraW5nIHN0b3JlIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBvbmx5IGlu
IHNldExheWVyU3RhdGUoKS4gQ3VycmVudGx5LCBjcmVhdGVUaWxlKCkgY2FuIGFzc2lnbgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byBUZXh0dXJlTWFwcGVyTGF5ZXIgYW5kIGl0IGNhbiBi
cmVhayB0aGUgaW52YXJpYW50IGNvbmRpdGlvbgorICAgICAgICBvZiBUZXh0dXJlTWFwcGVyTGF5
ZXI6IFRleHR1cmVNYXBwZXJMYXllciBjYW4gaGF2ZSBpdHMgb3duIGJhY2tpbmcgc3RvcmUgb25s
eSBpZgorICAgICAgICB0aGUgbGF5ZXIgaGFzIGZvbGxvd2luZyBjb25kaXRpb25zOiBkcmF3c0Nv
bnRlbnQsIGNvbnRlbnRzVmlzaWJsZSBhbmQgbm9uIGVtcHR5CisgICAgICAgIHNpemUuCisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIHRoZSBtb2RpZmllZCBjb2RlIGFib3V0IGNyZWF0aW5nIGFuZCBy
ZW1vdmluZyBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgbWF0Y2hlcyB0aGUgc2FtZSBwdXJwb3Nl
IGNvZGUgb2YgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGFuZAorICAgICAgICBHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcGVwci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bGF5ZXJTaG91
bGRIYXZlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9M
YXllclNpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSk6CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBkb2Vz
IG5vdCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGFueW1vcmUgYmVjYXVzZSBmbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKKyAgICAgICAgICAgIGNhbiBjcmVhdGUgYSBiYWNr
aW5nIHN0b3JlIGlmIG5lZWRlZC4gTW9yZW92ZXIsIHdlIG11c3Qgc3luYyBhIGxheWVyIHN0YXRl
IHByaW9yIHRvIGNyZWF0aW5nIGEgYmFja2luZyBzdG9yZQorICAgICAgICAgICAgYWZ0ZXIgdGhp
cyBwYXRjaCwgYmVjYXVzZSBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpIGRvZXMgbm90
IGNyZWF0ZSBhIGJhY2tpbmcgc3RvcmUgYW55bW9yZS4KKwogMjAxMi0xMS0yMyAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBH
cmFwaGljczogQWRkIENvb3JkaW5hdGVkU3VyZmFjZSB0byByZW1vdmUgdGhlIGRlcGVuZGVuY3kg
b2YgU2hhcmVhYmxlU3VyZmFjZSBmcm9tIENvb3JkaW5hdGVkIEdyYXBoaWNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGFmMDMwMmNjNmFmMWQ2
YzZmMjIyMmYyYzI4NTc3YjgxM2E3MjIwOGMuLmQyOTliMjM2YjM1OGU0OTZiOTM5OTQ2MTY4NjUy
MDI0ZjVlZWQyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTkyLDExICs5Miw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVw
ZGF0ZVRpbGUoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zCiAgICAgaXQt
PnZhbHVlLnNldEJhY2tCdWZmZXIodGlsZVJlY3QsIHNvdXJjZVJlY3QsIGJhY2tCdWZmZXIsIG9m
ZnNldCk7CiB9CiAKLWJvb2wgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmlzRW1wdHkoKSBjb25z
dAotewotICAgIHJldHVybiBtX3RpbGVzLnNpemUoKSA9PSBtX3RpbGVzVG9SZW1vdmUuc2l6ZSgp
OwotfQotCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
Ojp0ZXh0dXJlKCkgY29uc3QKIHsKICAgICBIYXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDAyZDkxNWU2NDE4NGUyMTc1
ZDQxZjQzZjQzZTNjMjUzN2QwZDQwZDAuLmVmMjc3ZTIyYmVhODg4NTVmNzQ0MDJkMzE1YmMwMzg3
YTM5NThmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApA
QCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVUaWxlKGludCk7CiAgICAg
dm9pZCByZW1vdmVBbGxUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlVGlsZShpbnQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxDb29y
ZGluYXRlZFN1cmZhY2U+LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUpOyB9CiAgICAgdm9pZCBjb21taXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyKik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggMjAxNzVlNTA4
ODM4ODVlZDY1MDM4NWFiNDdhNjYwYzA1ZTY4YmM1OS4uOGE2Y2VkYjA2N2IwOWI0NjY0MWM2MDI1
ZDcxYmZjNzhlZmRkMjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApA
QCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIEZsb2F0UG9pbnQgYm91bmRlZFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdAogICAgIHJldHVybiBGbG9h
dFBvaW50KHNjcm9sbFBvc2l0aW9uWCwgc2Nyb2xsUG9zaXRpb25ZKTsKIH0KIAorc3RhdGljIGJv
b2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQorewor
ICAgIHJldHVybiBsYXllci0+ZHJhd3NDb250ZW50KCkgJiYgbGF5ZXItPmNvbnRlbnRzQXJlVmlz
aWJsZSgpICYmICFsYXllci0+c2l6ZSgpLmlzRW1wdHkoKTsKK30KKwogTGF5ZXJUcmVlUmVuZGVy
ZXI6OkxheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqIGxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgOiBtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkobGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCkBAIC0zNTEs
NiArMzU2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShXZWJMYXll
cklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGxheWVySW4KICAgICAgICAgbV9maXhlZExheWVy
cy5yZW1vdmUoaWQpOwogCiAgICAgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihsYXllciwgbGF5
ZXJJbmZvLmltYWdlSUQpOworICAgIHByZXBhcmVDb250ZW50QmFja2luZ1N0b3JlKGxheWVyKTsK
IAogICAgIC8vIE5ldmVyIG1ha2UgdGhlIHJvb3QgbGF5ZXIgY2xpcC4KICAgICBsYXllci0+c2V0
TWFza3NUb0JvdW5kcyhsYXllckluZm8uaXNSb290TGF5ZXIgPyBmYWxzZSA6IGxheWVySW5mby5t
YXNrc1RvQm91bmRzKTsKQEAgLTQwMywzNCArNDA5LDQ1IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGQobGF5ZXIpOwogfQogCi1QYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBMYXllclRyZWVSZW5kZXJlcjo6Z2V0QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCitDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogTGF5ZXJUcmVlUmVuZGVyZXI6Omdl
dEJhY2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIFRleHR1
cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllcihncmFwaGljc0xheWVy
KTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZT4gYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqPihs
YXllci0+YmFja2luZ1N0b3JlKCkuZ2V0KCkpOwotICAgIGlmICghYmFja2luZ1N0b3JlKSB7Ci0g
ICAgICAgIGJhY2tpbmdTdG9yZSA9IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsK
LSAgICAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3Rv
cmUoKS5nZXQoKSk7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnByZXBhcmVDb250ZW50
QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgaWYgKCFs
YXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoZ3JhcGhpY3NMYXllcikpIHsKKyAgICAgICAgcmVt
b3ZlQmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOworICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwotICAgIHJldHVybiBiYWNraW5nU3RvcmU7CisKKyAg
ICBjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZChncmFwaGljc0xheWVyKTsKIH0KIAotdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUJhY2tpbmdT
dG9yZUlmTmVlZGVkKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVy
ZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGdyYXBoaWNzTGF5ZXIp
OwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxh
eWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7Ci0gICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7Ci0g
ICAgaWYgKGJhY2tpbmdTdG9yZS0+aXNFbXB0eSgpKQotICAgICAgICBsYXllci0+c2V0QmFja2lu
Z1N0b3JlKDApOworICAgIGlmIChsYXllci0+YmFja2luZ1N0b3JlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRT
aXplKGdyYXBoaWNzTGF5ZXItPnNpemUoKSk7CisgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShi
YWNraW5nU3RvcmUpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZXNldEJhY2tpbmdT
dG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1h
cHBlckxheWVyKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRy
PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7CisgICAg
bGF5ZXItPnNldEJhY2tpbmdTdG9yZSgwKTsKK30KKwordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
cmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3sKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0gZ2V0
QmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwog
ICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShncmFwaGljc0xheWVyLT5zaXplKCkpOwogfQpAQCAt
NDM5LDcgKzQ1Niw4IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5
ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKIHsKICAgICBHcmFwaGljc0xh
eWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAg
IFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0QmFja2lu
Z1N0b3JlKGxheWVyKTsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3Jl
ID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKICAg
ICBiYWNraW5nU3RvcmUtPmNyZWF0ZVRpbGUodGlsZUlELCBzY2FsZSk7CiAgICAgcmVzZXRCYWNr
aW5nU3RvcmVTaXplVG9MYXllclNpemUobGF5ZXIpOwogfQpAQCAtNDQ4LDExICs0NjYsMTMgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJ
RCk7CiAgICAgQVNTRVJUKGxheWVyKTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgaWYgKCFiYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybjsKKwogICAgIGJhY2tpbmdTdG9y
ZS0+cmVtb3ZlVGlsZSh0aWxlSUQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJT
aXplKGxheWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJh
Y2tpbmdTdG9yZSk7Ci0gICAgcmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQobGF5ZXIpOwogfQog
CiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgVGlsZVVwZGF0ZSYgdXBkYXRlKQpAQCAtNDYwLDYgKzQ4MCw3IEBA
IHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBUaWxlVXBkCiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXll
ckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKICAgICBSZWZQdHI8Q29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAgICAgYmFja2luZ1N0b3JlLT51cGRhdGVUaWxlKHRp
bGVJRCwgdXBkYXRlLnNvdXJjZVJlY3QsIHVwZGF0ZS50aWxlUmVjdCwgdXBkYXRlLnN1cmZhY2Us
IHVwZGF0ZS5vZmZzZXQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxh
eWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdT
dG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCA3MmI1MDU5NzY0MGUw
Yjc3OWVhY2NiZDdlODkxNzcxYjZkOWVmNzc1Li42ZDI4Mzc0ZmU3OWVkZDM2MThjOGYwMmNlMGY3
NDRjZWRkNmM4YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTE0NSw4
ICsxNDUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZUxheWVyKFdlYkxheWVySUQpOwog
ICAgIHZvaWQgY29tbWl0VGlsZU9wZXJhdGlvbnMoKTsKIAotICAgIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU+IGdldEJhY2tpbmdTdG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7Ci0gICAgdm9pZCByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqIGdldEJhY2tpbmdTdG9yZShX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBwcmVwYXJlQ29udGVudEJhY2tpbmdT
dG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBjcmVhdGVCYWNraW5nU3Rv
cmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCByZW1vdmVCYWNr
aW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgcmVzZXRCYWNraW5n
U3RvcmVTaXplVG9MYXllclNpemUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXllck1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDVlNTRjZDk4OWNhNzNiYWYzZDZiOWI5OGE5Njk2ZDkxNjc5ZjFj
NzkuLjgxNWRkNDk1YjEzNjFmOTVhODc1ODc0NTc4MTRiNzk5N2M0ZDZiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtNjUzLDggKzY1Myw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGp1
c3RDb250ZW50c1NjYWxlKCkKIAogICAgIC8vIE5vIHJlYXNvbiB0byBzYXZlIHRoZSBwcmV2aW91
cyBiYWNraW5nIHN0b3JlIGZvciBub24tdmlzaWJsZSBhcmVhcy4KICAgICBtX3ByZXZpb3VzQmFj
a2luZ1N0b3JlLT5yZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKTsKLQotICAgIGNyZWF0ZUJhY2tp
bmdTdG9yZSgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlQmFj
a2luZ1N0b3JlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176063</attachid>
            <date>2012-11-26 14:19:24 -0800</date>
            <delta_ts>2012-11-26 14:49:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103215-20121127071645.patch</filename>
            <type>text/plain</type>
            <size>11469</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzRiZGZhOTkwZTg4ZTQz
ODJmYjU2YzU4YjY1NDFhMGUyYjkyYjNjMC4uNjdjNjAxOTg0MGFiYTdjMjNhMzRhOWRjOTc0Yzdj
ODJiZGQwOTFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTExLTI2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIG1hbmFnaW5nIGEgYmFja2luZyBzdG9yZSBpbiBM
YXllclRyZWVSZW5kZXJlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5vYW0gUm9zZW50aGFsLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgTGF5ZXJUcmVlUmVuZGVyZXIgYXNzaWduIGEgY29u
dGVudCBiYWNraW5nIHN0b3JlIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBvbmx5IGlu
IHNldExheWVyU3RhdGUoKS4gQ3VycmVudGx5LCBjcmVhdGVUaWxlKCkgY2FuIGFzc2lnbgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byBUZXh0dXJlTWFwcGVyTGF5ZXIgYW5kIGl0IGNhbiBi
cmVhayB0aGUgaW52YXJpYW50IGNvbmRpdGlvbgorICAgICAgICBvZiBUZXh0dXJlTWFwcGVyTGF5
ZXI6IFRleHR1cmVNYXBwZXJMYXllciBjYW4gaGF2ZSBpdHMgb3duIGJhY2tpbmcgc3RvcmUgb25s
eSBpZgorICAgICAgICB0aGUgbGF5ZXIgaGFzIGZvbGxvd2luZyBjb25kaXRpb25zOiBkcmF3c0Nv
bnRlbnQsIGNvbnRlbnRzVmlzaWJsZSBhbmQgbm9uIGVtcHR5CisgICAgICAgIHNpemUuCisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIHRoZSBtb2RpZmllZCBjb2RlIGFib3V0IGNyZWF0aW5nIGFuZCBy
ZW1vdmluZyBhIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgbWF0Y2hlcyB0aGUgc2FtZSBwdXJwb3Nl
IGNvZGUgb2YgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGFuZAorICAgICAgICBHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcGVwci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bGF5ZXJTaG91
bGRIYXZlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZVJlbmRlcmVyOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9M
YXllclNpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6YWRqdXN0Q29udGVudHNTY2FsZSk6CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBkb2Vz
IG5vdCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGFueW1vcmUgYmVjYXVzZSBmbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKKyAgICAgICAgICAgIGNhbiBjcmVhdGUgYSBiYWNr
aW5nIHN0b3JlIGlmIG5lZWRlZC4gTW9yZW92ZXIsIHdlIG11c3Qgc3luYyBhIGxheWVyIHN0YXRl
IHByaW9yIHRvIGNyZWF0aW5nIGEgYmFja2luZyBzdG9yZQorICAgICAgICAgICAgYWZ0ZXIgdGhp
cyBwYXRjaCwgYmVjYXVzZSBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpIGRvZXMgbm90
IGNyZWF0ZSBhIGJhY2tpbmcgc3RvcmUgYW55bW9yZS4KKwogMjAxMi0xMS0yMyAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBH
cmFwaGljczogQWRkIENvb3JkaW5hdGVkU3VyZmFjZSB0byByZW1vdmUgdGhlIGRlcGVuZGVuY3kg
b2YgU2hhcmVhYmxlU3VyZmFjZSBmcm9tIENvb3JkaW5hdGVkIEdyYXBoaWNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDAxOWIzN2I4OThiOWU1
NjQwMmIxZDNmMWFiZTE3OGE2ZjkxY2Q5M2QuLjY2MTgwYTZmZTgwZjRiNDY1MTQ2ZjFhYjBmNmI1
MjQ3NzIyZmYwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTkyLDExICs5Miw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVw
ZGF0ZVRpbGUoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zCiAgICAgaXQt
PnZhbHVlLnNldEJhY2tCdWZmZXIodGlsZVJlY3QsIHNvdXJjZVJlY3QsIGJhY2tCdWZmZXIsIG9m
ZnNldCk7CiB9CiAKLWJvb2wgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmlzRW1wdHkoKSBjb25z
dAotewotICAgIHJldHVybiBtX3RpbGVzLnNpemUoKSA9PSBtX3RpbGVzVG9SZW1vdmUuc2l6ZSgp
OwotfQotCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
Ojp0ZXh0dXJlKCkgY29uc3QKIHsKICAgICBIYXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDAyZDkxNWU2NDE4NGUyMTc1
ZDQxZjQzZjQzZTNjMjUzN2QwZDQwZDAuLmVmMjc3ZTIyYmVhODg4NTVmNzQ0MDJkMzE1YmMwMzg3
YTM5NThmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApA
QCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVUaWxlKGludCk7CiAgICAg
dm9pZCByZW1vdmVBbGxUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlVGlsZShpbnQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxDb29y
ZGluYXRlZFN1cmZhY2U+LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUpOyB9CiAgICAgdm9pZCBjb21taXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyKik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggMTQ0YTMxZGMx
ZGI4MzQxMjdmNmU3NDdlMDVmZjE3YjZmYjQyZGNiZC4uMzUyNWNiZWM4OGE4M2RlMmVkOGU4ZDNl
OGQ2MTQwNzIyNzA2MGYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApA
QCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIEZsb2F0UG9pbnQgYm91bmRlZFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdAogICAgIHJldHVybiBGbG9h
dFBvaW50KHNjcm9sbFBvc2l0aW9uWCwgc2Nyb2xsUG9zaXRpb25ZKTsKIH0KIAorc3RhdGljIGJv
b2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQorewor
ICAgIHJldHVybiBsYXllci0+ZHJhd3NDb250ZW50KCkgJiYgbGF5ZXItPmNvbnRlbnRzQXJlVmlz
aWJsZSgpICYmICFsYXllci0+c2l6ZSgpLmlzRW1wdHkoKTsKK30KKwogTGF5ZXJUcmVlUmVuZGVy
ZXI6OkxheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqIGxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgOiBtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkobGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCkBAIC0zNTEs
NiArMzU2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShXZWJMYXll
cklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGxheWVySW4KICAgICAgICAgbV9maXhlZExheWVy
cy5yZW1vdmUoaWQpOwogCiAgICAgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihsYXllciwgbGF5
ZXJJbmZvLmltYWdlSUQpOworICAgIHByZXBhcmVDb250ZW50QmFja2luZ1N0b3JlKGxheWVyKTsK
IAogICAgIC8vIE5ldmVyIG1ha2UgdGhlIHJvb3QgbGF5ZXIgY2xpcC4KICAgICBsYXllci0+c2V0
TWFza3NUb0JvdW5kcyhsYXllckluZm8uaXNSb290TGF5ZXIgPyBmYWxzZSA6IGxheWVySW5mby5t
YXNrc1RvQm91bmRzKTsKQEAgLTQwMywzNCArNDA5LDQ1IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGQobGF5ZXIpOwogfQogCi1QYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBMYXllclRyZWVSZW5kZXJlcjo6Z2V0QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCitDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogTGF5ZXJUcmVlUmVuZGVyZXI6Omdl
dEJhY2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIFRleHR1
cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllcihncmFwaGljc0xheWVy
KTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZT4gYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqPihs
YXllci0+YmFja2luZ1N0b3JlKCkuZ2V0KCkpOwotICAgIGlmICghYmFja2luZ1N0b3JlKSB7Ci0g
ICAgICAgIGJhY2tpbmdTdG9yZSA9IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsK
LSAgICAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3Rv
cmUoKS5nZXQoKSk7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnByZXBhcmVDb250ZW50
QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgaWYgKCFs
YXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoZ3JhcGhpY3NMYXllcikpIHsKKyAgICAgICAgcmVt
b3ZlQmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOworICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwotICAgIHJldHVybiBiYWNraW5nU3RvcmU7CisKKyAg
ICBjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZChncmFwaGljc0xheWVyKTsKIH0KIAotdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUJhY2tpbmdT
dG9yZUlmTmVlZGVkKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVy
ZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGdyYXBoaWNzTGF5ZXIp
OwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxh
eWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7Ci0gICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7Ci0g
ICAgaWYgKGJhY2tpbmdTdG9yZS0+aXNFbXB0eSgpKQotICAgICAgICBsYXllci0+c2V0QmFja2lu
Z1N0b3JlKDApOworICAgIGlmIChsYXllci0+YmFja2luZ1N0b3JlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRT
aXplKGdyYXBoaWNzTGF5ZXItPnNpemUoKSk7CisgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShi
YWNraW5nU3RvcmUpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZXNldEJhY2tpbmdT
dG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCiB7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1h
cHBlckxheWVyKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChsYXllcik7Ci0gICAgUmVmUHRy
PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZSo+KGxheWVyLT5iYWNraW5nU3RvcmUoKS5nZXQoKSk7CisgICAg
bGF5ZXItPnNldEJhY2tpbmdTdG9yZSgwKTsKK30KKwordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
cmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3sKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0gZ2V0
QmFja2luZ1N0b3JlKGdyYXBoaWNzTGF5ZXIpOwogICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOwog
ICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShncmFwaGljc0xheWVyLT5zaXplKCkpOwogfQpAQCAt
NDM5LDcgKzQ1Niw4IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5
ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKIHsKICAgICBHcmFwaGljc0xh
eWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwotICAg
IFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0QmFja2lu
Z1N0b3JlKGxheWVyKTsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3Jl
ID0gZ2V0QmFja2luZ1N0b3JlKGxheWVyKTsKKyAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKICAg
ICBiYWNraW5nU3RvcmUtPmNyZWF0ZVRpbGUodGlsZUlELCBzY2FsZSk7CiAgICAgcmVzZXRCYWNr
aW5nU3RvcmVTaXplVG9MYXllclNpemUobGF5ZXIpOwogfQpAQCAtNDQ4LDExICs0NjYsMTMgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJ
RCk7CiAgICAgQVNTRVJUKGxheWVyKTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgaWYgKCFiYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybjsKKwogICAgIGJhY2tpbmdTdG9y
ZS0+cmVtb3ZlVGlsZSh0aWxlSUQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJT
aXplKGxheWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJh
Y2tpbmdTdG9yZSk7Ci0gICAgcmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQobGF5ZXIpOwogfQog
CiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgVGlsZVVwZGF0ZSYgdXBkYXRlKQpAQCAtNDYwLDYgKzQ4MCw3IEBA
IHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBUaWxlVXBkCiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXll
ckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKICAgICBSZWZQdHI8Q29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7Cisg
ICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAgICAgYmFja2luZ1N0b3JlLT51cGRhdGVUaWxlKHRp
bGVJRCwgdXBkYXRlLnNvdXJjZVJlY3QsIHVwZGF0ZS50aWxlUmVjdCwgdXBkYXRlLnN1cmZhY2Us
IHVwZGF0ZS5vZmZzZXQpOwogICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxh
eWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdT
dG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCA3MmI1MDU5NzY0MGUw
Yjc3OWVhY2NiZDdlODkxNzcxYjZkOWVmNzc1Li42ZDI4Mzc0ZmU3OWVkZDM2MThjOGYwMmNlMGY3
NDRjZWRkNmM4YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTE0NSw4
ICsxNDUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZUxheWVyKFdlYkxheWVySUQpOwog
ICAgIHZvaWQgY29tbWl0VGlsZU9wZXJhdGlvbnMoKTsKIAotICAgIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU+IGdldEJhY2tpbmdTdG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7Ci0gICAgdm9pZCByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqIGdldEJhY2tpbmdTdG9yZShX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBwcmVwYXJlQ29udGVudEJhY2tpbmdT
dG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBjcmVhdGVCYWNraW5nU3Rv
cmVJZk5lZWRlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCByZW1vdmVCYWNr
aW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgcmVzZXRCYWNraW5n
U3RvcmVTaXplVG9MYXllclNpemUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXllck1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDVlNTRjZDk4OWNhNzNiYWYzZDZiOWI5OGE5Njk2ZDkxNjc5ZjFj
NzkuLjgxNWRkNDk1YjEzNjFmOTVhODc1ODc0NTc4MTRiNzk5N2M0ZDZiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtNjUzLDggKzY1Myw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGp1
c3RDb250ZW50c1NjYWxlKCkKIAogICAgIC8vIE5vIHJlYXNvbiB0byBzYXZlIHRoZSBwcmV2aW91
cyBiYWNraW5nIHN0b3JlIGZvciBub24tdmlzaWJsZSBhcmVhcy4KICAgICBtX3ByZXZpb3VzQmFj
a2luZ1N0b3JlLT5yZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKTsKLQotICAgIGNyZWF0ZUJhY2tp
bmdTdG9yZSgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlQmFj
a2luZ1N0b3JlKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>