<?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>107938</bug_id>
          
          <creation_ts>2013-01-25 05:09:26 -0800</creation_ts>
          <short_desc>Refactor InspectorMemoryAgent: memory data as a map.</short_desc>
          <delta_ts>2013-01-25 06:38:59 -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>Web Inspector (Deprecated)</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>107651</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816501</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-25 05:09:26 -0800</bug_when>
    <thetext>This will be used by bug 107651 which adds a WebKit API for accessing the memory information collected by the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816504</commentid>
    <comment_count>1</comment_count>
      <attachid>184730</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-25 05:12:16 -0800</bug_when>
    <thetext>Created attachment 184730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816506</commentid>
    <comment_count>2</comment_count>
      <attachid>184731</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-25 05:13:46 -0800</bug_when>
    <thetext>Created attachment 184731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816516</commentid>
    <comment_count>3</comment_count>
      <attachid>184731</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-25 05:33:01 -0800</bug_when>
    <thetext>Comment on attachment 184731
Patch

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

&gt; Source/WebCore/inspector/InspectorController.cpp:449
&gt; +    m_memoryAgent-&gt;getProcessMemoryDistributionAsMap(0, graph, &amp;memoryInfo);

0 -&gt; false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816518</commentid>
    <comment_count>4</comment_count>
      <attachid>184735</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-25 05:34:17 -0800</bug_when>
    <thetext>Created attachment 184735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816519</commentid>
    <comment_count>5</comment_count>
      <attachid>184731</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-25 05:34:37 -0800</bug_when>
    <thetext>Comment on attachment 184731
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:449
&gt;&gt; +    m_memoryAgent-&gt;getProcessMemoryDistributionAsMap(0, graph, &amp;memoryInfo);
&gt; 
&gt; 0 -&gt; false

Oops! Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816545</commentid>
    <comment_count>6</comment_count>
      <attachid>184735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 06:38:53 -0800</bug_when>
    <thetext>Comment on attachment 184735
Patch

Clearing flags on attachment: 184735

Committed r140823: &lt;http://trac.webkit.org/changeset/140823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816546</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 06:38:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184730</attachid>
            <date>2013-01-25 05:12:16 -0800</date>
            <delta_ts>2013-01-25 05:13:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107938-20130125140907.patch</filename>
            <type>text/plain</type>
            <size>11786</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5MzlkNjIxN2RjOGEw
