<?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>122607</bug_id>
          
          <creation_ts>2013-10-10 11:05:23 -0700</creation_ts>
          <short_desc>Store uniform type information in WebGLUniformationLocation</short_desc>
          <delta_ts>2014-01-02 16:31:26 -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>WebGL</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>122610</blocked>
    
    <blocked>126411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roger Fong">roger_fong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938424</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-10-10 11:05:23 -0700</bug_when>
    <thetext>We should store type information here so that we don&apos;t have to loop through all the uniforms and find it everytime we call getUniform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938426</commentid>
    <comment_count>1</comment_count>
      <attachid>213903</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-10-10 11:06:49 -0700</bug_when>
    <thetext>Created attachment 213903
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938428</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-10 11:08:24 -0700</bug_when>
    <thetext>Attachment 213903 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLUniformLocation.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLUniformLocation.h&apos;]&quot; exit_code: 1
Source/WebCore/html/canvas/WebGLRenderingContext.cpp:3011:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938464</commentid>
    <comment_count>3</comment_count>
      <attachid>213910</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-10-10 12:04:22 -0700</bug_when>
    <thetext>Created attachment 213910
w/ style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938512</commentid>
    <comment_count>4</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-10-10 13:18:01 -0700</bug_when>
    <thetext>Committed: http://trac.webkit.org/changeset/157247</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213903</attachid>
            <date>2013-10-10 11:06:49 -0700</date>
            <delta_ts>2013-10-10 12:04:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>14947</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTU3MDc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwNywx
