// Generated 2014-12-09
// Automatically generated.  Do not edit.
#include "net/instaweb/rewriter/public/decision_tree.h"
#include "net/instaweb/rewriter/public/mobilize_decision_trees.h"
#include "pagespeed/kernel/base/basictypes.h"

namespace net_instaweb {

const net_instaweb::DecisionTree::Node kHeaderTree[] = {
  {kPreviousTagPercent, 8.095, -1.0, &kHeaderTree[1], &kHeaderTree[2]},
  {kParentRoleIs + MobileRole::kNavigational, 0.5, -1.0, &kHeaderTree[3], &kHeaderTree[4]},
  {kHasAttrString + kHeadAttr, 0.5, -1.0, &kHeaderTree[5], &kHeaderTree[6]},
  {kContainedNonBlankPercent, 53.065, -1.0, &kHeaderTree[7], &kHeaderTree[8]},
  {kContainedAContentLocalPercent, 80.035, -1.0, &kHeaderTree[9], &kHeaderTree[10]},
  {kPreviousTagPercent, 12.255, -1.0, &kHeaderTree[11], &kHeaderTree[12]},
  {kRelevantTagCount + kH1Tag, 0.5, -1.0, &kHeaderTree[13], &kHeaderTree[14]},
  {kHasAttrString + kNavAttr, 0.5, -1.0, &kHeaderTree[15], &kHeaderTree[16]},
  {kHasAttrString + kHeadAttr, 0.5, -1.0, &kHeaderTree[17], &kHeaderTree[18]},
  {kHasAttrString + kNavAttr, 0.5, -1.0, &kHeaderTree[19], &kHeaderTree[20]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedAContentBytes, 3.5, -1.0, &kHeaderTree[21], &kHeaderTree[22]},
  {kHasAttrString + kSearchAttr, 0.5, -1.0, &kHeaderTree[23], &kHeaderTree[24]},
  {kPreviousTagPercent, 42.525, -1.0, &kHeaderTree[25], &kHeaderTree[26]},
  {-1, -1.0, 1.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kContent, 0.5, -1.0, &kHeaderTree[27], &kHeaderTree[28]},
  {kPreviousTagCount, 2.5, -1.0, &kHeaderTree[29], &kHeaderTree[30]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.923076923077, NULL, NULL},
  {kHasAttrString + kMenuAttr, 0.5, -1.0, &kHeaderTree[31], &kHeaderTree[32]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousNonBlankBytes, 126.5, -1.0, &kHeaderTree[33], &kHeaderTree[34]},
  {kContainedAImgLocalPercent, 99.23, -1.0, &kHeaderTree[35], &kHeaderTree[36]},
  {kPreviousTagCount, 35.5, -1.0, &kHeaderTree[37], &kHeaderTree[38]},
  {kPreviousTagCount, 26.5, -1.0, &kHeaderTree[39], &kHeaderTree[40]},
  {kContainedContentBytes, 4.5, -1.0, &kHeaderTree[41], &kHeaderTree[42]},
  {kRelevantTagCount + kH2Tag, 0.5, -1.0, &kHeaderTree[43], &kHeaderTree[44]},
  {kContainedTagDepth, 2.5, -1.0, &kHeaderTree[45], &kHeaderTree[46]},
  {kHasAttrString + kHeadAttr, 0.5, -1.0, &kHeaderTree[47], &kHeaderTree[48]},
  {kRelevantTagPercent + kSpanTag, 43.5, -1.0, &kHeaderTree[49], &kHeaderTree[50]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousContentBytes, 127.5, -1.0, &kHeaderTree[51], &kHeaderTree[52]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kContent, 0.5, -1.0, &kHeaderTree[53], &kHeaderTree[54]},
  {kParentRoleIs + MobileRole::kContent, 0.5, -1.0, &kHeaderTree[55], &kHeaderTree[56]},
  {kRelevantTagCount + kLiTag, 0.5, -1.0, &kHeaderTree[57], &kHeaderTree[58]},
  {kContainedNonBlankBytes, 160.5, -1.0, &kHeaderTree[59], &kHeaderTree[60]},
  {kHasAttrString + kLogoAttr, 0.5, -1.0, &kHeaderTree[61], &kHeaderTree[62]},
  {kRelevantTagPercent + kH1Tag, 1.5, -1.0, &kHeaderTree[63], &kHeaderTree[64]},
  {-1, -1.0, 1.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kContent, 0.5, -1.0, &kHeaderTree[65], &kHeaderTree[66]},
  {-1, -1.0, 1.0, NULL, NULL},
  {kContainedTagPercent, 0.81, -1.0, &kHeaderTree[67], &kHeaderTree[68]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedAContentLocalPercent, 31.905, -1.0, &kHeaderTree[69], &kHeaderTree[70]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedAContentLocalPercent, 98.14, -1.0, &kHeaderTree[71], &kHeaderTree[72]},
  {kPreviousNonBlankBytes, 95.5, -1.0, &kHeaderTree[73], &kHeaderTree[74]},
  {-1, -1.0, 0.837837837838, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.586206896552, NULL, NULL},
  {kContainedNonAContentBytes, 60.5, -1.0, &kHeaderTree[75], &kHeaderTree[76]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedNonAImgTag, 0.5, -1.0, &kHeaderTree[77], &kHeaderTree[78]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousTagCount, 49.5, -1.0, &kHeaderTree[79], &kHeaderTree[80]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousContentBytes, 90.5, -1.0, &kHeaderTree[81], &kHeaderTree[82]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousContentBytes, 248.0, -1.0, &kHeaderTree[83], &kHeaderTree[84]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedContentBytes, 90.5, -1.0, &kHeaderTree[85], &kHeaderTree[86]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousTagPercent, 27.595, -1.0, &kHeaderTree[87], &kHeaderTree[88]},
  {kContainedTagCount, 3.5, -1.0, &kHeaderTree[89], &kHeaderTree[90]},
  {kPreviousTagPercent, 37.785, -1.0, &kHeaderTree[91], &kHeaderTree[92]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kNavigational, 0.5, -1.0, &kHeaderTree[93], &kHeaderTree[94]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.967741935484, NULL, NULL},
  {kContainedNonAContentBytes, 141.5, -1.0, &kHeaderTree[95], &kHeaderTree[96]},
  {kRelevantTagCount + kImgTag, 0.5, -1.0, &kHeaderTree[97], &kHeaderTree[98]},
  {kContainedNonBlankBytes, 85.5, -1.0, &kHeaderTree[99], &kHeaderTree[100]},
  {kPreviousTagCount, 62.5, -1.0, &kHeaderTree[101], &kHeaderTree[102]},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kElementTagDepth, 2.5, -1.0, &kHeaderTree[103], &kHeaderTree[104]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousTagPercent, 8.995, -1.0, &kHeaderTree[105], &kHeaderTree[106]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedContentBytes, 101.5, -1.0, &kHeaderTree[107], &kHeaderTree[108]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedContentBytes, 84.0, -1.0, &kHeaderTree[109], &kHeaderTree[110]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kSpanTag, 32.5, -1.0, &kHeaderTree[111], &kHeaderTree[112]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kH2Tag, 0.5, -1.0, &kHeaderTree[113], &kHeaderTree[114]},
  {kPreviousTagCount, 224.0, -1.0, &kHeaderTree[115], &kHeaderTree[116]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kInputTag, 37.5, -1.0, &kHeaderTree[117], &kHeaderTree[118]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousTagPercent, 15.75, -1.0, &kHeaderTree[119], &kHeaderTree[120]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kHasAttrString + kMenuAttr, 0.5, -1.0, &kHeaderTree[121], &kHeaderTree[122]},
  {kPreviousTagPercent, 3.645, -1.0, &kHeaderTree[123], &kHeaderTree[124]},
  {kPreviousTagCount, 2.5, -1.0, &kHeaderTree[125], &kHeaderTree[126]},
  {kRelevantTagCount + kDivTag, 1.5, -1.0, &kHeaderTree[127], &kHeaderTree[128]},
  {kPreviousNonBlankPercent, 0.705, -1.0, &kHeaderTree[129], &kHeaderTree[130]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedNonAContentBytes, 93.0, -1.0, &kHeaderTree[131], &kHeaderTree[132]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kNavigational, 0.5, -1.0, &kHeaderTree[133], &kHeaderTree[134]},
  {-1, -1.0, 0.666666666667, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedNonAContentBytes, 9.5, -1.0, &kHeaderTree[135], &kHeaderTree[136]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.795454545455, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kElementTagDepth, 6.5, -1.0, &kHeaderTree[137], &kHeaderTree[138]},
  {kRelevantTagPercent + kH6Tag, 2.5, -1.0, &kHeaderTree[139], &kHeaderTree[140]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedNonBlankBytes, 35.5, -1.0, &kHeaderTree[141], &kHeaderTree[142]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kParentRoleIs + MobileRole::kNavigational, 0.5, -1.0, &kHeaderTree[143], &kHeaderTree[144]},
  {kPreviousNonBlankBytes, 117.0, -1.0, &kHeaderTree[145], &kHeaderTree[146]},
  {kRelevantTagPercent + kH2Tag, 2.0, -1.0, &kHeaderTree[147], &kHeaderTree[148]},
  {kPreviousTagCount, 69.5, -1.0, &kHeaderTree[149], &kHeaderTree[150]},
  {kContainedTagDepth, 7.5, -1.0, &kHeaderTree[151], &kHeaderTree[152]},
  {kContainedContentBytes, 161.0, -1.0, &kHeaderTree[153], &kHeaderTree[154]},
  {kRelevantTagPercent + kPTag, 2.0, -1.0, &kHeaderTree[155], &kHeaderTree[156]},
  {kRelevantTagCount + kDivTag, 1.5, -1.0, &kHeaderTree[157], &kHeaderTree[158]},
  {kRelevantTagCount + kLiTag, 0.5, -1.0, &kHeaderTree[159], &kHeaderTree[160]},
  {kRelevantTagCount + kATag, 3.5, -1.0, &kHeaderTree[161], &kHeaderTree[162]},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.829268292683, NULL, NULL},
  {kRelevantTagCount + kDivTag, 1.5, -1.0, &kHeaderTree[163], &kHeaderTree[164]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {kContainedTagPercent, 1.125, -1.0, &kHeaderTree[165], &kHeaderTree[166]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.892857142857, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.605263157895, NULL, NULL},
  {kParentRoleIs + MobileRole::kContent, 0.5, -1.0, &kHeaderTree[167], &kHeaderTree[168]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kH1Tag, 18.5, -1.0, &kHeaderTree[169], &kHeaderTree[170]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.828571428571, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kDivTag, 10.5, -1.0, &kHeaderTree[171], &kHeaderTree[172]},
  {kContainedAContentLocalPercent, 42.345, -1.0, &kHeaderTree[173], &kHeaderTree[174]},
  {kContainedAContentLocalPercent, 90.305, -1.0, &kHeaderTree[175], &kHeaderTree[176]},
  {kPreviousContentBytes, 258.0, -1.0, &kHeaderTree[177], &kHeaderTree[178]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.653846153846, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kPTag, 44.5, -1.0, &kHeaderTree[179], &kHeaderTree[180]},
  {kContainedTagDepth, 9.5, -1.0, &kHeaderTree[181], &kHeaderTree[182]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kATag, 6.5, -1.0, &kHeaderTree[183], &kHeaderTree[184]},
  {kRelevantTagPercent + kDivTag, 11.5, -1.0, &kHeaderTree[185], &kHeaderTree[186]},
  {kContainedTagRelativeDepth, 1.5, -1.0, &kHeaderTree[187], &kHeaderTree[188]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.93023255814, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.571428571429, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.703703703704, NULL, NULL},
  {kPreviousTagPercent, 50.585, -1.0, &kHeaderTree[189], &kHeaderTree[190]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kContainedNonBlankPercent, 0.995, -1.0, &kHeaderTree[191], &kHeaderTree[192]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.583333333333, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.866666666667, NULL, NULL},
  {kContainedTagDepth, 3.5, -1.0, &kHeaderTree[193], &kHeaderTree[194]},
  {kRelevantTagCount + kDivTag, 2.5, -1.0, &kHeaderTree[195], &kHeaderTree[196]},
  {-1, -1.0, 0.666666666667, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.741935483871, NULL, NULL},
  {-1, -1.0, 0.6, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kATag, 14.5, -1.0, &kHeaderTree[197], &kHeaderTree[198]},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kPreviousTagCount, 14.5, -1.0, &kHeaderTree[199], &kHeaderTree[200]},
  {kParentRoleIs + MobileRole::kNavigational, 0.5, -1.0, &kHeaderTree[201], &kHeaderTree[202]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.636363636364, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kElementTagDepth, 2.5, -1.0, &kHeaderTree[203], &kHeaderTree[204]},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.90243902439, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {kContainedContentBytes, 21.5, -1.0, &kHeaderTree[205], &kHeaderTree[206]},
  {kContainedAContentLocalPercent, 67.595, -1.0, &kHeaderTree[207], &kHeaderTree[208]},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kDivTag, 2.5, -1.0, &kHeaderTree[209], &kHeaderTree[210]},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.615384615385, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kElementTagDepth, 6.5, -1.0, &kHeaderTree[211], &kHeaderTree[212]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 1.0, NULL, NULL},
  {-1, -1.0, 0.0, NULL, NULL},
  {kRelevantTagPercent + kSpanTag, 3.5, -1.0, &kHeaderTree[213], &kHeaderTree[214]},
  {-1, -1.0, 0.0, NULL, NULL},
  {-1, -1.0, 0.615384615385, NULL, NULL},
};
const double kHeaderTreeThreshold = 0.571428571429;
const int kHeaderTreeSize = arraysize(kHeaderTree);

}  // namespace net_instaweb