YTk3OGQ1MjQwNjg0MTM2MmNkZmMwYTg4ZS4uZmE5NWZkZDdkNWI1MTczNTQ4MWFkNGY4NTc0NWE0
MjRiYjYwYzBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTI1ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDogbWVtb3J5IGRhdGEgYXMgYSBtYXAuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzkzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gZnVuY3Rp
b25hbCBjaGFuZ2VzLCBvbmx5IHJlZmFjdG9yaW5nKS4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRk
UGxhdGZvcm1Db21wb25lbnRzSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZE1lbW9yeUluc3RydW1lbnRhdGlvbkRlYnVnRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb25Bc01hcCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JNZW1vcnlBZ2VudCk6CisKIDIwMTMtMDEt
MjUgIFNlcmdleSBSeWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgZXhwbGFuYXRpb24gZm9yIENvbnNvbGUgb2JqZWN0IGV4cGFuc2lvbiBi
ZWhhdmlvdXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCAyZTVlNWQzYTVmZDE1OTJlNzI4NzY4Y2M5MmI3ZTNkYWE1YjAyM2U2Li4x
NzY4OTI5M2NiNjA2MjhlZDI3YTQxMTNlYmExNTUyYmI3OTI0Y2Q5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5
LDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFn
ZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgT3duUHRyPEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOwogICAg
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFn
ZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVs
ZWFzZSgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS5n
ZXQoKSwgbV9wYWdlKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IG1lbW9y
eUFnZW50UHRyKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1fcGFnZSkpOworICAg
IG1fbWVtb3J5QWdlbnQgPSBtZW1vcnlBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQobWVtb3J5QWdlbnRQdHIucmVsZWFzZSgpKTsKKwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBw
YWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlBhZ2VJbnNw
ZWN0b3IsCiAgICAgICAgaW5zcGVjdG9yQ2xpZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7CkBAIC00MzgsNiArNDQyLDE0IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUHJvY2Vzc1Rhc2soKQogI2VuZGlmCiB9CiAK
K0hhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb24oKSBjb25zdAoreworICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+
IG1lbW9yeUluZm87CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZ3JhcGg7CisgICAgbV9t
ZW1vcnlBZ2VudC0+Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKDAsIGdyYXBoLCAm
bWVtb3J5SW5mbyk7CisgICAgcmV0dXJuIG1lbW9yeUluZm87Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBhMThhODk4NTZkYzBkNGUx
ZDM1MDA1ZmVkYWZhMDJiMmNlMjU4Zjc3Li5iMjM1MzVlYTlhMDAwYjBlYzFkMzQ0ODJjN2QyZDY3
YTk4N2E3YjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsK
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JNZW1vcnlB
Z2VudDsKIGNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50OwpAQCAtMTI0LDYgKzEyNSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2so
KTsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IGdldFByb2Nlc3NNZW1vcnlEaXN0cmli
dXRpb24oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2Uq
LCBJbnNwZWN0b3JDbGllbnQqKTsKIApAQCAtMTM5LDYgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAg
SW5zcGVjdG9yRE9NQWdlbnQqIG1fZG9tQWdlbnQ7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCogbV9yZXNvdXJjZUFnZW50OwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7
CisgICAgSW5zcGVjdG9yTWVtb3J5QWdlbnQqIG1fbWVtb3J5QWdlbnQ7CiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9kZWJ1Z2dl
ckFnZW50OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1fZG9tRGVidWdnZXJBZ2Vu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQu
Y3BwCmluZGV4IGIzMDVjMDg0MWQ1YmE3MDgzNDYxMzlhODg3MDExMDM0NmRlMjJkNjIuLmM0OGMx
ZjY3Nzc3YzUzYTMxYTYxMTkxMjdiMzEwNzJiMTUzYjgxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApAQCAtODEsMTEgKzgxLDEx
IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0b3IgewogcHVi
bGljOgotICAgIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0b3IoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Q2xpZW50SW1wbCogY2xpZW50KSA6IG1fY2xpZW50KGNsaWVudCkgeyB9CisgICAgTWVtb3J5VXNh
Z2VTdGF0c0dlbmVyYXRvcigpIHsgfQogCi0gICAgdm9pZCBkdW1wKEluc3BlY3Rvck1lbW9yeUJs
b2NrcyogY2hpbGRyZW4pCisgICAgdm9pZCBkdW1wKGNvbnN0IFR5cGVOYW1lVG9TaXplTWFwJiBz
aXplc01hcCwgSW5zcGVjdG9yTWVtb3J5QmxvY2tzKiBjaGlsZHJlbikKICAgICB7Ci0gICAgICAg
IG1fc2l6ZXNNYXAgPSBtX2NsaWVudC0+c2l6ZXNNYXAoKTsKKyAgICAgICAgbV9zaXplc01hcCA9
IHNpemVzTWFwOwogCiAgICAgICAgIC8vIEZJWE1FOiBXZSBmaWx0ZXIgb3V0IFJlbmRlcmluZyB0
eXBlIGJlY2F1c2UgdGhlIGNvdmVyYWdlIGlzIG5vdCBnb29kIGVub3VnaCBhdCB0aGUgbW9tZW50
CiAgICAgICAgIC8vIGFuZCByZXBvcnQgUmVuZGVyQXJlbmEgc2l6ZSBpbnN0ZWFkLgpAQCAtMTA5
LDcgKzEwOSw2IEBAIHB1YmxpYzoKICAgICAgICAgd2hpbGUgKGluZGV4IDwgb2JqZWN0VHlwZXMu
c2l6ZSgpKQogICAgICAgICAgICAgaW5kZXggPSBidWlsZE9iamVjdEZvckluZGV4KGluZGV4LCBv
YmplY3RUeXBlcywgY2hpbGRyZW4pOwogCi0gICAgICAgIGFkZE1lbW9yeUluc3RydW1lbnRhdGlv
bkRlYnVnRGF0YShjaGlsZHJlbik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTQ3LDIxICsxNDYs
NiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgfQogCi0gICAgdm9pZCBh
ZGRNZW1vcnlJbnN0cnVtZW50YXRpb25EZWJ1Z0RhdGEoSW5zcGVjdG9yTWVtb3J5QmxvY2tzKiBj
aGlsZHJlbikKLSAgICB7Ci0gICAgICAgIGlmIChtX2NsaWVudC0+Y2hlY2tJbnN0cnVtZW50ZWRP
YmplY3RzKCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gdG90
YWxJbnN0cnVtZW50ZWQgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZSgi
SW5zdHJ1bWVudGVkT2JqZWN0c0NvdW50Iik7Ci0gICAgICAgICAgICB0b3RhbEluc3RydW1lbnRl
ZC0+c2V0U2l6ZShtX2NsaWVudC0+dG90YWxDb3VudGVkT2JqZWN0cygpKTsKLQotICAgICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBpbmNvcnJlY3RseUluc3RydW1lbnRlZCA9
IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKCJJbnN0cnVtZW50ZWRCdXRO
b3RBbGxvY2F0ZWRPYmplY3RzQ291bnQiKTsKLSAgICAgICAgICAgIGluY29ycmVjdGx5SW5zdHJ1
bWVudGVkLT5zZXRTaXplKG1fY2xpZW50LT50b3RhbE9iamVjdHNOb3RJbkFsbG9jYXRlZFNldCgp
KTsKLQotICAgICAgICAgICAgY2hpbGRyZW4tPmFkZEl0ZW0odG90YWxJbnN0cnVtZW50ZWQpOwot
ICAgICAgICAgICAgY2hpbGRyZW4tPmFkZEl0ZW0oaW5jb3JyZWN0bHlJbnN0cnVtZW50ZWQpOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50SW1wbCog
bV9jbGllbnQ7CiAgICAgVHlwZU5hbWVUb1NpemVNYXAgbV9zaXplc01hcDsKIH07CiAKQEAgLTUy
NywyMSArNTExLDUyIEBAIHN0YXRpYyB2b2lkIGNvbGxlY3REb21UcmVlSW5mbyhNZW1vcnlJbnN0
cnVtZW50YXRpb25JbXBsJiBtZW1vcnlJbnN0cnVtZW50YXRpb24sCiAgICAgZG9tVHJlZXNJdGVy
YXRvci52aXNpdE1lbW9yeUNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZFBsYXRmb3JtQ29t
cG9uZW50c0luZm8oUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9ja3M+IGNoaWxkcmVuKQor
c3RhdGljIHZvaWQgYWRkUGxhdGZvcm1Db21wb25lbnRzSW5mbyhUeXBlTmFtZVRvU2l6ZU1hcCog
bWVtb3J5SW5mbykKIHsKICAgICBWZWN0b3I8TWVtb3J5VXNhZ2VTdXBwb3J0OjpDb21wb25lbnRJ
bmZvPiBjb21wb25lbnRzOwogICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6bWVtb3J5VXNhZ2VCeUNv
bXBvbmVudHMoY29tcG9uZW50cyk7Ci0gICAgZm9yIChWZWN0b3I8TWVtb3J5VXNhZ2VTdXBwb3J0
OjpDb21wb25lbnRJbmZvPjo6aXRlcmF0b3IgaXQgPSBjb21wb25lbnRzLmJlZ2luKCk7IGl0ICE9
IGNvbXBvbmVudHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9y
eUJsb2NrPiBibG9jayA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKGl0
LT5tX25hbWUpOwotICAgICAgICBibG9jay0+c2V0U2l6ZShpdC0+bV9zaXplSW5CeXRlcyk7Ci0g
ICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGJsb2NrKTsKKyAgICBmb3IgKFZlY3RvcjxNZW1vcnlV
c2FnZVN1cHBvcnQ6OkNvbXBvbmVudEluZm8+OjppdGVyYXRvciBpdCA9IGNvbXBvbmVudHMuYmVn
aW4oKTsgaXQgIT0gY29tcG9uZW50cy5lbmQoKTsgKytpdCkKKyAgICAgICAgbWVtb3J5SW5mby0+
YWRkKGl0LT5tX25hbWUsIGl0LT5tX3NpemVJbkJ5dGVzKTsKK30KKworc3RhdGljIHZvaWQgYWRk
TWVtb3J5SW5zdHJ1bWVudGF0aW9uRGVidWdEYXRhKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVu
dEltcGwqIGNsaWVudCwgVHlwZU5hbWVUb1NpemVNYXAqIG1lbW9yeUluZm8pCit7CisgICAgaWYg
KGNsaWVudC0+Y2hlY2tJbnN0cnVtZW50ZWRPYmplY3RzKCkpIHsKKyAgICAgICAgbWVtb3J5SW5m
by0+YWRkKCJJbnN0cnVtZW50ZWRPYmplY3RzQ291bnQiLCBjbGllbnQtPnRvdGFsQ291bnRlZE9i
amVjdHMoKSk7CisgICAgICAgIG1lbW9yeUluZm8tPmFkZCgiSW5zdHJ1bWVudGVkQnV0Tm90QWxs
b2NhdGVkT2JqZWN0c0NvdW50IiwgY2xpZW50LT50b3RhbE9iamVjdHNOb3RJbkFsbG9jYXRlZFNl
dCgpKTsKICAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb24oRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRHcmFwaCwg
UmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiYgcHJvY2Vzc01lbW9yeSwgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4mIGdyYXBoKQogeworICAgIFR5cGVOYW1lVG9TaXplTWFwIG1lbW9yeUluZm87
CisgICAgZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKHJlcG9ydEdyYXBoICYmICpy
ZXBvcnRHcmFwaCwgZ3JhcGgsICZtZW1vcnlJbmZvKTsKKworICAgIE1lbW9yeVVzYWdlU3RhdHNH
ZW5lcmF0b3Igc3RhdHNHZW5lcmF0b3I7CisgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2Nr
cz4gY2hpbGRyZW4gPSBJbnNwZWN0b3JNZW1vcnlCbG9ja3M6OmNyZWF0ZSgpOworICAgIHN0YXRz
R2VuZXJhdG9yLmR1bXAobWVtb3J5SW5mbywgY2hpbGRyZW4uZ2V0KCkpOworCisgICAgcHJvY2Vz
c01lbW9yeSA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKFdlYkNvcmVN
ZW1vcnlUeXBlczo6UHJvY2Vzc1ByaXZhdGVNZW1vcnkpOworICAgIHByb2Nlc3NNZW1vcnktPnNl
dENoaWxkcmVuKGNoaWxkcmVuKTsKKworICAgIHNpemVfdCBwcml2YXRlQnl0ZXMgPSAwOworICAg
IHNpemVfdCBzaGFyZWRCeXRlcyA9IDA7CisgICAgTWVtb3J5VXNhZ2VTdXBwb3J0Ojpwcm9jZXNz
TWVtb3J5U2l6ZXNJbkJ5dGVzKCZwcml2YXRlQnl0ZXMsICZzaGFyZWRCeXRlcyk7CisgICAgcHJv
Y2Vzc01lbW9yeS0+c2V0U2l6ZShwcml2YXRlQnl0ZXMpOworfQorCit2b2lkIEluc3BlY3Rvck1l
bW9yeUFnZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yKTsKKyAgICBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlP
YmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1faW5zcGVjdG9yQ2xpZW50KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2UpOworfQorCit2b2lkIEluc3BlY3Rvck1lbW9yeUFn
ZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uQXNNYXAoYm9vbCByZXBvcnRHcmFwaCwg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGdyYXBoLCBUeXBlTmFtZVRvU2l6ZU1hcCogbWVtb3J5
SW5mbykKK3sKICAgICBPd25QdHI8SGVhcEdyYXBoU2VyaWFsaXplcj4gZ3JhcGhTZXJpYWxpemVy
OwotICAgIGlmIChyZXBvcnRHcmFwaCAmJiAqcmVwb3J0R3JhcGgpCisgICAgaWYgKHJlcG9ydEdy
YXBoKQogICAgICAgICBncmFwaFNlcmlhbGl6ZXIgPSBhZG9wdFB0cihuZXcgSGVhcEdyYXBoU2Vy
aWFsaXplcigpKTsKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnRJbXBsIG1lbW9yeUlu
c3RydW1lbnRhdGlvbkNsaWVudChncmFwaFNlcmlhbGl6ZXIuZ2V0KCkpOwogICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5nZXRBbGxvY2F0ZWRPYmplY3RzKG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVu
dC5hbGxvY2F0ZWRPYmplY3RzKCkpOwpAQCAtNTU0LDkgKzU2OSw2IEBAIHZvaWQgSW5zcGVjdG9y
TWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24oRXJyb3JTdHJpbmcqLCBj
b25zdCBib29sCiAgICAgUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydFN0YXRp
Y01lbWJlcnNNZW1vcnlVc2FnZSgmbWVtb3J5SW5zdHJ1bWVudGF0aW9uKTsKICAgICBXZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpyZXBvcnRTdGF0aWNNZW1iZXJzTWVtb3J5VXNhZ2UoJm1l
bW9yeUluc3RydW1lbnRhdGlvbik7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2tz
PiBjaGlsZHJlbiA9IEluc3BlY3Rvck1lbW9yeUJsb2Nrczo6Y3JlYXRlKCk7Ci0gICAgYWRkUGxh
dGZvcm1Db21wb25lbnRzSW5mbyhjaGlsZHJlbik7Ci0KICAgICBtZW1vcnlJbnN0cnVtZW50YXRp
b24uYWRkUm9vdE9iamVjdCh0aGlzKTsKICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24uYWRkUm9v
dE9iamVjdChtZW1vcnlJbnN0cnVtZW50YXRpb24pOwogICAgIG1lbW9yeUluc3RydW1lbnRhdGlv
bi5hZGRSb290T2JqZWN0KG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCk7CkBAIC01NjcsMjQg
KzU3OSw5IEBAIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0
cmlidXRpb24oRXJyb3JTdHJpbmcqLCBjb25zdCBib29sCiAKICAgICBtX2luc3BlY3RvckNsaWVu
dC0+ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMobWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50LmNvdW50ZWRPYmplY3RzKCkpOwogCi0gICAgTWVtb3J5VXNhZ2VTdGF0c0dlbmVyYXRvciBz
dGF0c0dlbmVyYXRvcigmbWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KTsKLSAgICBzdGF0c0dl
bmVyYXRvci5kdW1wKGNoaWxkcmVuLmdldCgpKTsKLQotICAgIHByb2Nlc3NNZW1vcnkgPSBJbnNw
ZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6OlBy
b2Nlc3NQcml2YXRlTWVtb3J5KTsKLSAgICBwcm9jZXNzTWVtb3J5LT5zZXRDaGlsZHJlbihjaGls
ZHJlbik7Ci0KLSAgICBzaXplX3QgcHJpdmF0ZUJ5dGVzID0gMDsKLSAgICBzaXplX3Qgc2hhcmVk
Qnl0ZXMgPSAwOwotICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6cHJvY2Vzc01lbW9yeVNpemVzSW5C
eXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0ZXMpOwotICAgIHByb2Nlc3NNZW1vcnktPnNl
dFNpemUocHJpdmF0ZUJ5dGVzKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
LXsKLSAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6Okluc3BlY3Rvcik7Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3Rvck1lbW9yeUFnZW50Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0g
ICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2luc3BlY3RvckNsaWVudCk7Ci0gICAgaW5mby5hZGRN
ZW1iZXIobV9wYWdlKTsKKyAgICAqbWVtb3J5SW5mbyA9IG1lbW9yeUluc3RydW1lbnRhdGlvbkNs
aWVudC5zaXplc01hcCgpOworICAgIGFkZFBsYXRmb3JtQ29tcG9uZW50c0luZm8obWVtb3J5SW5m
byk7CisgICAgYWRkTWVtb3J5SW5zdHJ1bWVudGF0aW9uRGVidWdEYXRhKCZtZW1vcnlJbnN0cnVt
ZW50YXRpb25DbGllbnQsIG1lbW9yeUluZm8pOwogfQogCiBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6
SW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBz
dGF0ZSwgUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck1lbW9yeUFnZW50LmgKaW5kZXggMTQ3Y2ZkYTMwOGZkMDFlNWYyNWE4YTI5ZDVmNTdmMTVmNzRh
ZTk0ZS4uZWM1OWM3ODUyNzc1MTk5ZDg5MTYxYjc0NGM2OTgyM2JjNzE2NjU2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTYzLDYg
KzYzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAorICAgIHZvaWQgZ2V0UHJvY2Vzc01lbW9yeURpc3Ry
aWJ1dGlvbkFzTWFwKGJvb2wgcmVwb3J0R3JhcGgsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBn
cmFwaCwgSGFzaE1hcDxTdHJpbmcsIHNpemVfdD4qIG1lbW9yeUluZm8pOworCiBwcml2YXRlOgog
ICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
bGllbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2UqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184731</attachid>
            <date>2013-01-25 05:13:46 -0800</date>
            <delta_ts>2013-01-25 05:34:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107938-20130125141036.patch</filename>
            <type>text/plain</type>
            <size>11780</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5MzlkNjIxN2RjOGEw
