godoc/redirect: improve Rietveld CL heuristic
Go's CL numbers as assigned by Gerrit have started to collide with the
lower numbers in the sparse set of CL numbers as returned by our old
code review system (Rietveld).
The old heuristic no longer works now that Gerrit CL numbers have
reached 150000.
Instead, include a map of the low Rietveld CL numbers where we might
overlap and bump the threshold heuristic up.
Updates golang/go#28836
Change-Id: Ice719ab807ce3922b885a800ac873cdbf165a8f7
Reviewed-on: https://go-review.googlesource.com/c/150057
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/godoc/redirect/redirect.go b/godoc/redirect/redirect.go
index 3bec533..8208518 100644
--- a/godoc/redirect/redirect.go
+++ b/godoc/redirect/redirect.go
@@ -115,7 +115,7 @@
"/tour": "http://tour.golang.org",
"/wiki": "https://github.com/golang/go/wiki",
- "/doc/articles/c_go_cgo.html": "/blog/c-go-cgo",
+ "/doc/articles/c_go_cgo.html": "/blog/c-go-cgo",
"/doc/articles/concurrency_patterns.html": "/blog/go-concurrency-patterns-timing-out-and",
"/doc/articles/defer_panic_recover.html": "/blog/defer-panic-and-recover",
"/doc/articles/error_handling.html": "/blog/error-handling-and-go",
@@ -191,9 +191,13 @@
return
}
target := ""
- // the first CL in rietveld is about 152046, so only treat the id as
- // a rietveld CL if it is larger than 150000.
- if n, err := strconv.Atoi(id); err == nil && n > 150000 {
+
+ if n, err := strconv.Atoi(id); err == nil && isRietveldCL(n) {
+ // TODO: Issue 28836: if this Rietveld CL happens to
+ // also be a Gerrit CL, render a disambiguation HTML
+ // page with two links instead. We'll need to make an
+ // RPC (to maintner?) to figure that out. For now just
+ // redirect to rietveld.
target = "https://codereview.appspot.com/" + id
} else {
target = "https://go-review.googlesource.com/" + id
diff --git a/godoc/redirect/redirect_test.go b/godoc/redirect/redirect_test.go
index a242f4f..804bfb0 100644
--- a/godoc/redirect/redirect_test.go
+++ b/godoc/redirect/redirect_test.go
@@ -62,6 +62,15 @@
"/cl/1/": {302, "https://go-review.googlesource.com/1"},
"/cl/267120043": {302, "https://codereview.appspot.com/267120043"},
"/cl/267120043/": {302, "https://codereview.appspot.com/267120043"},
+
+ // Verify that we're using the Rietveld CL table:
+ "/cl/152046": {302, "https://codereview.appspot.com/152046"},
+ "/cl/152047": {302, "https://go-review.googlesource.com/152047"},
+ "/cl/152048": {302, "https://codereview.appspot.com/152048"},
+
+ // And verify we're using the the "bigEnoughAssumeRietveld" value:
+ "/cl/299999": {302, "https://go-review.googlesource.com/299999"},
+ "/cl/300000": {302, "https://codereview.appspot.com/300000"},
}
mux := http.NewServeMux()
diff --git a/godoc/redirect/rietveld.go b/godoc/redirect/rietveld.go
new file mode 100644
index 0000000..81b1094
--- /dev/null
+++ b/godoc/redirect/rietveld.go
@@ -0,0 +1,1093 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package redirect
+
+// bigEnoughAssumeRietveld is the value where CLs equal or great are
+// assumed to be on Rietveld. By including this threshold we shrink
+// the size of the table below. When Go amasses 150,000 more CLs, we'll
+// need to bump this number and regenerate the list below.
+const bigEnoughAssumeRietveld = 300000
+
+// isRietveldCL reports whether cl was a Rietveld CL number.
+func isRietveldCL(cl int) bool {
+ return cl >= bigEnoughAssumeRietveld || lowRietveldCL[cl]
+}
+
+// lowRietveldCLs are the old CL numbers assigned by Rietveld code
+// review system as used by Go prior to Gerrit which are less than
+// bigEnoughAssumeRietveld.
+//
+// This list of numbers is registered with the /cl/NNNN redirect
+// handler to disambiguate which code review system a particular
+// number corresponds to. In some rare cases there may be duplicates,
+// in which case we might render an HTML choice for the user.
+//
+// To re-generate this list, run:
+//
+// $ cd $GOROOT
+// $ git log 7d7c6a9..94151eb | grep "^ https://golang.org/cl/" | perl -ne 's,^\s+https://golang.org/cl/(\d+).*$,$1,; chomp; print "$_: true,\n" if $_ < 300000' | sort -n | uniq
+//
+// Note that we ignore the x/* repos because we didn't start using
+// "subrepos" until the Rietveld CLs numbers were already 4,000,000+,
+// well above bigEnoughAssumeRietveld.
+var lowRietveldCL = map[int]bool{
+ 152046: true,
+ 152048: true,
+ 152049: true,
+ 152050: true,
+ 152051: true,
+ 152052: true,
+ 152055: true,
+ 152056: true,
+ 152057: true,
+ 152072: true,
+ 152073: true,
+ 152075: true,
+ 152076: true,
+ 152077: true,
+ 152078: true,
+ 152079: true,
+ 152080: true,
+ 152082: true,
+ 152084: true,
+ 152085: true,
+ 152086: true,
+ 152088: true,
+ 152089: true,
+ 152091: true,
+ 152098: true,
+ 152101: true,
+ 152102: true,
+ 152105: true,
+ 152106: true,
+ 152107: true,
+ 152108: true,
+ 152109: true,
+ 152110: true,
+ 152114: true,
+ 152117: true,
+ 152118: true,
+ 152120: true,
+ 152123: true,
+ 152124: true,
+ 152128: true,
+ 152130: true,
+ 152131: true,
+ 152138: true,
+ 152141: true,
+ 152142: true,
+ 153048: true,
+ 153049: true,
+ 153050: true,
+ 153051: true,
+ 153055: true,
+ 153056: true,
+ 153057: true,
+ 154043: true,
+ 154044: true,
+ 154045: true,
+ 154049: true,
+ 154055: true,
+ 154057: true,
+ 154058: true,
+ 154059: true,
+ 154061: true,
+ 154064: true,
+ 154065: true,
+ 154067: true,
+ 154068: true,
+ 154069: true,
+ 154071: true,
+ 154072: true,
+ 154073: true,
+ 154076: true,
+ 154079: true,
+ 154096: true,
+ 154097: true,
+ 154099: true,
+ 154100: true,
+ 154101: true,
+ 154102: true,
+ 154108: true,
+ 154118: true,
+ 154121: true,
+ 154122: true,
+ 154123: true,
+ 154125: true,
+ 154126: true,
+ 154128: true,
+ 154136: true,
+ 154138: true,
+ 154139: true,
+ 154140: true,
+ 154141: true,
+ 154142: true,
+ 154143: true,
+ 154144: true,
+ 154145: true,
+ 154146: true,
+ 154152: true,
+ 154153: true,
+ 154156: true,
+ 154159: true,
+ 154161: true,
+ 154166: true,
+ 154167: true,
+ 154169: true,
+ 154171: true,
+ 154172: true,
+ 154173: true,
+ 154174: true,
+ 154175: true,
+ 154176: true,
+ 154177: true,
+ 154178: true,
+ 154179: true,
+ 154180: true,
+ 155041: true,
+ 155042: true,
+ 155045: true,
+ 155047: true,
+ 155048: true,
+ 155049: true,
+ 155050: true,
+ 155054: true,
+ 155055: true,
+ 155056: true,
+ 155057: true,
+ 155058: true,
+ 155059: true,
+ 155061: true,
+ 155062: true,
+ 155063: true,
+ 155065: true,
+ 155067: true,
+ 155069: true,
+ 155072: true,
+ 155074: true,
+ 155075: true,
+ 155077: true,
+ 155078: true,
+ 155079: true,
+ 156041: true,
+ 156044: true,
+ 156045: true,
+ 156046: true,
+ 156047: true,
+ 156051: true,
+ 156052: true,
+ 156054: true,
+ 156055: true,
+ 156056: true,
+ 156058: true,
+ 156059: true,
+ 156060: true,
+ 156061: true,
+ 156062: true,
+ 156063: true,
+ 156066: true,
+ 156067: true,
+ 156070: true,
+ 156071: true,
+ 156073: true,
+ 156075: true,
+ 156077: true,
+ 156079: true,
+ 156080: true,
+ 156081: true,
+ 156083: true,
+ 156084: true,
+ 156085: true,
+ 156086: true,
+ 156089: true,
+ 156091: true,
+ 156092: true,
+ 156093: true,
+ 156094: true,
+ 156097: true,
+ 156099: true,
+ 156100: true,
+ 156102: true,
+ 156103: true,
+ 156104: true,
+ 156106: true,
+ 156107: true,
+ 156108: true,
+ 156109: true,
+ 156110: true,
+ 156113: true,
+ 156115: true,
+ 156116: true,
+ 157041: true,
+ 157042: true,
+ 157043: true,
+ 157044: true,
+ 157046: true,
+ 157053: true,
+ 157055: true,
+ 157056: true,
+ 157058: true,
+ 157060: true,
+ 157061: true,
+ 157062: true,
+ 157065: true,
+ 157066: true,
+ 157067: true,
+ 157068: true,
+ 157069: true,
+ 157071: true,
+ 157072: true,
+ 157073: true,
+ 157074: true,
+ 157075: true,
+ 157076: true,
+ 157077: true,
+ 157082: true,
+ 157084: true,
+ 157085: true,
+ 157087: true,
+ 157088: true,
+ 157091: true,
+ 157095: true,
+ 157096: true,
+ 157099: true,
+ 157100: true,
+ 157101: true,
+ 157102: true,
+ 157103: true,
+ 157104: true,
+ 157106: true,
+ 157110: true,
+ 157111: true,
+ 157112: true,
+ 157114: true,
+ 157116: true,
+ 157119: true,
+ 157140: true,
+ 157142: true,
+ 157143: true,
+ 157144: true,
+ 157146: true,
+ 157147: true,
+ 157149: true,
+ 157151: true,
+ 157152: true,
+ 157153: true,
+ 157154: true,
+ 157156: true,
+ 157157: true,
+ 157158: true,
+ 157159: true,
+ 157160: true,
+ 157162: true,
+ 157166: true,
+ 157167: true,
+ 157168: true,
+ 157170: true,
+ 158041: true,
+ 159044: true,
+ 159049: true,
+ 159050: true,
+ 159051: true,
+ 160043: true,
+ 160044: true,
+ 160045: true,
+ 160046: true,
+ 160047: true,
+ 160054: true,
+ 160056: true,
+ 160057: true,
+ 160059: true,
+ 160060: true,
+ 160061: true,
+ 160064: true,
+ 160065: true,
+ 160069: true,
+ 160070: true,
+ 161049: true,
+ 161050: true,
+ 161056: true,
+ 161058: true,
+ 161060: true,
+ 161061: true,
+ 161069: true,
+ 161070: true,
+ 161073: true,
+ 161075: true,
+ 162041: true,
+ 162044: true,
+ 162046: true,
+ 162053: true,
+ 162054: true,
+ 162055: true,
+ 162056: true,
+ 162057: true,
+ 162058: true,
+ 162059: true,
+ 162061: true,
+ 162062: true,
+ 163042: true,
+ 163044: true,
+ 163049: true,
+ 163050: true,
+ 163051: true,
+ 163052: true,
+ 163053: true,
+ 163055: true,
+ 163058: true,
+ 163061: true,
+ 163062: true,
+ 163064: true,
+ 163067: true,
+ 163068: true,
+ 163069: true,
+ 163070: true,
+ 163071: true,
+ 163072: true,
+ 163082: true,
+ 163083: true,
+ 163085: true,
+ 163088: true,
+ 163091: true,
+ 163092: true,
+ 163097: true,
+ 163098: true,
+ 164043: true,
+ 164047: true,
+ 164049: true,
+ 164052: true,
+ 164053: true,
+ 164056: true,
+ 164059: true,
+ 164060: true,
+ 164062: true,
+ 164068: true,
+ 164069: true,
+ 164071: true,
+ 164073: true,
+ 164074: true,
+ 164075: true,
+ 164078: true,
+ 164079: true,
+ 164081: true,
+ 164082: true,
+ 164083: true,
+ 164085: true,
+ 164086: true,
+ 164088: true,
+ 164090: true,
+ 164091: true,
+ 164092: true,
+ 164093: true,
+ 164094: true,
+ 164095: true,
+ 165042: true,
+ 165044: true,
+ 165045: true,
+ 165048: true,
+ 165049: true,
+ 165050: true,
+ 165051: true,
+ 165055: true,
+ 165057: true,
+ 165058: true,
+ 165059: true,
+ 165061: true,
+ 165062: true,
+ 165063: true,
+ 165064: true,
+ 165065: true,
+ 165068: true,
+ 165070: true,
+ 165076: true,
+ 165078: true,
+ 165080: true,
+ 165083: true,
+ 165086: true,
+ 165097: true,
+ 165100: true,
+ 165101: true,
+ 166041: true,
+ 166043: true,
+ 166044: true,
+ 166047: true,
+ 166049: true,
+ 166052: true,
+ 166053: true,
+ 166055: true,
+ 166058: true,
+ 166059: true,
+ 166060: true,
+ 166064: true,
+ 166066: true,
+ 166067: true,
+ 166068: true,
+ 166070: true,
+ 166071: true,
+ 166072: true,
+ 166073: true,
+ 166074: true,
+ 166076: true,
+ 166077: true,
+ 166078: true,
+ 166080: true,
+ 167043: true,
+ 167044: true,
+ 167047: true,
+ 167050: true,
+ 167055: true,
+ 167057: true,
+ 167058: true,
+ 168041: true,
+ 168045: true,
+ 170042: true,
+ 170043: true,
+ 170044: true,
+ 170046: true,
+ 170047: true,
+ 170048: true,
+ 170049: true,
+ 171044: true,
+ 171046: true,
+ 171047: true,
+ 171048: true,
+ 171051: true,
+ 172041: true,
+ 172042: true,
+ 172043: true,
+ 172045: true,
+ 172049: true,
+ 173041: true,
+ 173044: true,
+ 173045: true,
+ 174042: true,
+ 174047: true,
+ 174048: true,
+ 174050: true,
+ 174051: true,
+ 174052: true,
+ 174053: true,
+ 174063: true,
+ 174064: true,
+ 174072: true,
+ 174076: true,
+ 174077: true,
+ 174078: true,
+ 174082: true,
+ 174083: true,
+ 174087: true,
+ 175045: true,
+ 175046: true,
+ 175047: true,
+ 175048: true,
+ 176056: true,
+ 176057: true,
+ 176058: true,
+ 176061: true,
+ 176062: true,
+ 176063: true,
+ 176064: true,
+ 176066: true,
+ 176067: true,
+ 176070: true,
+ 176071: true,
+ 176076: true,
+ 178043: true,
+ 178044: true,
+ 178046: true,
+ 178048: true,
+ 179047: true,
+ 179055: true,
+ 179061: true,
+ 179062: true,
+ 179063: true,
+ 179067: true,
+ 179069: true,
+ 179070: true,
+ 179072: true,
+ 179079: true,
+ 179088: true,
+ 179095: true,
+ 179096: true,
+ 179097: true,
+ 179099: true,
+ 179105: true,
+ 179106: true,
+ 179108: true,
+ 179118: true,
+ 179120: true,
+ 179125: true,
+ 179126: true,
+ 179128: true,
+ 179129: true,
+ 179130: true,
+ 180044: true,
+ 180045: true,
+ 180046: true,
+ 180047: true,
+ 180048: true,
+ 180049: true,
+ 180050: true,
+ 180052: true,
+ 180053: true,
+ 180054: true,
+ 180055: true,
+ 180056: true,
+ 180057: true,
+ 180059: true,
+ 180061: true,
+ 180064: true,
+ 180065: true,
+ 180068: true,
+ 180069: true,
+ 180070: true,
+ 180074: true,
+ 180075: true,
+ 180081: true,
+ 180082: true,
+ 180085: true,
+ 180092: true,
+ 180099: true,
+ 180105: true,
+ 180108: true,
+ 180112: true,
+ 180118: true,
+ 181041: true,
+ 181043: true,
+ 181044: true,
+ 181045: true,
+ 181049: true,
+ 181050: true,
+ 181055: true,
+ 181057: true,
+ 181058: true,
+ 181059: true,
+ 181063: true,
+ 181071: true,
+ 181073: true,
+ 181075: true,
+ 181077: true,
+ 181080: true,
+ 181083: true,
+ 181084: true,
+ 181085: true,
+ 181086: true,
+ 181087: true,
+ 181089: true,
+ 181097: true,
+ 181099: true,
+ 181102: true,
+ 181111: true,
+ 181130: true,
+ 181135: true,
+ 181137: true,
+ 181138: true,
+ 181139: true,
+ 181151: true,
+ 181152: true,
+ 181153: true,
+ 181155: true,
+ 181156: true,
+ 181157: true,
+ 181158: true,
+ 181160: true,
+ 181161: true,
+ 181163: true,
+ 181164: true,
+ 181171: true,
+ 181179: true,
+ 181183: true,
+ 181184: true,
+ 181186: true,
+ 182041: true,
+ 182043: true,
+ 182044: true,
+ 183042: true,
+ 183043: true,
+ 183044: true,
+ 183047: true,
+ 183049: true,
+ 183065: true,
+ 183066: true,
+ 183073: true,
+ 183074: true,
+ 183075: true,
+ 183083: true,
+ 183084: true,
+ 183087: true,
+ 183088: true,
+ 183090: true,
+ 183095: true,
+ 183104: true,
+ 183107: true,
+ 183109: true,
+ 183111: true,
+ 183112: true,
+ 183113: true,
+ 183116: true,
+ 183123: true,
+ 183124: true,
+ 183125: true,
+ 183126: true,
+ 183132: true,
+ 183133: true,
+ 183135: true,
+ 183136: true,
+ 183137: true,
+ 183138: true,
+ 183139: true,
+ 183140: true,
+ 183141: true,
+ 183142: true,
+ 183153: true,
+ 183155: true,
+ 183156: true,
+ 183157: true,
+ 183160: true,
+ 184043: true,
+ 184055: true,
+ 184058: true,
+ 184059: true,
+ 184068: true,
+ 184069: true,
+ 184079: true,
+ 184080: true,
+ 184081: true,
+ 185043: true,
+ 185045: true,
+ 186042: true,
+ 186043: true,
+ 186073: true,
+ 186076: true,
+ 186077: true,
+ 186078: true,
+ 186079: true,
+ 186081: true,
+ 186095: true,
+ 186108: true,
+ 186113: true,
+ 186115: true,
+ 186116: true,
+ 186118: true,
+ 186119: true,
+ 186132: true,
+ 186137: true,
+ 186138: true,
+ 186139: true,
+ 186143: true,
+ 186144: true,
+ 186145: true,
+ 186146: true,
+ 186147: true,
+ 186148: true,
+ 186159: true,
+ 186160: true,
+ 186161: true,
+ 186165: true,
+ 186169: true,
+ 186173: true,
+ 186180: true,
+ 186210: true,
+ 186211: true,
+ 186212: true,
+ 186213: true,
+ 186214: true,
+ 186215: true,
+ 186216: true,
+ 186228: true,
+ 186229: true,
+ 186230: true,
+ 186232: true,
+ 186234: true,
+ 186255: true,
+ 186263: true,
+ 186276: true,
+ 186279: true,
+ 186282: true,
+ 186283: true,
+ 188043: true,
+ 189042: true,
+ 189057: true,
+ 189059: true,
+ 189062: true,
+ 189078: true,
+ 189080: true,
+ 189083: true,
+ 189088: true,
+ 189093: true,
+ 189095: true,
+ 189096: true,
+ 189098: true,
+ 189100: true,
+ 190041: true,
+ 190042: true,
+ 190043: true,
+ 190044: true,
+ 190059: true,
+ 190062: true,
+ 190068: true,
+ 190074: true,
+ 190076: true,
+ 190077: true,
+ 190079: true,
+ 190085: true,
+ 190088: true,
+ 190103: true,
+ 190104: true,
+ 193055: true,
+ 193066: true,
+ 193067: true,
+ 193070: true,
+ 193075: true,
+ 193079: true,
+ 193080: true,
+ 193081: true,
+ 193091: true,
+ 193092: true,
+ 193095: true,
+ 193101: true,
+ 193104: true,
+ 194043: true,
+ 194045: true,
+ 194046: true,
+ 194050: true,
+ 194051: true,
+ 194052: true,
+ 194053: true,
+ 194064: true,
+ 194066: true,
+ 194069: true,
+ 194071: true,
+ 194072: true,
+ 194073: true,
+ 194074: true,
+ 194076: true,
+ 194077: true,
+ 194078: true,
+ 194082: true,
+ 194084: true,
+ 194085: true,
+ 194090: true,
+ 194091: true,
+ 194092: true,
+ 194094: true,
+ 194097: true,
+ 194098: true,
+ 194099: true,
+ 194100: true,
+ 194114: true,
+ 194116: true,
+ 194118: true,
+ 194119: true,
+ 194120: true,
+ 194121: true,
+ 194122: true,
+ 194126: true,
+ 194129: true,
+ 194131: true,
+ 194132: true,
+ 194133: true,
+ 194134: true,
+ 194146: true,
+ 194151: true,
+ 194156: true,
+ 194157: true,
+ 194159: true,
+ 194161: true,
+ 194165: true,
+ 195041: true,
+ 195044: true,
+ 195050: true,
+ 195051: true,
+ 195052: true,
+ 195068: true,
+ 195075: true,
+ 195076: true,
+ 195079: true,
+ 195080: true,
+ 195081: true,
+ 196042: true,
+ 196044: true,
+ 196050: true,
+ 196051: true,
+ 196055: true,
+ 196056: true,
+ 196061: true,
+ 196063: true,
+ 196065: true,
+ 196070: true,
+ 196071: true,
+ 196075: true,
+ 196077: true,
+ 196079: true,
+ 196087: true,
+ 196088: true,
+ 196090: true,
+ 196091: true,
+ 197041: true,
+ 197042: true,
+ 197043: true,
+ 197044: true,
+ 198044: true,
+ 198045: true,
+ 198046: true,
+ 198048: true,
+ 198049: true,
+ 198050: true,
+ 198053: true,
+ 198057: true,
+ 198058: true,
+ 198066: true,
+ 198071: true,
+ 198074: true,
+ 198081: true,
+ 198084: true,
+ 198085: true,
+ 198102: true,
+ 199042: true,
+ 199044: true,
+ 199045: true,
+ 199046: true,
+ 199047: true,
+ 199052: true,
+ 199054: true,
+ 199057: true,
+ 199066: true,
+ 199070: true,
+ 199082: true,
+ 199091: true,
+ 199094: true,
+ 199096: true,
+ 201041: true,
+ 201042: true,
+ 201043: true,
+ 201047: true,
+ 201048: true,
+ 201049: true,
+ 201058: true,
+ 201061: true,
+ 201064: true,
+ 201065: true,
+ 201068: true,
+ 202042: true,
+ 202043: true,
+ 202044: true,
+ 202051: true,
+ 202054: true,
+ 202055: true,
+ 203043: true,
+ 203050: true,
+ 203051: true,
+ 203053: true,
+ 203060: true,
+ 203062: true,
+ 204042: true,
+ 204044: true,
+ 204048: true,
+ 204052: true,
+ 204053: true,
+ 204061: true,
+ 204062: true,
+ 204064: true,
+ 204065: true,
+ 204067: true,
+ 204068: true,
+ 204069: true,
+ 205042: true,
+ 205044: true,
+ 206043: true,
+ 206044: true,
+ 206047: true,
+ 206050: true,
+ 206051: true,
+ 206052: true,
+ 206053: true,
+ 206054: true,
+ 206055: true,
+ 206058: true,
+ 206059: true,
+ 206060: true,
+ 206067: true,
+ 206069: true,
+ 206077: true,
+ 206078: true,
+ 206079: true,
+ 206084: true,
+ 206089: true,
+ 206101: true,
+ 206107: true,
+ 206109: true,
+ 207043: true,
+ 207044: true,
+ 207049: true,
+ 207050: true,
+ 207051: true,
+ 207052: true,
+ 207053: true,
+ 207054: true,
+ 207055: true,
+ 207061: true,
+ 207062: true,
+ 207069: true,
+ 207071: true,
+ 207085: true,
+ 207086: true,
+ 207087: true,
+ 207088: true,
+ 207095: true,
+ 207096: true,
+ 207102: true,
+ 207103: true,
+ 207106: true,
+ 207108: true,
+ 207110: true,
+ 207111: true,
+ 207112: true,
+ 209041: true,
+ 209042: true,
+ 209043: true,
+ 209044: true,
+ 210042: true,
+ 210043: true,
+ 210044: true,
+ 210047: true,
+ 211041: true,
+ 212041: true,
+ 212045: true,
+ 212046: true,
+ 212047: true,
+ 213041: true,
+ 213042: true,
+ 214042: true,
+ 214046: true,
+ 214049: true,
+ 214050: true,
+ 215042: true,
+ 215048: true,
+ 215050: true,
+ 216043: true,
+ 216046: true,
+ 216047: true,
+ 216052: true,
+ 216053: true,
+ 216054: true,
+ 216059: true,
+ 216068: true,
+ 217041: true,
+ 217044: true,
+ 217047: true,
+ 217048: true,
+ 217049: true,
+ 217056: true,
+ 217058: true,
+ 217059: true,
+ 217060: true,
+ 217061: true,
+ 217064: true,
+ 217066: true,
+ 217069: true,
+ 217071: true,
+ 217085: true,
+ 217086: true,
+ 217088: true,
+ 217093: true,
+ 217094: true,
+ 217108: true,
+ 217109: true,
+ 217111: true,
+ 217115: true,
+ 217116: true,
+ 218042: true,
+ 218044: true,
+ 218046: true,
+ 218050: true,
+ 218060: true,
+ 218061: true,
+ 218063: true,
+ 218064: true,
+ 218065: true,
+ 218070: true,
+ 218071: true,
+ 218072: true,
+ 218074: true,
+ 218076: true,
+ 222041: true,
+ 223041: true,
+ 223043: true,
+ 223044: true,
+ 223050: true,
+ 223052: true,
+ 223054: true,
+ 223058: true,
+ 223059: true,
+ 223061: true,
+ 223068: true,
+ 223069: true,
+ 223070: true,
+ 223071: true,
+ 223073: true,
+ 223075: true,
+ 223076: true,
+ 223083: true,
+ 223087: true,
+ 223094: true,
+ 223096: true,
+ 223101: true,
+ 223106: true,
+ 223108: true,
+ 224041: true,
+ 224042: true,
+ 224043: true,
+ 224045: true,
+ 224051: true,
+ 224053: true,
+ 224057: true,
+ 224060: true,
+ 224061: true,
+ 224062: true,
+ 224063: true,
+ 224068: true,
+ 224069: true,
+ 224081: true,
+ 224084: true,
+ 224087: true,
+ 224090: true,
+ 224096: true,
+ 224105: true,
+ 225042: true,
+ 227041: true,
+ 229045: true,
+ 229046: true,
+ 229048: true,
+ 229049: true,
+ 229050: true,
+ 231042: true,
+ 236041: true,
+ 237041: true,
+ 238041: true,
+ 238042: true,
+ 240041: true,
+ 240042: true,
+ 240043: true,
+ 241041: true,
+ 243041: true,
+ 244041: true,
+ 245041: true,
+ 247041: true,
+ 250041: true,
+ 252041: true,
+ 253041: true,
+ 253045: true,
+ 254043: true,
+ 255042: true,
+ 255043: true,
+ 257041: true,
+ 257042: true,
+ 258041: true,
+ 261041: true,
+ 264041: true,
+ 294042: true,
+ 296042: true,
+}