NDIgKzMwMDcsMTE4IEBACiAgICAgR0MzRGludCBsb2NhdGlvbiA9IHVuaWZvcm1Mb2NhdGlvbi0+
bG9jYXRpb24oKTsKIAogICAgIFdlYkdMU3RhdGVSZXN0b3Jlcih0aGlzLCBmYWxzZSk7Ci0gICAg
Ly8gRklYTUU6IG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudCB1c2luZyBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBhbmQgY2FjaGluZyB0eXBlcyBpbiBpdAotICAgIEdDM0RpbnQgYWN0aXZlVW5pZm9ybXMg
PSAwOwotICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9VTklGT1JNUywgJmFjdGl2ZVVuaWZvcm1zKTsKLSAg
ICBmb3IgKEdDM0RpbnQgaSA9IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAg
IEFjdGl2ZUluZm8gaW5mbzsKLSAgICAgICAgaWYgKCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZv
cm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBpbmZvKSkKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKLSAgICAgICAgLy8gU3RyaXAgIlswXSIgZnJvbSB0aGUgbmFtZSBpZiBp
dCdzIGFuIGFycmF5LgotICAgICAgICBpZiAoaW5mby5zaXplID4gMSAmJiBpbmZvLm5hbWUuZW5k
c1dpdGgoIlswXSIpKQotICAgICAgICAgICAgaW5mby5uYW1lID0gaW5mby5uYW1lLmxlZnQoaW5m
by5uYW1lLmxlbmd0aCgpIC0gMyk7Ci0gICAgICAgIC8vIElmIGl0J3MgYW4gYXJyYXksIHdlIG5l
ZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGVhY2ggZWxlbWVudCwgYXBwZW5kaW5nICJbaW5kZXhdIiB0
byB0aGUgbmFtZS4KLSAgICAgICAgZm9yIChHQzNEaW50IGluZGV4ID0gMDsgaW5kZXggPCBpbmZv
LnNpemU7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaW5mby5uYW1lOwot
ICAgICAgICAgICAgaWYgKGluZm8uc2l6ZSA+IDEgJiYgaW5kZXggPj0gMSkgewotICAgICAgICAg
ICAgICAgIG5hbWUuYXBwZW5kKCdbJyk7Ci0gICAgICAgICAgICAgICAgbmFtZS5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIoaW5kZXgpKTsKLSAgICAgICAgICAgICAgICBuYW1lLmFwcGVuZCgnXScpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gTm93IG5lZWQgdG8gbG9vayB0aGlzIHVwIGJ5
IG5hbWUgYWdhaW4gdG8gZmluZCBpdHMgbG9jYXRpb24KLSAgICAgICAgICAgIEdDM0RpbnQgbG9j
ID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBu
YW1lKTsKLSAgICAgICAgICAgIGlmIChsb2MgPT0gbG9jYXRpb24pIHsKLSAgICAgICAgICAgICAg
ICAvLyBGb3VuZCBpdC4gVXNlIHRoZSB0eXBlIGluIHRoZSBBY3RpdmVJbmZvIHRvIGRldGVybWlu
ZSB0aGUgcmV0dXJuIHR5cGUuCi0gICAgICAgICAgICAgICAgR0MzRGVudW0gYmFzZVR5cGU7Ci0g
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aDsKLSAgICAgICAgICAgICAgICBzd2l0
Y2ggKGluZm8udHlwZSkgewotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkJPT0w6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6
OkJPT0w7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0xf
VkVDMjoKLSAgICAgICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6
Qk9PTDsKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTF9W
RUMzOgotICAgICAgICAgICAgICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpC
T09MOwotICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09MX1ZF
QzQ6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJP
T0w7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDQ7Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDoKLSAg
ICAgICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAg
ICAgICAgICAgICAgICAgICBsZW5ndGggPSAxOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMjoKLSAgICAg
ICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAg
ICAgICAgICAgICAgICBsZW5ndGggPSAyOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMzoKLSAgICAgICAg
ICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAg
ICAgICAgICAgICBsZW5ndGggPSAzOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDNDoKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSA0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDoKLSAgICAgICAgICAgICAgICAg
ICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX1ZFQzI6Ci0gICAgICAgICAgICAgICAg
ICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwotICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggPSAyOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9WRUMzOgotICAgICAgICAgICAgICAg
ICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKLSAgICAgICAgICAgICAg
ICAgICAgbGVuZ3RoID0gMzsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfVkVDNDoKLSAgICAgICAgICAgICAg
ICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAgICAg
ICAgICAgIGxlbmd0aCA9IDQ7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX01BVDI6Ci0gICAgICAgICAgICAg
ICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSA0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9NQVQzOgotICAgICAgICAgICAg
ICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKLSAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gOTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfTUFUNDoKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAg
ICAgICAgICAgIGxlbmd0aCA9IDE2OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVSXzJEOgotICAgICAgICAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRVJfQ1VCRToKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSAxOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAvLyBDYW4ndCBoYW5kbGUgdGhp
cyB0eXBlCi0gICAgICAgICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmhhbmRsZWQgdHlwZSIpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHN3aXRjaCAoYmFzZVR5cGUpIHsKLSAgICAgICAgICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogewotICAgICAgICAgICAgICAgICAgICBH
QzNEZmxvYXQgdmFsdWVbMTZdID0gezB9OwotICAgICAgICAgICAgICAgICAgICBpZiAobV9pc1Jv
YnVzdG5lc3NFWFRTdXBwb3J0ZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+Z2V0blVuaWZvcm1mdkVYVChvYmplY3RPclplcm8ocHJvZ3JhbSks
IGxvY2F0aW9uLCAxNiAqIHNpemVvZihHQzNEZmxvYXQpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9y
bWZ2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlQ6IHsK
LSAgICAgICAgICAgICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKQotICAgICAgICAgICAgICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldG5Vbmlmb3JtaXZFWFQob2Jq
ZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgNCAqIHNpemVvZihHQzNEaW50KSwgdmFsdWUp
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3Ro
KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkJPT0w6IHsKLSAgICAgICAgICAgICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHsw
fTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKQot
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldG5V
bmlmb3JtaXZFWFQob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgNCAqIHNpemVvZihH
QzNEaW50KSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSks
IGxvY2F0aW9uLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbGVuZ3RoOyBqKysp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhib29sVmFsdWUsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVsw
XSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KKyAgICBHQzNEZW51bSBiYXNlVHlwZTsKKyAgICB1bnNpZ25lZCBpbnQgbGVuZ3Ro
OworICAgIHN3aXRjaCAodW5pZm9ybUxvY2F0aW9uLT50eXBlKCkpIHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpCT09MOgorICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNE
OjpCT09MOworICAgICAgICBsZW5ndGggPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpCT09MX1ZFQzI6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkJPT0w7CisgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0xfVkVDMzoKKyAgICAgICAgYmFzZVR5cGUgPSBH
cmFwaGljc0NvbnRleHQzRDo6Qk9PTDsKKyAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTF9WRUM0OgorICAgICAgICBiYXNl
VHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpCT09MOworICAgICAgICBsZW5ndGggPSA0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlQ6CisgICAgICAgIGJh
c2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAgICAgICAgbGVuZ3RoID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SU5UX1ZFQzI6CisgICAg
ICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAgICAgICAgbGVuZ3RoID0g
MjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SU5UX1ZFQzM6
CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAgICAgICAgbGVu
Z3RoID0gMzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SU5U
X1ZFQzQ6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAgICAg
ICAgbGVuZ3RoID0gNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RkxPQVQ6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwor
ICAgICAgICBsZW5ndGggPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGTE9BVF9WRUMyOgorICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNE
OjpGTE9BVDsKKyAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RkxPQVRfVkVDMzoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RkxPQVQ7CisgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX1ZFQzQ6CisgICAgICAgIGJhc2VUeXBl
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOworICAgICAgICBsZW5ndGggPSA0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9NQVQyOgorICAgICAg
ICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKKyAgICAgICAgbGVuZ3RoID0g
NDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfTUFU
MzoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7CisgICAgICAg
IGxlbmd0aCA9IDk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZMT0FUX01BVDQ6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FU
OworICAgICAgICBsZW5ndGggPSAxNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6U0FNUExFUl8yRDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1Q
TEVSX0NVQkU6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAg
ICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
Ly8gQ2FuJ3QgaGFuZGxlIHRoaXMgdHlwZQorICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImdldFVuaWZvcm0iLCAidW5oYW5kbGVkIHR5
cGUiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIH0KKyAgICBzd2l0Y2gg
KGJhc2VUeXBlKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ6IHsKKyAgICAg
ICAgR0MzRGZsb2F0IHZhbHVlWzE2XSA9IHswfTsKKyAgICAgICAgaWYgKG1faXNSb2J1c3RuZXNz
RVhUU3VwcG9ydGVkKQorICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdl
dG5Vbmlmb3JtZnZFWFQob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgMTYgKiBzaXpl
b2YoR0MzRGZsb2F0KSwgdmFsdWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2NvbnRl
eHQtPmdldFVuaWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7
CisgICAgICAgIGlmIChsZW5ndGggPT0gMSkKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWVbMF0pOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEZsb2F0MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKTsKKyAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6SU5UOiB7CisgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CisgICAgICAgIGlmICht
X2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLT5nZXRuVW5pZm9ybWl2RVhUKG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRp
b24sIDQgKiBzaXplb2YoR0MzRGludCksIHZhbHVlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlv
biwgdmFsdWUpOworICAgICAgICBpZiAobGVuZ3RoID09IDEpCisgICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHZhbHVlWzBdKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhJbnQz
MkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpCT09MOiB7CisgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CisgICAg
ICAgIGlmIChtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkKKyAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLT5nZXRuVW5pZm9ybWl2RVhUKG9iamVjdE9yWmVybyhwcm9ncmFt
KSwgbG9jYXRpb24sIDQgKiBzaXplb2YoR0MzRGludCksIHZhbHVlKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0p
LCBsb2NhdGlvbiwgdmFsdWUpOworICAgICAgICBpZiAobGVuZ3RoID4gMSkgeworICAgICAgICAg
ICAgYm9vbCBib29sVmFsdWVbMTZdID0gezB9OworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBq
ID0gMDsgaiA8IGxlbmd0aDsgaisrKQorICAgICAgICAgICAgICAgIGJvb2xWYWx1ZVtqXSA9IHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlW2pdKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oYm9vbFZhbHVlLCBsZW5ndGgpOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsKICAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9CisKICAgICAvLyBJZiB3ZSBnZXQgaGVy
ZSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gb3VyIHVuZm9ydHVuYXRlbHkgY29tcGxleCBsb2dp
YyBhYm92ZQogICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmtub3duIGVycm9yIik7CiAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOwpAQCAtMzE2Nyw3ICszMTQzLDM0IEBACiAgICAgR0MzRGludCB1bmlmb3JtTG9j
YXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihvYmplY3RPclplcm8ocHJvZ3Jh
bSksIG5hbWUpOwogICAgIGlmICh1bmlmb3JtTG9jYXRpb24gPT0gLTEpCiAgICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6Y3JlYXRlKHByb2dyYW0sIHVu
aWZvcm1Mb2NhdGlvbik7CisgICAgCisgICAgR0MzRGludCBhY3RpdmVVbmlmb3JtcyA9IDA7Cisg
ICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBHcmFwaGlj
c0NvbnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TLCAmYWN0aXZlVW5pZm9ybXMpOworICAgIGZvciAo
R0MzRGludCBpID0gMDsgaSA8IGFjdGl2ZVVuaWZvcm1zOyBpKyspIHsKKyAgICAgICAgQWN0aXZl
SW5mbyBpbmZvOworICAgICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlVW5pZm9ybShvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGksIGluZm8pKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIC8vIFN0cmlwICJbMF0iIGZyb20gdGhlIG5hbWUgaWYgaXQncyBhbiBhcnJheS4KKyAgICAg
ICAgaWYgKGluZm8uc2l6ZSA+IDEgJiYgaW5mby5uYW1lLmVuZHNXaXRoKCJbMF0iKSkKKyAgICAg
ICAgICAgIGluZm8ubmFtZSA9IGluZm8ubmFtZS5sZWZ0KGluZm8ubmFtZS5sZW5ndGgoKSAtIDMp
OworICAgICAgICAvLyBJZiBpdCdzIGFuIGFycmF5LCB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3Vn
aCBlYWNoIGVsZW1lbnQsIGFwcGVuZGluZyAiW2luZGV4XSIgdG8gdGhlIG5hbWUuCisgICAgICAg
IGZvciAoR0MzRGludCBpbmRleCA9IDA7IGluZGV4IDwgaW5mby5zaXplOyArK2luZGV4KSB7Cisg
ICAgICAgICAgICBTdHJpbmcgdW5pZm9ybU5hbWUgPSBpbmZvLm5hbWU7CisgICAgICAgICAgICBp
ZiAoaW5mby5zaXplID4gMSkgeworICAgICAgICAgICAgICAgIHVuaWZvcm1OYW1lLmFwcGVuZCgn
WycpOworICAgICAgICAgICAgICAgIHVuaWZvcm1OYW1lLmFwcGVuZChTdHJpbmc6Om51bWJlcihp
bmRleCkpOworICAgICAgICAgICAgICAgIHVuaWZvcm1OYW1lLmFwcGVuZCgnXScpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGluZm8uc2l6ZSA+IDEpIHsKKyAgICAgICAgICAgICAg
ICBpZiAobmFtZSA9PSB1bmlmb3JtTmFtZSB8fCBuYW1lID09IGluZm8ubmFtZSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpjcmVhdGUocHJvZ3JhbSwg
dW5pZm9ybUxvY2F0aW9uLCBpbmZvLnR5cGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBpZiAobmFtZSA9PSBpbmZvLm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6Y3JlYXRlKHByb2dyYW0sIHVuaWZvcm1Mb2NhdGlv
biwgaW5mby50eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gMDsKIH0KIAogV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4
QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3Jt
TG9jYXRpb24uY3BwCShyZXZpc2lvbiAxNTcwNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICsz
MiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8V2ViR0xVbmlmb3Jt
TG9jYXRpb24+IFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpjcmVhdGUoV2ViR0xQcm9ncmFtKiBwcm9n
cmFtLCBHQzNEaW50IGxvY2F0aW9uKQorUGFzc1JlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4g
V2ViR0xVbmlmb3JtTG9jYXRpb246OmNyZWF0ZShXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RlbnVtIHR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViR0xVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgbG9jYXRpb24sIHR5cGUpKTsK
IH0KIAotV2ViR0xVbmlmb3JtTG9jYXRpb246OldlYkdMVW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJv
Z3JhbSogcHJvZ3JhbSwgR0MzRGludCBsb2NhdGlvbikKK1dlYkdMVW5pZm9ybUxvY2F0aW9uOjpX
ZWJHTFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0RpbnQgbG9jYXRp
b24sIEdDM0RlbnVtIHR5cGUpCiAgICAgOiBtX3Byb2dyYW0ocHJvZ3JhbSkKICAgICAsIG1fbG9j
YXRpb24obG9jYXRpb24pCisgICAgLCBtX3R5cGUodHlwZSkKIHsKICAgICBBU1NFUlQobV9wcm9n
cmFtKTsKICAgICBtX2xpbmtDb3VudCA9IG1fcHJvZ3JhbS0+Z2V0TGlua0NvdW50KCk7CkBAIC02
MSw2ICs2MiwxNCBAQAogICAgIEFTU0VSVChtX3Byb2dyYW0tPmdldExpbmtDb3VudCgpID09IG1f
bGlua0NvdW50KTsKICAgICByZXR1cm4gbV9sb2NhdGlvbjsKIH0KKyAgICAKK0dDM0RlbnVtIFdl
YkdMVW5pZm9ybUxvY2F0aW9uOjp0eXBlKCkgY29uc3QKK3sKKyAgICAvLyBJZiB0aGUgcHJvZ3Jh
bSBoYXMgYmVlbiBsaW5rZWQgYWdhaW4sIHRoZW4gdGhpcyBVbmlmb3JtTG9jYXRpb24gaXMgbm8K
KyAgICAvLyBsb25nZXIgdmFsaWQuCisgICAgQVNTRVJUKG1fcHJvZ3JhbS0+Z2V0TGlua0NvdW50
KCkgPT0gbV9saW5rQ291bnQpOworICAgIHJldHVybiBtX3R5cGU7Cit9CiAKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5o
CShyZXZpc2lvbiAxNTcwNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVu
aWZvcm1Mb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxOSArMzgsMjIgQEAKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5XZWJHTFVuaWZvcm1Mb2NhdGlvbigpIHsgfQogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IGNyZWF0ZShXZWJHTFByb2dyYW0qLCBH
QzNEaW50IGxvY2F0aW9uKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj4gY3JlYXRlKFdlYkdMUHJvZ3JhbSosIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RlbnVtIHR5
cGUpOwogCiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtKCkgY29uc3Q7CiAKICAgICBHQzNEaW50
IGxvY2F0aW9uKCkgY29uc3Q7CisgICAgCisgICAgR0MzRGVudW0gdHlwZSgpIGNvbnN0OwogCiBw
cm90ZWN0ZWQ6Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgR0MzRGlu
dCBsb2NhdGlvbik7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGVudW0gdHlwZSk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFdl
YkdMUHJvZ3JhbT4gbV9wcm9ncmFtOwogICAgIEdDM0RpbnQgbV9sb2NhdGlvbjsKICAgICB1bnNp
Z25lZCBtX2xpbmtDb3VudDsKKyAgICBHQzNEZW51bSBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213910</attachid>
            <date>2013-10-10 12:04:22 -0700</date>
            <delta_ts>2013-10-10 13:00:47 -0700</delta_ts>
            <desc>w/ style fix</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>14943</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTU3MDc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwNywx
NDIgKzMwMDcsMTE4IEBACiAgICAgR0MzRGludCBsb2NhdGlvbiA9IHVuaWZvcm1Mb2NhdGlvbi0+
bG9jYXRpb24oKTsKIAogICAgIFdlYkdMU3RhdGVSZXN0b3Jlcih0aGlzLCBmYWxzZSk7Ci0gICAg
Ly8gRklYTUU6IG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudCB1c2luZyBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBhbmQgY2FjaGluZyB0eXBlcyBpbiBpdAotICAgIEdDM0RpbnQgYWN0aXZlVW5pZm9ybXMg
PSAwOwotICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9VTklGT1JNUywgJmFjdGl2ZVVuaWZvcm1zKTsKLSAg
ICBmb3IgKEdDM0RpbnQgaSA9IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAg
IEFjdGl2ZUluZm8gaW5mbzsKLSAgICAgICAgaWYgKCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZv
cm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBpbmZvKSkKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKLSAgICAgICAgLy8gU3RyaXAgIlswXSIgZnJvbSB0aGUgbmFtZSBpZiBp
dCdzIGFuIGFycmF5LgotICAgICAgICBpZiAoaW5mby5zaXplID4gMSAmJiBpbmZvLm5hbWUuZW5k
c1dpdGgoIlswXSIpKQotICAgICAgICAgICAgaW5mby5uYW1lID0gaW5mby5uYW1lLmxlZnQoaW5m
by5uYW1lLmxlbmd0aCgpIC0gMyk7Ci0gICAgICAgIC8vIElmIGl0J3MgYW4gYXJyYXksIHdlIG5l
ZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGVhY2ggZWxlbWVudCwgYXBwZW5kaW5nICJbaW5kZXhdIiB0
byB0aGUgbmFtZS4KLSAgICAgICAgZm9yIChHQzNEaW50IGluZGV4ID0gMDsgaW5kZXggPCBpbmZv
LnNpemU7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaW5mby5uYW1lOwot
ICAgICAgICAgICAgaWYgKGluZm8uc2l6ZSA+IDEgJiYgaW5kZXggPj0gMSkgewotICAgICAgICAg
ICAgICAgIG5hbWUuYXBwZW5kKCdbJyk7Ci0gICAgICAgICAgICAgICAgbmFtZS5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIoaW5kZXgpKTsKLSAgICAgICAgICAgICAgICBuYW1lLmFwcGVuZCgnXScpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gTm93IG5lZWQgdG8gbG9vayB0aGlzIHVwIGJ5
IG5hbWUgYWdhaW4gdG8gZmluZCBpdHMgbG9jYXRpb24KLSAgICAgICAgICAgIEdDM0RpbnQgbG9j
ID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBu
YW1lKTsKLSAgICAgICAgICAgIGlmIChsb2MgPT0gbG9jYXRpb24pIHsKLSAgICAgICAgICAgICAg
ICAvLyBGb3VuZCBpdC4gVXNlIHRoZSB0eXBlIGluIHRoZSBBY3RpdmVJbmZvIHRvIGRldGVybWlu
ZSB0aGUgcmV0dXJuIHR5cGUuCi0gICAgICAgICAgICAgICAgR0MzRGVudW0gYmFzZVR5cGU7Ci0g
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aDsKLSAgICAgICAgICAgICAgICBzd2l0
Y2ggKGluZm8udHlwZSkgewotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkJPT0w6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6
OkJPT0w7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0xf
VkVDMjoKLSAgICAgICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6
Qk9PTDsKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTF9W
RUMzOgotICAgICAgICAgICAgICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpC
T09MOwotICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09MX1ZF
QzQ6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJP
T0w7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDQ7Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDoKLSAg
ICAgICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAg
ICAgICAgICAgICAgICAgICBsZW5ndGggPSAxOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMjoKLSAgICAg
ICAgICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAg
ICAgICAgICAgICAgICBsZW5ndGggPSAyOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMzoKLSAgICAgICAg
ICAgICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAg
ICAgICAgICAgICBsZW5ndGggPSAzOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDNDoKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSA0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDoKLSAgICAgICAgICAgICAgICAg
ICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX1ZFQzI6Ci0gICAgICAgICAgICAgICAg
ICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwotICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggPSAyOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9WRUMzOgotICAgICAgICAgICAgICAg
ICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKLSAgICAgICAgICAgICAg
ICAgICAgbGVuZ3RoID0gMzsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfVkVDNDoKLSAgICAgICAgICAgICAg
ICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAgICAg
ICAgICAgIGxlbmd0aCA9IDQ7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX01BVDI6Ci0gICAgICAgICAgICAg
ICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSA0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9NQVQzOgotICAgICAgICAgICAg
ICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKLSAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gOTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfTUFUNDoKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Ci0gICAgICAgICAg
ICAgICAgICAgIGxlbmd0aCA9IDE2OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVSXzJEOgotICAgICAgICAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRVJfQ1VCRToKLSAgICAgICAgICAg
ICAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOwotICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggPSAxOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAvLyBDYW4ndCBoYW5kbGUgdGhp
cyB0eXBlCi0gICAgICAgICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmhhbmRsZWQgdHlwZSIpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHN3aXRjaCAoYmFzZVR5cGUpIHsKLSAgICAgICAgICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogewotICAgICAgICAgICAgICAgICAgICBH
QzNEZmxvYXQgdmFsdWVbMTZdID0gezB9OwotICAgICAgICAgICAgICAgICAgICBpZiAobV9pc1Jv
YnVzdG5lc3NFWFRTdXBwb3J0ZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+Z2V0blVuaWZvcm1mdkVYVChvYmplY3RPclplcm8ocHJvZ3JhbSks
IGxvY2F0aW9uLCAxNiAqIHNpemVvZihHQzNEZmxvYXQpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9y
bWZ2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlQ6IHsK
LSAgICAgICAgICAgICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKQotICAgICAgICAgICAgICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldG5Vbmlmb3JtaXZFWFQob2Jq
ZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgNCAqIHNpemVvZihHQzNEaW50KSwgdmFsdWUp
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3Ro
KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkJPT0w6IHsKLSAgICAgICAgICAgICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHsw
fTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKQot
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldG5V
bmlmb3JtaXZFWFQob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgNCAqIHNpemVvZihH
QzNEaW50KSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSks
IGxvY2F0aW9uLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbGVuZ3RoOyBqKysp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhib29sVmFsdWUsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVsw
XSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KKyAgICBHQzNEZW51bSBiYXNlVHlwZTsKKyAgICB1bnNpZ25lZCBsZW5ndGg7Cisg
ICAgc3dpdGNoICh1bmlmb3JtTG9jYXRpb24tPnR5cGUoKSkgeworICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkJPT0w6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJP
T0w7CisgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkJPT0xfVkVDMjoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRl
eHQzRDo6Qk9PTDsKKyAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTF9WRUMzOgorICAgICAgICBiYXNlVHlwZSA9IEdyYXBo
aWNzQ29udGV4dDNEOjpCT09MOworICAgICAgICBsZW5ndGggPSAzOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09MX1ZFQzQ6CisgICAgICAgIGJhc2VUeXBl
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0w7CisgICAgICAgIGxlbmd0aCA9IDQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDoKKyAgICAgICAgYmFzZVR5
cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOworICAgICAgICBsZW5ndGggPSAxOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMjoKKyAgICAgICAg
YmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOworICAgICAgICBsZW5ndGggPSAyOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVDMzoKKyAg
ICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOworICAgICAgICBsZW5ndGgg
PSAzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlRfVkVD
NDoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOworICAgICAgICBs
ZW5ndGggPSA0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
TE9BVDoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7CisgICAg
ICAgIGxlbmd0aCA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkZMT0FUX1ZFQzI6CisgICAgICAgIGJhc2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZM
T0FUOworICAgICAgICBsZW5ndGggPSAyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpGTE9BVF9WRUMzOgorICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpGTE9BVDsKKyAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVRfVkVDNDoKKyAgICAgICAgYmFzZVR5cGUgPSBH
cmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7CisgICAgICAgIGxlbmd0aCA9IDQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUX01BVDI6CisgICAgICAgIGJh
c2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOworICAgICAgICBsZW5ndGggPSA0Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVF9NQVQzOgor
ICAgICAgICBiYXNlVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDsKKyAgICAgICAgbGVu
Z3RoID0gOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxP
QVRfTUFUNDoKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ7Cisg
ICAgICAgIGxlbmd0aCA9IDE2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpTQU1QTEVSXzJEOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRVJf
Q1VCRToKKyAgICAgICAgYmFzZVR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOworICAgICAg
ICBsZW5ndGggPSAxOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICAvLyBD
YW4ndCBoYW5kbGUgdGhpcyB0eXBlCisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmhhbmRsZWQgdHlwZSIp
OworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgfQorICAgIHN3aXRjaCAoYmFz
ZVR5cGUpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogeworICAgICAgICBH
QzNEZmxvYXQgdmFsdWVbMTZdID0gezB9OworICAgICAgICBpZiAobV9pc1JvYnVzdG5lc3NFWFRT
dXBwb3J0ZWQpCisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+Z2V0blVu
aWZvcm1mdkVYVChvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCAxNiAqIHNpemVvZihH
QzNEZmxvYXQpLCB2YWx1ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0VW5pZm9ybWZ2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKKyAg
ICAgICAgaWYgKGxlbmd0aCA9PSAxKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2
YWx1ZVswXSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oRmxvYXQzMkFycmF5OjpjcmVh
dGUodmFsdWUsIGxlbmd0aCkpOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlQ6IHsKKyAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKKyAgICAgICAgaWYgKG1faXNS
b2J1c3RuZXNzRVhUU3VwcG9ydGVkKQorICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCktPmdldG5Vbmlmb3JtaXZFWFQob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwg
NCAqIHNpemVvZihHQzNEaW50KSwgdmFsdWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2
YWx1ZSk7CisgICAgICAgIGlmIChsZW5ndGggPT0gMSkKKyAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8odmFsdWVbMF0pOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEludDMyQXJy
YXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSk7CisgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkJPT0w6IHsKKyAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKKyAgICAgICAg
aWYgKG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKQorICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCktPmdldG5Vbmlmb3JtaXZFWFQob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBs
b2NhdGlvbiwgNCAqIHNpemVvZihHQzNEaW50KSwgdmFsdWUpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxv
Y2F0aW9uLCB2YWx1ZSk7CisgICAgICAgIGlmIChsZW5ndGggPiAxKSB7CisgICAgICAgICAgICBi
b29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAw
OyBqIDwgbGVuZ3RoOyBqKyspCisgICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGlj
X2Nhc3Q8Ym9vbD4odmFsdWVbal0pOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhi
b29sVmFsdWUsIGxlbmd0aCk7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVswXSkpOwogICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKwogICAgIC8vIElmIHdlIGdldCBoZXJlLCBz
b21ldGhpbmcgd2VudCB3cm9uZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFi
b3ZlCiAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFM
VUUsICJnZXRVbmlmb3JtIiwgInVua25vd24gZXJyb3IiKTsKICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CkBAIC0zMTY3LDcgKzMxNDMsMzQgQEAKICAgICBHQzNEaW50IHVuaWZvcm1Mb2NhdGlv
biA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG9iamVjdE9yWmVybyhwcm9ncmFtKSwg
bmFtZSk7CiAgICAgaWYgKHVuaWZvcm1Mb2NhdGlvbiA9PSAtMSkKICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpjcmVhdGUocHJvZ3JhbSwgdW5pZm9y
bUxvY2F0aW9uKTsKKyAgICAKKyAgICBHQzNEaW50IGFjdGl2ZVVuaWZvcm1zID0gMDsKKyAgICBt
X2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29u
dGV4dDNEOjpBQ1RJVkVfVU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CisgICAgZm9yIChHQzNE
aW50IGkgPSAwOyBpIDwgYWN0aXZlVW5pZm9ybXM7IGkrKykgeworICAgICAgICBBY3RpdmVJbmZv
IGluZm87CisgICAgICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9y
WmVybyhwcm9ncmFtKSwgaSwgaW5mbykpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
Ly8gU3RyaXAgIlswXSIgZnJvbSB0aGUgbmFtZSBpZiBpdCdzIGFuIGFycmF5LgorICAgICAgICBp
ZiAoaW5mby5zaXplID4gMSAmJiBpbmZvLm5hbWUuZW5kc1dpdGgoIlswXSIpKQorICAgICAgICAg
ICAgaW5mby5uYW1lID0gaW5mby5uYW1lLmxlZnQoaW5mby5uYW1lLmxlbmd0aCgpIC0gMyk7Cisg
ICAgICAgIC8vIElmIGl0J3MgYW4gYXJyYXksIHdlIG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGVh
Y2ggZWxlbWVudCwgYXBwZW5kaW5nICJbaW5kZXhdIiB0byB0aGUgbmFtZS4KKyAgICAgICAgZm9y
IChHQzNEaW50IGluZGV4ID0gMDsgaW5kZXggPCBpbmZvLnNpemU7ICsraW5kZXgpIHsKKyAgICAg
ICAgICAgIFN0cmluZyB1bmlmb3JtTmFtZSA9IGluZm8ubmFtZTsKKyAgICAgICAgICAgIGlmIChp
bmZvLnNpemUgPiAxKSB7CisgICAgICAgICAgICAgICAgdW5pZm9ybU5hbWUuYXBwZW5kKCdbJyk7
CisgICAgICAgICAgICAgICAgdW5pZm9ybU5hbWUuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGluZGV4
KSk7CisgICAgICAgICAgICAgICAgdW5pZm9ybU5hbWUuYXBwZW5kKCddJyk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoaW5mby5zaXplID4gMSkgeworICAgICAgICAgICAgICAgIGlm
IChuYW1lID09IHVuaWZvcm1OYW1lIHx8IG5hbWUgPT0gaW5mby5uYW1lKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gV2ViR0xVbmlmb3JtTG9jYXRpb246OmNyZWF0ZShwcm9ncmFtLCB1bmlm
b3JtTG9jYXRpb24sIGluZm8udHlwZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIGlmIChuYW1lID09IGluZm8ubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpjcmVhdGUocHJvZ3JhbSwgdW5pZm9ybUxvY2F0aW9uLCBp
bmZvLnR5cGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAw
OwogfQogCiBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRWZXJ0ZXhBdHRy
aWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5jcHAJKHJldmlzaW9uIDE1NzA3NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDE1
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj4gV2ViR0xVbmlmb3JtTG9jYXRpb246OmNyZWF0ZShXZWJHTFByb2dyYW0qIHByb2dyYW0s
IEdDM0RpbnQgbG9jYXRpb24pCitQYXNzUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJH
TFVuaWZvcm1Mb2NhdGlvbjo6Y3JlYXRlKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0MzRGludCBs
b2NhdGlvbiwgR0MzRGVudW0gdHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkdM
VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIGxvY2F0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJHTFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCBsb2NhdGlvbiwgdHlwZSkpOwogfQog
Ci1XZWJHTFVuaWZvcm1Mb2NhdGlvbjo6V2ViR0xVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFt
KiBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9uKQorV2ViR0xVbmlmb3JtTG9jYXRpb246OldlYkdM
VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0MzRGludCBsb2NhdGlvbiwg
R0MzRGVudW0gdHlwZSkKICAgICA6IG1fcHJvZ3JhbShwcm9ncmFtKQogICAgICwgbV9sb2NhdGlv
bihsb2NhdGlvbikKKyAgICAsIG1fdHlwZSh0eXBlKQogewogICAgIEFTU0VSVChtX3Byb2dyYW0p
OwogICAgIG1fbGlua0NvdW50ID0gbV9wcm9ncmFtLT5nZXRMaW5rQ291bnQoKTsKQEAgLTYxLDYg
KzYyLDE0IEBACiAgICAgQVNTRVJUKG1fcHJvZ3JhbS0+Z2V0TGlua0NvdW50KCkgPT0gbV9saW5r
Q291bnQpOwogICAgIHJldHVybiBtX2xvY2F0aW9uOwogfQorICAgIAorR0MzRGVudW0gV2ViR0xV
bmlmb3JtTG9jYXRpb246OnR5cGUoKSBjb25zdAoreworICAgIC8vIElmIHRoZSBwcm9ncmFtIGhh
cyBiZWVuIGxpbmtlZCBhZ2FpbiwgdGhlbiB0aGlzIFVuaWZvcm1Mb2NhdGlvbiBpcyBubworICAg
IC8vIGxvbmdlciB2YWxpZC4KKyAgICBBU1NFUlQobV9wcm9ncmFtLT5nZXRMaW5rQ291bnQoKSA9
PSBtX2xpbmtDb3VudCk7CisgICAgcmV0dXJuIG1fdHlwZTsKK30KIAogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmgJKHJl
dmlzaW9uIDE1NzA3NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE5ICszOCwyMiBAQAogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkdMVW5pZm9ybUxvY2F0aW9uKCkgeyB9CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gY3JlYXRlKFdlYkdMUHJvZ3JhbSosIEdDM0Rp
bnQgbG9jYXRpb24pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9u
PiBjcmVhdGUoV2ViR0xQcm9ncmFtKiwgR0MzRGludCBsb2NhdGlvbiwgR0MzRGVudW0gdHlwZSk7
CiAKICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0oKSBjb25zdDsKIAogICAgIEdDM0RpbnQgbG9j
YXRpb24oKSBjb25zdDsKKyAgICAKKyAgICBHQzNEZW51bSB0eXBlKCkgY29uc3Q7CiAKIHByb3Rl
Y3RlZDoKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qLCBHQzNEaW50IGxv
Y2F0aW9uKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qLCBHQzNEaW50
IGxvY2F0aW9uLCBHQzNEZW51bSB0eXBlKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViR0xQ
cm9ncmFtPiBtX3Byb2dyYW07CiAgICAgR0MzRGludCBtX2xvY2F0aW9uOwogICAgIHVuc2lnbmVk
IG1fbGlua0NvdW50OworICAgIEdDM0RlbnVtIG1fdHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUK
</data>
<flag name="review"
          id="236359"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="236364"
          type_id="3"
          status="-"
          setter="roger_fong"
    />
          </attachment>
      

    </bug>

</bugzilla>