YTk3OGQ1MjQwNjg0MTM2MmNkZmMwYTg4ZS4uZmE5NWZkZDdkNWI1MTczNTQ4MWFkNGY4NTc0NWE0
MjRiYjYwYzBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTI1ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDogbWVtb3J5IGRhdGEgYXMgYSBtYXAuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzkzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gZnVuY3Rp
b25hbCBjaGFuZ2VzLCBvbmx5IHJlZmFjdG9yaW5nKS4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRk
UGxhdGZvcm1Db21wb25lbnRzSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZE1lbW9yeUluc3RydW1lbnRhdGlvbkRlYnVnRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb25Bc01hcCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JNZW1vcnlBZ2VudCk6CisKIDIwMTMtMDEt
MjUgIFNlcmdleSBSeWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgZXhwbGFuYXRpb24gZm9yIENvbnNvbGUgb2JqZWN0IGV4cGFuc2lvbiBi
ZWhhdmlvdXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCAyZTVlNWQzYTVmZDE1OTJlNzI4NzY4Y2M5MmI3ZTNkYWE1YjAyM2U2Li5m
MGQzMTU0NmQ1ZTNlY2M3NzE4MDMxODUwZjllZjk0ODUxZWM5NWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5
LDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFn
ZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgT3duUHRyPEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOwogICAg
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFn
ZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVs
ZWFzZSgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS5n
ZXQoKSwgbV9wYWdlKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IG1lbW9y
eUFnZW50UHRyKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1fcGFnZSkpOworICAg
IG1fbWVtb3J5QWdlbnQgPSBtZW1vcnlBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQobWVtb3J5QWdlbnRQdHIucmVsZWFzZSgpKTsKKwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBw
YWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlBhZ2VJbnNw
ZWN0b3IsCiAgICAgICAgaW5zcGVjdG9yQ2xpZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7CkBAIC00MzgsNiArNDQyLDE0IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUHJvY2Vzc1Rhc2soKQogI2VuZGlmCiB9CiAK
K0hhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OnByb2Nlc3NNZW1v
cnlEaXN0cmlidXRpb24oKSBjb25zdAoreworICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IG1l
bW9yeUluZm87CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZ3JhcGg7CisgICAgbV9tZW1v
cnlBZ2VudC0+Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKDAsIGdyYXBoLCAmbWVt
b3J5SW5mbyk7CisgICAgcmV0dXJuIG1lbW9yeUluZm87Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBhMThhODk4NTZkYzBkNGUxZDM1
MDA1ZmVkYWZhMDJiMmNlMjU4Zjc3Li5lY2U2MzdhY2FhMmVkZThiZGEyNTJlZWNkZTZhMWE0NThk
NWI4NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwog
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDsKIGNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50OwpAQCAtMTI0LDYgKzEyNSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsK
IAorICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IHByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24o
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqLCBJbnNw
ZWN0b3JDbGllbnQqKTsKIApAQCAtMTM5LDYgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgSW5zcGVj
dG9yRE9NQWdlbnQqIG1fZG9tQWdlbnQ7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogbV9y
ZXNvdXJjZUFnZW50OwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CisgICAg
SW5zcGVjdG9yTWVtb3J5QWdlbnQqIG1fbWVtb3J5QWdlbnQ7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50
OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1fZG9tRGVidWdnZXJBZ2VudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmlu
ZGV4IGIzMDVjMDg0MWQ1YmE3MDgzNDYxMzlhODg3MDExMDM0NmRlMjJkNjIuLmM0OGMxZjY3Nzc3
YzUzYTMxYTYxMTkxMjdiMzEwNzJiMTUzYjgxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApAQCAtODEsMTEgKzgxLDExIEBAIG5h
bWVzcGFjZSB7CiAKIGNsYXNzIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0b3IgewogcHVibGljOgot
ICAgIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0b3IoTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50
SW1wbCogY2xpZW50KSA6IG1fY2xpZW50KGNsaWVudCkgeyB9CisgICAgTWVtb3J5VXNhZ2VTdGF0
c0dlbmVyYXRvcigpIHsgfQogCi0gICAgdm9pZCBkdW1wKEluc3BlY3Rvck1lbW9yeUJsb2Nrcyog
Y2hpbGRyZW4pCisgICAgdm9pZCBkdW1wKGNvbnN0IFR5cGVOYW1lVG9TaXplTWFwJiBzaXplc01h
cCwgSW5zcGVjdG9yTWVtb3J5QmxvY2tzKiBjaGlsZHJlbikKICAgICB7Ci0gICAgICAgIG1fc2l6
ZXNNYXAgPSBtX2NsaWVudC0+c2l6ZXNNYXAoKTsKKyAgICAgICAgbV9zaXplc01hcCA9IHNpemVz
TWFwOwogCiAgICAgICAgIC8vIEZJWE1FOiBXZSBmaWx0ZXIgb3V0IFJlbmRlcmluZyB0eXBlIGJl
Y2F1c2UgdGhlIGNvdmVyYWdlIGlzIG5vdCBnb29kIGVub3VnaCBhdCB0aGUgbW9tZW50CiAgICAg
ICAgIC8vIGFuZCByZXBvcnQgUmVuZGVyQXJlbmEgc2l6ZSBpbnN0ZWFkLgpAQCAtMTA5LDcgKzEw
OSw2IEBAIHB1YmxpYzoKICAgICAgICAgd2hpbGUgKGluZGV4IDwgb2JqZWN0VHlwZXMuc2l6ZSgp
KQogICAgICAgICAgICAgaW5kZXggPSBidWlsZE9iamVjdEZvckluZGV4KGluZGV4LCBvYmplY3RU
eXBlcywgY2hpbGRyZW4pOwogCi0gICAgICAgIGFkZE1lbW9yeUluc3RydW1lbnRhdGlvbkRlYnVn
RGF0YShjaGlsZHJlbik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTQ3LDIxICsxNDYsNiBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNZW1v
cnlJbnN0cnVtZW50YXRpb25EZWJ1Z0RhdGEoSW5zcGVjdG9yTWVtb3J5QmxvY2tzKiBjaGlsZHJl
bikKLSAgICB7Ci0gICAgICAgIGlmIChtX2NsaWVudC0+Y2hlY2tJbnN0cnVtZW50ZWRPYmplY3Rz
KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gdG90YWxJbnN0
cnVtZW50ZWQgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZSgiSW5zdHJ1
bWVudGVkT2JqZWN0c0NvdW50Iik7Ci0gICAgICAgICAgICB0b3RhbEluc3RydW1lbnRlZC0+c2V0
U2l6ZShtX2NsaWVudC0+dG90YWxDb3VudGVkT2JqZWN0cygpKTsKLQotICAgICAgICAgICAgUmVm
UHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBpbmNvcnJlY3RseUluc3RydW1lbnRlZCA9IEluc3Bl
Y3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKCJJbnN0cnVtZW50ZWRCdXROb3RBbGxv
Y2F0ZWRPYmplY3RzQ291bnQiKTsKLSAgICAgICAgICAgIGluY29ycmVjdGx5SW5zdHJ1bWVudGVk
LT5zZXRTaXplKG1fY2xpZW50LT50b3RhbE9iamVjdHNOb3RJbkFsbG9jYXRlZFNldCgpKTsKLQot
ICAgICAgICAgICAgY2hpbGRyZW4tPmFkZEl0ZW0odG90YWxJbnN0cnVtZW50ZWQpOwotICAgICAg
ICAgICAgY2hpbGRyZW4tPmFkZEl0ZW0oaW5jb3JyZWN0bHlJbnN0cnVtZW50ZWQpOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50SW1wbCogbV9jbGll
bnQ7CiAgICAgVHlwZU5hbWVUb1NpemVNYXAgbV9zaXplc01hcDsKIH07CiAKQEAgLTUyNywyMSAr
NTExLDUyIEBAIHN0YXRpYyB2b2lkIGNvbGxlY3REb21UcmVlSW5mbyhNZW1vcnlJbnN0cnVtZW50
YXRpb25JbXBsJiBtZW1vcnlJbnN0cnVtZW50YXRpb24sCiAgICAgZG9tVHJlZXNJdGVyYXRvci52
aXNpdE1lbW9yeUNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZFBsYXRmb3JtQ29tcG9uZW50
c0luZm8oUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9ja3M+IGNoaWxkcmVuKQorc3RhdGlj
IHZvaWQgYWRkUGxhdGZvcm1Db21wb25lbnRzSW5mbyhUeXBlTmFtZVRvU2l6ZU1hcCogbWVtb3J5
SW5mbykKIHsKICAgICBWZWN0b3I8TWVtb3J5VXNhZ2VTdXBwb3J0OjpDb21wb25lbnRJbmZvPiBj
b21wb25lbnRzOwogICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6bWVtb3J5VXNhZ2VCeUNvbXBvbmVu
dHMoY29tcG9uZW50cyk7Ci0gICAgZm9yIChWZWN0b3I8TWVtb3J5VXNhZ2VTdXBwb3J0OjpDb21w
b25lbnRJbmZvPjo6aXRlcmF0b3IgaXQgPSBjb21wb25lbnRzLmJlZ2luKCk7IGl0ICE9IGNvbXBv
bmVudHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2Nr
PiBibG9jayA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKGl0LT5tX25h
bWUpOwotICAgICAgICBibG9jay0+c2V0U2l6ZShpdC0+bV9zaXplSW5CeXRlcyk7Ci0gICAgICAg
IGNoaWxkcmVuLT5hZGRJdGVtKGJsb2NrKTsKKyAgICBmb3IgKFZlY3RvcjxNZW1vcnlVc2FnZVN1
cHBvcnQ6OkNvbXBvbmVudEluZm8+OjppdGVyYXRvciBpdCA9IGNvbXBvbmVudHMuYmVnaW4oKTsg
aXQgIT0gY29tcG9uZW50cy5lbmQoKTsgKytpdCkKKyAgICAgICAgbWVtb3J5SW5mby0+YWRkKGl0
LT5tX25hbWUsIGl0LT5tX3NpemVJbkJ5dGVzKTsKK30KKworc3RhdGljIHZvaWQgYWRkTWVtb3J5
SW5zdHJ1bWVudGF0aW9uRGVidWdEYXRhKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudEltcGwq
IGNsaWVudCwgVHlwZU5hbWVUb1NpemVNYXAqIG1lbW9yeUluZm8pCit7CisgICAgaWYgKGNsaWVu
dC0+Y2hlY2tJbnN0cnVtZW50ZWRPYmplY3RzKCkpIHsKKyAgICAgICAgbWVtb3J5SW5mby0+YWRk
KCJJbnN0cnVtZW50ZWRPYmplY3RzQ291bnQiLCBjbGllbnQtPnRvdGFsQ291bnRlZE9iamVjdHMo
KSk7CisgICAgICAgIG1lbW9yeUluZm8tPmFkZCgiSW5zdHJ1bWVudGVkQnV0Tm90QWxsb2NhdGVk
T2JqZWN0c0NvdW50IiwgY2xpZW50LT50b3RhbE9iamVjdHNOb3RJbkFsbG9jYXRlZFNldCgpKTsK
ICAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlE
aXN0cmlidXRpb24oRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRHcmFwaCwgUmVmUHRy
PEluc3BlY3Rvck1lbW9yeUJsb2NrPiYgcHJvY2Vzc01lbW9yeSwgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIGdyYXBoKQogeworICAgIFR5cGVOYW1lVG9TaXplTWFwIG1lbW9yeUluZm87CisgICAg
Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKHJlcG9ydEdyYXBoICYmICpyZXBvcnRH
cmFwaCwgZ3JhcGgsICZtZW1vcnlJbmZvKTsKKworICAgIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0
b3Igc3RhdHNHZW5lcmF0b3I7CisgICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2Nrcz4gY2hp
bGRyZW4gPSBJbnNwZWN0b3JNZW1vcnlCbG9ja3M6OmNyZWF0ZSgpOworICAgIHN0YXRzR2VuZXJh
dG9yLmR1bXAobWVtb3J5SW5mbywgY2hpbGRyZW4uZ2V0KCkpOworCisgICAgcHJvY2Vzc01lbW9y
eSA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKFdlYkNvcmVNZW1vcnlU
eXBlczo6UHJvY2Vzc1ByaXZhdGVNZW1vcnkpOworICAgIHByb2Nlc3NNZW1vcnktPnNldENoaWxk
cmVuKGNoaWxkcmVuKTsKKworICAgIHNpemVfdCBwcml2YXRlQnl0ZXMgPSAwOworICAgIHNpemVf
dCBzaGFyZWRCeXRlcyA9IDA7CisgICAgTWVtb3J5VXNhZ2VTdXBwb3J0Ojpwcm9jZXNzTWVtb3J5
U2l6ZXNJbkJ5dGVzKCZwcml2YXRlQnl0ZXMsICZzaGFyZWRCeXRlcyk7CisgICAgcHJvY2Vzc01l
bW9yeS0+c2V0U2l6ZShwcml2YXRlQnl0ZXMpOworfQorCit2b2lkIEluc3BlY3Rvck1lbW9yeUFn
ZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yKTsKKyAgICBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1faW5zcGVjdG9yQ2xpZW50KTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3BhZ2UpOworfQorCit2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50Ojpn
ZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uQXNNYXAoYm9vbCByZXBvcnRHcmFwaCwgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4mIGdyYXBoLCBUeXBlTmFtZVRvU2l6ZU1hcCogbWVtb3J5SW5mbykK
K3sKICAgICBPd25QdHI8SGVhcEdyYXBoU2VyaWFsaXplcj4gZ3JhcGhTZXJpYWxpemVyOwotICAg
IGlmIChyZXBvcnRHcmFwaCAmJiAqcmVwb3J0R3JhcGgpCisgICAgaWYgKHJlcG9ydEdyYXBoKQog
ICAgICAgICBncmFwaFNlcmlhbGl6ZXIgPSBhZG9wdFB0cihuZXcgSGVhcEdyYXBoU2VyaWFsaXpl
cigpKTsKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnRJbXBsIG1lbW9yeUluc3RydW1l
bnRhdGlvbkNsaWVudChncmFwaFNlcmlhbGl6ZXIuZ2V0KCkpOwogICAgIG1faW5zcGVjdG9yQ2xp
ZW50LT5nZXRBbGxvY2F0ZWRPYmplY3RzKG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudC5hbGxv
Y2F0ZWRPYmplY3RzKCkpOwpAQCAtNTU0LDkgKzU2OSw2IEBAIHZvaWQgSW5zcGVjdG9yTWVtb3J5
QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24oRXJyb3JTdHJpbmcqLCBjb25zdCBi
b29sCiAgICAgUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydFN0YXRpY01lbWJl
cnNNZW1vcnlVc2FnZSgmbWVtb3J5SW5zdHJ1bWVudGF0aW9uKTsKICAgICBXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjpyZXBvcnRTdGF0aWNNZW1iZXJzTWVtb3J5VXNhZ2UoJm1lbW9yeUlu
c3RydW1lbnRhdGlvbik7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2tzPiBjaGls
ZHJlbiA9IEluc3BlY3Rvck1lbW9yeUJsb2Nrczo6Y3JlYXRlKCk7Ci0gICAgYWRkUGxhdGZvcm1D
b21wb25lbnRzSW5mbyhjaGlsZHJlbik7Ci0KICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24uYWRk
Um9vdE9iamVjdCh0aGlzKTsKICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24uYWRkUm9vdE9iamVj
dChtZW1vcnlJbnN0cnVtZW50YXRpb24pOwogICAgIG1lbW9yeUluc3RydW1lbnRhdGlvbi5hZGRS
b290T2JqZWN0KG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCk7CkBAIC01NjcsMjQgKzU3OSw5
IEBAIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRp
b24oRXJyb3JTdHJpbmcqLCBjb25zdCBib29sCiAKICAgICBtX2luc3BlY3RvckNsaWVudC0+ZHVt
cFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMobWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50LmNv
dW50ZWRPYmplY3RzKCkpOwogCi0gICAgTWVtb3J5VXNhZ2VTdGF0c0dlbmVyYXRvciBzdGF0c0dl
bmVyYXRvcigmbWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KTsKLSAgICBzdGF0c0dlbmVyYXRv
ci5kdW1wKGNoaWxkcmVuLmdldCgpKTsKLQotICAgIHByb2Nlc3NNZW1vcnkgPSBJbnNwZWN0b3JN
ZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVtb3J5VHlwZXM6OlByb2Nlc3NQ
cml2YXRlTWVtb3J5KTsKLSAgICBwcm9jZXNzTWVtb3J5LT5zZXRDaGlsZHJlbihjaGlsZHJlbik7
Ci0KLSAgICBzaXplX3QgcHJpdmF0ZUJ5dGVzID0gMDsKLSAgICBzaXplX3Qgc2hhcmVkQnl0ZXMg
PSAwOwotICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6cHJvY2Vzc01lbW9yeVNpemVzSW5CeXRlcygm
cHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0ZXMpOwotICAgIHByb2Nlc3NNZW1vcnktPnNldFNpemUo
cHJpdmF0ZUJ5dGVzKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKLXsKLSAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6Okluc3BlY3Rvcik7Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rvck1l
bW9yeUFnZW50Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5m
by5hZGRXZWFrUG9pbnRlcihtX2luc3BlY3RvckNsaWVudCk7Ci0gICAgaW5mby5hZGRNZW1iZXIo
bV9wYWdlKTsKKyAgICAqbWVtb3J5SW5mbyA9IG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudC5z
aXplc01hcCgpOworICAgIGFkZFBsYXRmb3JtQ29tcG9uZW50c0luZm8obWVtb3J5SW5mbyk7Cisg
ICAgYWRkTWVtb3J5SW5zdHJ1bWVudGF0aW9uRGVidWdEYXRhKCZtZW1vcnlJbnN0cnVtZW50YXRp
b25DbGllbnQsIG1lbW9yeUluZm8pOwogfQogCiBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6SW5zcGVj
dG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwg
UGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JNZW1vcnlBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9y
eUFnZW50LmgKaW5kZXggMTQ3Y2ZkYTMwOGZkMDFlNWYyNWE4YTI5ZDVmNTdmMTVmNzRhZTk0ZS4u
ZWM1OWM3ODUyNzc1MTk5ZDg5MTYxYjc0NGM2OTgyM2JjNzE2NjU2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTYzLDYgKzYzLDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKIAorICAgIHZvaWQgZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlv
bkFzTWFwKGJvb2wgcmVwb3J0R3JhcGgsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBncmFwaCwg
SGFzaE1hcDxTdHJpbmcsIHNpemVfdD4qIG1lbW9yeUluZm8pOworCiBwcml2YXRlOgogICAgIElu
c3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDbGllbnQq
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2UqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184735</attachid>
            <date>2013-01-25 05:34:17 -0800</date>
            <delta_ts>2013-01-25 06:38:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107938-20130125143108.patch</filename>
            <type>text/plain</type>
            <size>11784</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5MzlkNjIxN2RjOGEw
YTk3OGQ1MjQwNjg0MTM2MmNkZmMwYTg4ZS4uZmE5NWZkZDdkNWI1MTczNTQ4MWFkNGY4NTc0NWE0
MjRiYjYwYzBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTI1ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDogbWVtb3J5IGRhdGEgYXMgYSBtYXAuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzkzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gZnVuY3Rp
b25hbCBjaGFuZ2VzLCBvbmx5IHJlZmFjdG9yaW5nKS4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRk
UGxhdGZvcm1Db21wb25lbnRzSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZE1lbW9yeUluc3RydW1lbnRhdGlvbkRlYnVnRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb25Bc01hcCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JNZW1vcnlBZ2VudCk6CisKIDIwMTMtMDEt
MjUgIFNlcmdleSBSeWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgZXhwbGFuYXRpb24gZm9yIENvbnNvbGUgb2JqZWN0IGV4cGFuc2lvbiBi
ZWhhdmlvdXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCAyZTVlNWQzYTVmZDE1OTJlNzI4NzY4Y2M5MmI3ZTNkYWE1YjAyM2U2Li45
ZjM5MmEwNzE0ZDA5YmU4NDYwODQxYjMxZmJkZWZkM2NiYWMyYWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5
LDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFn
ZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgT3duUHRyPEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOwogICAg
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFn
ZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVs
ZWFzZSgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS5n
ZXQoKSwgbV9wYWdlKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IG1lbW9y
eUFnZW50UHRyKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1fcGFnZSkpOworICAg
IG1fbWVtb3J5QWdlbnQgPSBtZW1vcnlBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQobWVtb3J5QWdlbnRQdHIucmVsZWFzZSgpKTsKKwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBw
YWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlBhZ2VJbnNw
ZWN0b3IsCiAgICAgICAgaW5zcGVjdG9yQ2xpZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7CkBAIC00MzgsNiArNDQyLDE0IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUHJvY2Vzc1Rhc2soKQogI2VuZGlmCiB9CiAK
K0hhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OnByb2Nlc3NNZW1v
cnlEaXN0cmlidXRpb24oKSBjb25zdAoreworICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IG1l
bW9yeUluZm87CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZ3JhcGg7CisgICAgbV9tZW1v
cnlBZ2VudC0+Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKGZhbHNlLCBncmFwaCwg
Jm1lbW9yeUluZm8pOworICAgIHJldHVybiBtZW1vcnlJbmZvOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYTE4YTg5ODU2ZGMwZDRl
MWQzNTAwNWZlZGFmYTAyYjJjZTI1OGY3Ny4uZWNlNjM3YWNhYTJlZGU4YmRhMjUyZWVjZGU2YTFh
NDU4ZDViODUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OworY2xhc3MgSW5zcGVjdG9yTWVtb3J5
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JPdmVybGF5OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50
OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKQEAgLTEyNCw2ICsxMjUsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKICAgICB2b2lkIGRpZFByb2Nlc3NUYXNr
KCk7CiAKKyAgICBIYXNoTWFwPFN0cmluZywgc2l6ZV90PiBwcm9jZXNzTWVtb3J5RGlzdHJpYnV0
aW9uKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiwg
SW5zcGVjdG9yQ2xpZW50Kik7CiAKQEAgLTEzOSw2ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIElu
c3BlY3RvckRPTUFnZW50KiBtX2RvbUFnZW50OwogICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQq
IG1fcmVzb3VyY2VBZ2VudDsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50Owor
ICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KiBtX21lbW9yeUFnZW50OwogI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQogICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdnZXJB
Z2VudDsKICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2RvbURlYnVnZ2VyQWdlbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNw
cAppbmRleCBiMzA1YzA4NDFkNWJhNzA4MzQ2MTM5YTg4NzAxMTAzNDZkZTIyZDYyLi5jNDhjMWY2
Nzc3N2M1M2EzMWE2MTE5MTI3YjMxMDcyYjE1M2I4MWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTgxLDExICs4MSwxMSBA
QCBuYW1lc3BhY2UgewogCiBjbGFzcyBNZW1vcnlVc2FnZVN0YXRzR2VuZXJhdG9yIHsKIHB1Ymxp
YzoKLSAgICBNZW1vcnlVc2FnZVN0YXRzR2VuZXJhdG9yKE1lbW9yeUluc3RydW1lbnRhdGlvbkNs
aWVudEltcGwqIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpIHsgfQorICAgIE1lbW9yeVVzYWdl
U3RhdHNHZW5lcmF0b3IoKSB7IH0KIAotICAgIHZvaWQgZHVtcChJbnNwZWN0b3JNZW1vcnlCbG9j
a3MqIGNoaWxkcmVuKQorICAgIHZvaWQgZHVtcChjb25zdCBUeXBlTmFtZVRvU2l6ZU1hcCYgc2l6
ZXNNYXAsIEluc3BlY3Rvck1lbW9yeUJsb2NrcyogY2hpbGRyZW4pCiAgICAgewotICAgICAgICBt
X3NpemVzTWFwID0gbV9jbGllbnQtPnNpemVzTWFwKCk7CisgICAgICAgIG1fc2l6ZXNNYXAgPSBz
aXplc01hcDsKIAogICAgICAgICAvLyBGSVhNRTogV2UgZmlsdGVyIG91dCBSZW5kZXJpbmcgdHlw
ZSBiZWNhdXNlIHRoZSBjb3ZlcmFnZSBpcyBub3QgZ29vZCBlbm91Z2ggYXQgdGhlIG1vbWVudAog
ICAgICAgICAvLyBhbmQgcmVwb3J0IFJlbmRlckFyZW5hIHNpemUgaW5zdGVhZC4KQEAgLTEwOSw3
ICsxMDksNiBAQCBwdWJsaWM6CiAgICAgICAgIHdoaWxlIChpbmRleCA8IG9iamVjdFR5cGVzLnNp
emUoKSkKICAgICAgICAgICAgIGluZGV4ID0gYnVpbGRPYmplY3RGb3JJbmRleChpbmRleCwgb2Jq
ZWN0VHlwZXMsIGNoaWxkcmVuKTsKIAotICAgICAgICBhZGRNZW1vcnlJbnN0cnVtZW50YXRpb25E
ZWJ1Z0RhdGEoY2hpbGRyZW4pOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTE0NywyMSArMTQ2LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGluZGV4OwogICAgIH0KIAotICAgIHZvaWQgYWRk
TWVtb3J5SW5zdHJ1bWVudGF0aW9uRGVidWdEYXRhKEluc3BlY3Rvck1lbW9yeUJsb2NrcyogY2hp
bGRyZW4pCi0gICAgewotICAgICAgICBpZiAobV9jbGllbnQtPmNoZWNrSW5zdHJ1bWVudGVkT2Jq
ZWN0cygpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IHRvdGFs
SW5zdHJ1bWVudGVkID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUoIklu
c3RydW1lbnRlZE9iamVjdHNDb3VudCIpOwotICAgICAgICAgICAgdG90YWxJbnN0cnVtZW50ZWQt
PnNldFNpemUobV9jbGllbnQtPnRvdGFsQ291bnRlZE9iamVjdHMoKSk7Ci0KLSAgICAgICAgICAg
IFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gaW5jb3JyZWN0bHlJbnN0cnVtZW50ZWQgPSBJ
bnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZSgiSW5zdHJ1bWVudGVkQnV0Tm90
QWxsb2NhdGVkT2JqZWN0c0NvdW50Iik7Ci0gICAgICAgICAgICBpbmNvcnJlY3RseUluc3RydW1l
bnRlZC0+c2V0U2l6ZShtX2NsaWVudC0+dG90YWxPYmplY3RzTm90SW5BbGxvY2F0ZWRTZXQoKSk7
Ci0KLSAgICAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKHRvdGFsSW5zdHJ1bWVudGVkKTsKLSAg
ICAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGluY29ycmVjdGx5SW5zdHJ1bWVudGVkKTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudEltcGwqIG1f
Y2xpZW50OwogICAgIFR5cGVOYW1lVG9TaXplTWFwIG1fc2l6ZXNNYXA7CiB9OwogCkBAIC01Mjcs
MjEgKzUxMSw1MiBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0RG9tVHJlZUluZm8oTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSW1wbCYgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLAogICAgIGRvbVRyZWVzSXRlcmF0
b3IudmlzaXRNZW1vcnlDYWNoZSgpOwogfQogCi1zdGF0aWMgdm9pZCBhZGRQbGF0Zm9ybUNvbXBv
bmVudHNJbmZvKFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2tzPiBjaGlsZHJlbikKK3N0
YXRpYyB2b2lkIGFkZFBsYXRmb3JtQ29tcG9uZW50c0luZm8oVHlwZU5hbWVUb1NpemVNYXAqIG1l
bW9yeUluZm8pCiB7CiAgICAgVmVjdG9yPE1lbW9yeVVzYWdlU3VwcG9ydDo6Q29tcG9uZW50SW5m
bz4gY29tcG9uZW50czsKICAgICBNZW1vcnlVc2FnZVN1cHBvcnQ6Om1lbW9yeVVzYWdlQnlDb21w
b25lbnRzKGNvbXBvbmVudHMpOwotICAgIGZvciAoVmVjdG9yPE1lbW9yeVVzYWdlU3VwcG9ydDo6
Q29tcG9uZW50SW5mbz46Oml0ZXJhdG9yIGl0ID0gY29tcG9uZW50cy5iZWdpbigpOyBpdCAhPSBj
b21wb25lbnRzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlC
bG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShpdC0+
bV9uYW1lKTsKLSAgICAgICAgYmxvY2stPnNldFNpemUoaXQtPm1fc2l6ZUluQnl0ZXMpOwotICAg
ICAgICBjaGlsZHJlbi0+YWRkSXRlbShibG9jayk7CisgICAgZm9yIChWZWN0b3I8TWVtb3J5VXNh
Z2VTdXBwb3J0OjpDb21wb25lbnRJbmZvPjo6aXRlcmF0b3IgaXQgPSBjb21wb25lbnRzLmJlZ2lu
KCk7IGl0ICE9IGNvbXBvbmVudHMuZW5kKCk7ICsraXQpCisgICAgICAgIG1lbW9yeUluZm8tPmFk
ZChpdC0+bV9uYW1lLCBpdC0+bV9zaXplSW5CeXRlcyk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZE1l
bW9yeUluc3RydW1lbnRhdGlvbkRlYnVnRGF0YShNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnRJ
bXBsKiBjbGllbnQsIFR5cGVOYW1lVG9TaXplTWFwKiBtZW1vcnlJbmZvKQoreworICAgIGlmIChj
bGllbnQtPmNoZWNrSW5zdHJ1bWVudGVkT2JqZWN0cygpKSB7CisgICAgICAgIG1lbW9yeUluZm8t
PmFkZCgiSW5zdHJ1bWVudGVkT2JqZWN0c0NvdW50IiwgY2xpZW50LT50b3RhbENvdW50ZWRPYmpl
Y3RzKCkpOworICAgICAgICBtZW1vcnlJbmZvLT5hZGQoIkluc3RydW1lbnRlZEJ1dE5vdEFsbG9j
YXRlZE9iamVjdHNDb3VudCIsIGNsaWVudC0+dG90YWxPYmplY3RzTm90SW5BbGxvY2F0ZWRTZXQo
KSk7CiAgICAgfQogfQogCiB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpnZXRQcm9jZXNzTWVt
b3J5RGlzdHJpYnV0aW9uKEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0R3JhcGgsIFJl
ZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4mIHByb2Nlc3NNZW1vcnksIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiBncmFwaCkKIHsKKyAgICBUeXBlTmFtZVRvU2l6ZU1hcCBtZW1vcnlJbmZvOwor
ICAgIGdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb25Bc01hcChyZXBvcnRHcmFwaCAmJiAqcmVw
b3J0R3JhcGgsIGdyYXBoLCAmbWVtb3J5SW5mbyk7CisKKyAgICBNZW1vcnlVc2FnZVN0YXRzR2Vu
ZXJhdG9yIHN0YXRzR2VuZXJhdG9yOworICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9ja3M+
IGNoaWxkcmVuID0gSW5zcGVjdG9yTWVtb3J5QmxvY2tzOjpjcmVhdGUoKTsKKyAgICBzdGF0c0dl
bmVyYXRvci5kdW1wKG1lbW9yeUluZm8sIGNoaWxkcmVuLmdldCgpKTsKKworICAgIHByb2Nlc3NN
ZW1vcnkgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShXZWJDb3JlTWVt
b3J5VHlwZXM6OlByb2Nlc3NQcml2YXRlTWVtb3J5KTsKKyAgICBwcm9jZXNzTWVtb3J5LT5zZXRD
aGlsZHJlbihjaGlsZHJlbik7CisKKyAgICBzaXplX3QgcHJpdmF0ZUJ5dGVzID0gMDsKKyAgICBz
aXplX3Qgc2hhcmVkQnl0ZXMgPSAwOworICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6cHJvY2Vzc01l
bW9yeVNpemVzSW5CeXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0ZXMpOworICAgIHByb2Nl
c3NNZW1vcnktPnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKK30KKwordm9pZCBJbnNwZWN0b3JNZW1v
cnlBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3Rvcik7CisgICAgSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3Rvck1lbW9yeUFnZW50Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2luc3BlY3RvckNsaWVudCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9wYWdlKTsKK30KKwordm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbkFzTWFwKGJvb2wgcmVwb3J0R3JhcGgsIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBncmFwaCwgVHlwZU5hbWVUb1NpemVNYXAqIG1lbW9yeUlu
Zm8pCit7CiAgICAgT3duUHRyPEhlYXBHcmFwaFNlcmlhbGl6ZXI+IGdyYXBoU2VyaWFsaXplcjsK
LSAgICBpZiAocmVwb3J0R3JhcGggJiYgKnJlcG9ydEdyYXBoKQorICAgIGlmIChyZXBvcnRHcmFw
aCkKICAgICAgICAgZ3JhcGhTZXJpYWxpemVyID0gYWRvcHRQdHIobmV3IEhlYXBHcmFwaFNlcmlh
bGl6ZXIoKSk7CiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50SW1wbCBtZW1vcnlJbnN0
cnVtZW50YXRpb25DbGllbnQoZ3JhcGhTZXJpYWxpemVyLmdldCgpKTsKICAgICBtX2luc3BlY3Rv
ckNsaWVudC0+Z2V0QWxsb2NhdGVkT2JqZWN0cyhtZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQu
YWxsb2NhdGVkT2JqZWN0cygpKTsKQEAgLTU1NCw5ICs1NjksNiBAQCB2b2lkIEluc3BlY3Rvck1l
bW9yeUFnZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKEVycm9yU3RyaW5nKiwgY29u
c3QgYm9vbAogICAgIFBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpyZXBvcnRTdGF0aWNN
ZW1iZXJzTWVtb3J5VXNhZ2UoJm1lbW9yeUluc3RydW1lbnRhdGlvbik7CiAgICAgV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbjo6cmVwb3J0U3RhdGljTWVtYmVyc01lbW9yeVVzYWdlKCZtZW1v
cnlJbnN0cnVtZW50YXRpb24pOwogCi0gICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2Nrcz4g
Y2hpbGRyZW4gPSBJbnNwZWN0b3JNZW1vcnlCbG9ja3M6OmNyZWF0ZSgpOwotICAgIGFkZFBsYXRm
b3JtQ29tcG9uZW50c0luZm8oY2hpbGRyZW4pOwotCiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmFkZFJvb3RPYmplY3QodGhpcyk7CiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLmFkZFJvb3RP
YmplY3QobWVtb3J5SW5zdHJ1bWVudGF0aW9uKTsKICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24u
YWRkUm9vdE9iamVjdChtZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQpOwpAQCAtNTY3LDI0ICs1
NzksOSBAQCB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJp
YnV0aW9uKEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbAogCiAgICAgbV9pbnNwZWN0b3JDbGllbnQt
PmR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKG1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVu
dC5jb3VudGVkT2JqZWN0cygpKTsKIAotICAgIE1lbW9yeVVzYWdlU3RhdHNHZW5lcmF0b3Igc3Rh
dHNHZW5lcmF0b3IoJm1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCk7Ci0gICAgc3RhdHNHZW5l
cmF0b3IuZHVtcChjaGlsZHJlbi5nZXQoKSk7Ci0KLSAgICBwcm9jZXNzTWVtb3J5ID0gSW5zcGVj
dG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUoV2ViQ29yZU1lbW9yeVR5cGVzOjpQcm9j
ZXNzUHJpdmF0ZU1lbW9yeSk7Ci0gICAgcHJvY2Vzc01lbW9yeS0+c2V0Q2hpbGRyZW4oY2hpbGRy
ZW4pOwotCi0gICAgc2l6ZV90IHByaXZhdGVCeXRlcyA9IDA7Ci0gICAgc2l6ZV90IHNoYXJlZEJ5
dGVzID0gMDsKLSAgICBNZW1vcnlVc2FnZVN1cHBvcnQ6OnByb2Nlc3NNZW1vcnlTaXplc0luQnl0
ZXMoJnByaXZhdGVCeXRlcywgJnNoYXJlZEJ5dGVzKTsKLSAgICBwcm9jZXNzTWVtb3J5LT5zZXRT
aXplKHByaXZhdGVCeXRlcyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Ci17
Ci0gICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3IpOwotICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0
b3JNZW1vcnlBZ2VudD46OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwotICAg
IGluZm8uYWRkV2Vha1BvaW50ZXIobV9pbnNwZWN0b3JDbGllbnQpOwotICAgIGluZm8uYWRkTWVt
YmVyKG1fcGFnZSk7CisgICAgKm1lbW9yeUluZm8gPSBtZW1vcnlJbnN0cnVtZW50YXRpb25DbGll
bnQuc2l6ZXNNYXAoKTsKKyAgICBhZGRQbGF0Zm9ybUNvbXBvbmVudHNJbmZvKG1lbW9yeUluZm8p
OworICAgIGFkZE1lbW9yeUluc3RydW1lbnRhdGlvbkRlYnVnRGF0YSgmbWVtb3J5SW5zdHJ1bWVu
dGF0aW9uQ2xpZW50LCBtZW1vcnlJbmZvKTsKIH0KIAogSW5zcGVjdG9yTWVtb3J5QWdlbnQ6Oklu
c3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3Rh
dGUsIFBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oCmluZGV4IDE0N2NmZGEzMDhmZDAxZTVmMjVhOGEyOWQ1ZjU3ZjE1Zjc0YWU5
NGUuLmVjNTljNzg1Mjc3NTE5OWQ4OTE2MWI3NDRjNjk4MjNiYzcxNjY1NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC02Myw2ICs2
Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NNZW1vcnlEaXN0cmli
dXRpb25Bc01hcChib29sIHJlcG9ydEdyYXBoLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgZ3Jh
cGgsIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+KiBtZW1vcnlJbmZvKTsKKwogcHJpdmF0ZToKICAg
ICBJbnNwZWN0b3JNZW1vcnlBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ2xp
ZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBQYWdlKik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>