diff --git a/apps/i18n/common/ar_sa.json b/apps/i18n/common/ar_sa.json
index edc479cce8f29..74fc58cb917ba 100644
--- a/apps/i18n/common/ar_sa.json
+++ b/apps/i18n/common/ar_sa.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/az_az.json b/apps/i18n/common/az_az.json
index cd3c0b3c59cb6..eac96cc74893d 100644
--- a/apps/i18n/common/az_az.json
+++ b/apps/i18n/common/az_az.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/bg_bg.json b/apps/i18n/common/bg_bg.json
index e16565faf0874..cecd14124a026 100644
--- a/apps/i18n/common/bg_bg.json
+++ b/apps/i18n/common/bg_bg.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/bn_bd.json b/apps/i18n/common/bn_bd.json
index 450d639fc17ca..bbd30732a4909 100644
--- a/apps/i18n/common/bn_bd.json
+++ b/apps/i18n/common/bn_bd.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/bs_ba.json b/apps/i18n/common/bs_ba.json
index 9845d2d977f18..d24f70ad6af59 100755
--- a/apps/i18n/common/bs_ba.json
+++ b/apps/i18n/common/bs_ba.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ca_es.json b/apps/i18n/common/ca_es.json
index 962fae2f21998..4f12fd8ae4d1e 100644
--- a/apps/i18n/common/ca_es.json
+++ b/apps/i18n/common/ca_es.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/co_co.json b/apps/i18n/common/co_co.json
index 32e8f399c5bfe..18a039b59abac 100644
--- a/apps/i18n/common/co_co.json
+++ b/apps/i18n/common/co_co.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/cs_cz.json b/apps/i18n/common/cs_cz.json
index 742b794ffba91..849900d6a0a5d 100644
--- a/apps/i18n/common/cs_cz.json
+++ b/apps/i18n/common/cs_cz.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/da_dk.json b/apps/i18n/common/da_dk.json
index 5ea9a1e4fe858..e20c4fb55ad96 100644
--- a/apps/i18n/common/da_dk.json
+++ b/apps/i18n/common/da_dk.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/de_de.json b/apps/i18n/common/de_de.json
index 66fd4929a105f..e11dc545a15ed 100644
--- a/apps/i18n/common/de_de.json
+++ b/apps/i18n/common/de_de.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/el_gr.json b/apps/i18n/common/el_gr.json
index 67236600f8150..076fa0cf626f8 100644
--- a/apps/i18n/common/el_gr.json
+++ b/apps/i18n/common/el_gr.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/en_gb.json b/apps/i18n/common/en_gb.json
index eb63f82664275..53e7a8ee08301 100644
--- a/apps/i18n/common/en_gb.json
+++ b/apps/i18n/common/en_gb.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/en_us.json b/apps/i18n/common/en_us.json
index 8356fc2ef5f15..5636c1d5ba961 100644
--- a/apps/i18n/common/en_us.json
+++ b/apps/i18n/common/en_us.json
@@ -424,6 +424,7 @@
"englishOnlyWarning": "Sorry! This stage is not available in your language. The puzzles in this stage use a mix of English words and characters that can’t be translated right now. You can move on to Stage {nextStage}.",
"enrollmentDescription": "Join your teacher's classroom by entering their section code below. Teachers will be able to see your course progress, projects, and reset your password in case you forget it.",
"errorEmptyFunctionBlockModal": "There need to be blocks inside your function definition. Click \"edit\" and drag blocks inside the green block.",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"errorIncompleteBlockInFunction": "Click \"edit\" to make sure you don't have any blocks missing inside your function definition.",
"errorGenericLintError": "Your program contains an editor warning that needs to be corrected. Hover over the icons near the line numbers in the editor to learn more.",
"errorParamInputUnattached": "Remember to attach a block to each parameter input on the function block in your workspace.",
diff --git a/apps/i18n/common/es_es.json b/apps/i18n/common/es_es.json
index b139c5294e353..afc4829e48931 100644
--- a/apps/i18n/common/es_es.json
+++ b/apps/i18n/common/es_es.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/es_mx.json b/apps/i18n/common/es_mx.json
index 3ce1cfc2cd80a..776b408f0051b 100644
--- a/apps/i18n/common/es_mx.json
+++ b/apps/i18n/common/es_mx.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/et_ee.json b/apps/i18n/common/et_ee.json
index b7cc6bd7edf48..28953c27c27da 100644
--- a/apps/i18n/common/et_ee.json
+++ b/apps/i18n/common/et_ee.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/eu_es.json b/apps/i18n/common/eu_es.json
index 479084ee348f5..dfec61b820b32 100644
--- a/apps/i18n/common/eu_es.json
+++ b/apps/i18n/common/eu_es.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/fa_af.json b/apps/i18n/common/fa_af.json
index 181c5fce73b06..de101252dd5a2 100644
--- a/apps/i18n/common/fa_af.json
+++ b/apps/i18n/common/fa_af.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/fa_ir.json b/apps/i18n/common/fa_ir.json
index 4227dd5645e1f..934cdde9ab453 100644
--- a/apps/i18n/common/fa_ir.json
+++ b/apps/i18n/common/fa_ir.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/fi_fi.json b/apps/i18n/common/fi_fi.json
index e497535c2c4ea..82745ab151582 100644
--- a/apps/i18n/common/fi_fi.json
+++ b/apps/i18n/common/fi_fi.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/fil_ph.json b/apps/i18n/common/fil_ph.json
index 6e3008b70e2bb..e06beb610f8cf 100644
--- a/apps/i18n/common/fil_ph.json
+++ b/apps/i18n/common/fil_ph.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/fr_fr.json b/apps/i18n/common/fr_fr.json
index eb07af381ff44..0af9dc7ff7148 100644
--- a/apps/i18n/common/fr_fr.json
+++ b/apps/i18n/common/fr_fr.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ga_ie.json b/apps/i18n/common/ga_ie.json
index 24bf83761d46d..40589ffe7fec4 100644
--- a/apps/i18n/common/ga_ie.json
+++ b/apps/i18n/common/ga_ie.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/gl_es.json b/apps/i18n/common/gl_es.json
index e62fa0920a8ee..ae8ff26585a21 100644
--- a/apps/i18n/common/gl_es.json
+++ b/apps/i18n/common/gl_es.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/haw_hi.json b/apps/i18n/common/haw_hi.json
index 65d0970030cc1..d65aefa615197 100644
--- a/apps/i18n/common/haw_hi.json
+++ b/apps/i18n/common/haw_hi.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/he_il.json b/apps/i18n/common/he_il.json
index 2ad72749ec0f9..9e58925a15038 100644
--- a/apps/i18n/common/he_il.json
+++ b/apps/i18n/common/he_il.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/hi_in.json b/apps/i18n/common/hi_in.json
index 7026560b5eb65..f690fda850174 100644
--- a/apps/i18n/common/hi_in.json
+++ b/apps/i18n/common/hi_in.json
@@ -984,6 +984,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"getCodePrice": "Get Code for {price} kit",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
diff --git a/apps/i18n/common/hr_hr.json b/apps/i18n/common/hr_hr.json
index 849435def5f9d..3cc3a2438df46 100644
--- a/apps/i18n/common/hr_hr.json
+++ b/apps/i18n/common/hr_hr.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/hu_hu.json b/apps/i18n/common/hu_hu.json
index deb36099ff261..edd13a8569d13 100644
--- a/apps/i18n/common/hu_hu.json
+++ b/apps/i18n/common/hu_hu.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/hy_am.json b/apps/i18n/common/hy_am.json
index a4e52dc91e5ad..13a5daa73bbd8 100755
--- a/apps/i18n/common/hy_am.json
+++ b/apps/i18n/common/hy_am.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/id_id.json b/apps/i18n/common/id_id.json
index dd4a61fb1fb71..ea10968831702 100644
--- a/apps/i18n/common/id_id.json
+++ b/apps/i18n/common/id_id.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/is_is.json b/apps/i18n/common/is_is.json
index ec202297954b5..07be57679bbd1 100644
--- a/apps/i18n/common/is_is.json
+++ b/apps/i18n/common/is_is.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/it_it.json b/apps/i18n/common/it_it.json
index ecd4922f59509..c2e77ef611d4d 100644
--- a/apps/i18n/common/it_it.json
+++ b/apps/i18n/common/it_it.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ja_jp.json b/apps/i18n/common/ja_jp.json
index 39be869fae71d..83ce1284fddb0 100644
--- a/apps/i18n/common/ja_jp.json
+++ b/apps/i18n/common/ja_jp.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ka_ge.json b/apps/i18n/common/ka_ge.json
index 0c4f730c071c9..1e49b6a12f591 100644
--- a/apps/i18n/common/ka_ge.json
+++ b/apps/i18n/common/ka_ge.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/kk_kz.json b/apps/i18n/common/kk_kz.json
index 70505204e4710..02e631d97e5c4 100644
--- a/apps/i18n/common/kk_kz.json
+++ b/apps/i18n/common/kk_kz.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/km_kh.json b/apps/i18n/common/km_kh.json
index 5bfc2f399c6c2..d72e85417c218 100644
--- a/apps/i18n/common/km_kh.json
+++ b/apps/i18n/common/km_kh.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ko_kr.json b/apps/i18n/common/ko_kr.json
index 84d198e55a774..f0de83d980db4 100644
--- a/apps/i18n/common/ko_kr.json
+++ b/apps/i18n/common/ko_kr.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ku_iq.json b/apps/i18n/common/ku_iq.json
index c405eb84784f8..735e9692d686e 100644
--- a/apps/i18n/common/ku_iq.json
+++ b/apps/i18n/common/ku_iq.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ky_kg.json b/apps/i18n/common/ky_kg.json
index 12facf653c324..4a4bb27c3f7cd 100644
--- a/apps/i18n/common/ky_kg.json
+++ b/apps/i18n/common/ky_kg.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/lt_lt.json b/apps/i18n/common/lt_lt.json
index 4019a3f76fd48..b6db8c20eabcc 100644
--- a/apps/i18n/common/lt_lt.json
+++ b/apps/i18n/common/lt_lt.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/lv_lv.json b/apps/i18n/common/lv_lv.json
index d375c108efcec..7e99921cdf2cc 100644
--- a/apps/i18n/common/lv_lv.json
+++ b/apps/i18n/common/lv_lv.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/mi_nz.json b/apps/i18n/common/mi_nz.json
index a434c9016e7ba..dd3f774d945e8 100644
--- a/apps/i18n/common/mi_nz.json
+++ b/apps/i18n/common/mi_nz.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/mk_mk.json b/apps/i18n/common/mk_mk.json
index 14a3ad6a0a878..3b128c7ce7f59 100644
--- a/apps/i18n/common/mk_mk.json
+++ b/apps/i18n/common/mk_mk.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/mr_in.json b/apps/i18n/common/mr_in.json
index f5e4ffb000ca2..d8253e40d67c0 100644
--- a/apps/i18n/common/mr_in.json
+++ b/apps/i18n/common/mr_in.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ms_my.json b/apps/i18n/common/ms_my.json
index 3d29e3a6fc269..739a76a9cd604 100644
--- a/apps/i18n/common/ms_my.json
+++ b/apps/i18n/common/ms_my.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/mt_mt.json b/apps/i18n/common/mt_mt.json
index 1c5c950d6e1f2..766edffc51d3f 100755
--- a/apps/i18n/common/mt_mt.json
+++ b/apps/i18n/common/mt_mt.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ne_np.json b/apps/i18n/common/ne_np.json
index 3869bd487ce75..5a5a75b5225a8 100644
--- a/apps/i18n/common/ne_np.json
+++ b/apps/i18n/common/ne_np.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/nl_nl.json b/apps/i18n/common/nl_nl.json
index 07f3ac339fbd0..30fc3515e6083 100644
--- a/apps/i18n/common/nl_nl.json
+++ b/apps/i18n/common/nl_nl.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/nn_no.json b/apps/i18n/common/nn_no.json
index 3296a7fe66177..2470c8c1f2911 100755
--- a/apps/i18n/common/nn_no.json
+++ b/apps/i18n/common/nn_no.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/no_no.json b/apps/i18n/common/no_no.json
index d5e020c046d6a..2b06de8078ef8 100644
--- a/apps/i18n/common/no_no.json
+++ b/apps/i18n/common/no_no.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/pl_pl.json b/apps/i18n/common/pl_pl.json
index 730e04c3947dd..a6e4718c87b46 100644
--- a/apps/i18n/common/pl_pl.json
+++ b/apps/i18n/common/pl_pl.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ps_af.json b/apps/i18n/common/ps_af.json
index 2990bfa84f1cc..0b46ced4788d4 100755
--- a/apps/i18n/common/ps_af.json
+++ b/apps/i18n/common/ps_af.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/pt_br.json b/apps/i18n/common/pt_br.json
index c2ff498aedb17..4baa0db60253f 100644
--- a/apps/i18n/common/pt_br.json
+++ b/apps/i18n/common/pt_br.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/pt_pt.json b/apps/i18n/common/pt_pt.json
index 423a2ddef3546..06c5dd68d057e 100644
--- a/apps/i18n/common/pt_pt.json
+++ b/apps/i18n/common/pt_pt.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ro_ro.json b/apps/i18n/common/ro_ro.json
index 2fb5caf42906e..eff5e8906712d 100644
--- a/apps/i18n/common/ro_ro.json
+++ b/apps/i18n/common/ro_ro.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ru_ru.json b/apps/i18n/common/ru_ru.json
index 1c76a13acba33..95e8e3746fdbb 100644
--- a/apps/i18n/common/ru_ru.json
+++ b/apps/i18n/common/ru_ru.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/se_fi.json b/apps/i18n/common/se_fi.json
index 64381a9f823f0..3f32bdee20c72 100644
--- a/apps/i18n/common/se_fi.json
+++ b/apps/i18n/common/se_fi.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/si_lk.json b/apps/i18n/common/si_lk.json
index d4f8052288815..f7737cc233e2a 100644
--- a/apps/i18n/common/si_lk.json
+++ b/apps/i18n/common/si_lk.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/sk_sk.json b/apps/i18n/common/sk_sk.json
index 1970c41046abe..e2f7792c57472 100644
--- a/apps/i18n/common/sk_sk.json
+++ b/apps/i18n/common/sk_sk.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/sl_si.json b/apps/i18n/common/sl_si.json
index f62934e6473c7..3b9a9c4ee613d 100644
--- a/apps/i18n/common/sl_si.json
+++ b/apps/i18n/common/sl_si.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/sq_al.json b/apps/i18n/common/sq_al.json
index 44e990b919739..dfb90fc4cc028 100644
--- a/apps/i18n/common/sq_al.json
+++ b/apps/i18n/common/sq_al.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/sr_sp.json b/apps/i18n/common/sr_sp.json
index f6c951f753266..60f1e970d9239 100644
--- a/apps/i18n/common/sr_sp.json
+++ b/apps/i18n/common/sr_sp.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/sv_se.json b/apps/i18n/common/sv_se.json
index ada9bee4704dd..af091e8ff8fbf 100644
--- a/apps/i18n/common/sv_se.json
+++ b/apps/i18n/common/sv_se.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ta_in.json b/apps/i18n/common/ta_in.json
index 7ce7a567fa6e4..296e51a7724b9 100644
--- a/apps/i18n/common/ta_in.json
+++ b/apps/i18n/common/ta_in.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/te_in.json b/apps/i18n/common/te_in.json
index 9b1249ad0a2cd..7d19c929430f7 100644
--- a/apps/i18n/common/te_in.json
+++ b/apps/i18n/common/te_in.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/tg_tj.json b/apps/i18n/common/tg_tj.json
index 221e27af49792..1ffbd088d5e27 100644
--- a/apps/i18n/common/tg_tj.json
+++ b/apps/i18n/common/tg_tj.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/th_th.json b/apps/i18n/common/th_th.json
index 1315868cd3c1a..b0f45cd6dd3c6 100644
--- a/apps/i18n/common/th_th.json
+++ b/apps/i18n/common/th_th.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/tr_tr.json b/apps/i18n/common/tr_tr.json
index 2a9cbb7df25fc..cc5eaa66079fe 100644
--- a/apps/i18n/common/tr_tr.json
+++ b/apps/i18n/common/tr_tr.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/uk_ua.json b/apps/i18n/common/uk_ua.json
index 9220e9e65c4a5..277e7ca85d473 100644
--- a/apps/i18n/common/uk_ua.json
+++ b/apps/i18n/common/uk_ua.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/ur_pk.json b/apps/i18n/common/ur_pk.json
index d5a88341ad93e..5c9c90e4c62ce 100644
--- a/apps/i18n/common/ur_pk.json
+++ b/apps/i18n/common/ur_pk.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/uz_uz.json b/apps/i18n/common/uz_uz.json
index 998a031dabd08..c6ed961321e6c 100644
--- a/apps/i18n/common/uz_uz.json
+++ b/apps/i18n/common/uz_uz.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/vi_vn.json b/apps/i18n/common/vi_vn.json
index bbc401d458f21..c3c2fb4123c90 100644
--- a/apps/i18n/common/vi_vn.json
+++ b/apps/i18n/common/vi_vn.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/zh_cn.json b/apps/i18n/common/zh_cn.json
index 291b6d9dd3f3a..229139a8b0a54 100644
--- a/apps/i18n/common/zh_cn.json
+++ b/apps/i18n/common/zh_cn.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/zh_tw.json b/apps/i18n/common/zh_tw.json
index 3c4fa890c80a5..d398bbee92be1 100644
--- a/apps/i18n/common/zh_tw.json
+++ b/apps/i18n/common/zh_tw.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/i18n/common/zu_za.json b/apps/i18n/common/zu_za.json
index e9a3561bb4cde..164244874079b 100644
--- a/apps/i18n/common/zu_za.json
+++ b/apps/i18n/common/zu_za.json
@@ -998,6 +998,7 @@
"contractMatchBadNameCase": "Function names are case-sensitive. Try changing the case of your contract's name.",
"contractMatchBadRange": "Your contract has the wrong range.",
"dragBlocksToMatch": "Drag the blocks to match",
+ "errorExceededLimitedBlocks": "You did it! Now go find the pattern in your code and take out the extra blocks. You can only use {limit} of these blocks:",
"incorrectAnswer": "Incorrect answer",
"incorrectAnswerBody": "The answer you've entered is not correct. Please try again!",
"incorrectSolution": "Incorrect solution",
diff --git a/apps/package.json b/apps/package.json
index f4da750e6b28d..cf3417c7728e6 100644
--- a/apps/package.json
+++ b/apps/package.json
@@ -42,7 +42,7 @@
},
"devDependencies": {
"@cdo/apps": "file:src",
- "@code-dot-org/blockly": "1.6.28",
+ "@code-dot-org/blockly": "1.7.0",
"@code-dot-org/bramble": "0.1.23",
"@code-dot-org/craft": "github:code-dot-org/craft#bacbd8d6f61493f8cf84f2deffc74eeaf7d0dae7",
"@code-dot-org/johnny-five": "0.11.1-cdo.1",
diff --git a/apps/src/code-studio/pd/application_dashboard/application_dashboard.jsx b/apps/src/code-studio/pd/application_dashboard/application_dashboard.jsx
index 0aecd4df17829..d6a432d173d8e 100644
--- a/apps/src/code-studio/pd/application_dashboard/application_dashboard.jsx
+++ b/apps/src/code-studio/pd/application_dashboard/application_dashboard.jsx
@@ -48,7 +48,10 @@ const paths = {
export default class ApplicationDashboard extends React.Component {
static propTypes = {
regionalPartnerName: PropTypes.string,
- regionalPartners: PropTypes.array,
+ regionalPartners: PropTypes.arrayOf(PropTypes.shape({
+ id: PropTypes.number,
+ name: PropTypes.string
+ })),
isWorkshopAdmin: PropTypes.bool,
canLockApplications: PropTypes.bool,
};
diff --git a/apps/src/code-studio/pd/application_dashboard/quick_view.jsx b/apps/src/code-studio/pd/application_dashboard/quick_view.jsx
index e9f3398146c70..d8b721e3cb85f 100644
--- a/apps/src/code-studio/pd/application_dashboard/quick_view.jsx
+++ b/apps/src/code-studio/pd/application_dashboard/quick_view.jsx
@@ -139,6 +139,7 @@ export class QuickView extends React.Component {
data={this.state.applications}
statusFilter={this.state.filter}
regionalPartnerFilter={this.state.regionalPartnerFilter}
+ regionalPartnerName={this.props.regionalPartnerName}
viewType={this.props.route.viewType}
/>
diff --git a/apps/src/code-studio/pd/application_dashboard/quick_view_table.jsx b/apps/src/code-studio/pd/application_dashboard/quick_view_table.jsx
index 83f789fc0a82d..b0b3e8bfbe568 100644
--- a/apps/src/code-studio/pd/application_dashboard/quick_view_table.jsx
+++ b/apps/src/code-studio/pd/application_dashboard/quick_view_table.jsx
@@ -39,7 +39,9 @@ export class QuickViewTable extends React.Component {
PropTypes.string,
PropTypes.number
]),
- viewType: PropTypes.oneOf(['teacher', 'facilitator']).isRequired
+ regionalPartnerName: PropTypes.string,
+ viewType: PropTypes.oneOf(['teacher', 'facilitator']).isRequired,
+ isWorkshopAdmin: PropTypes.bool
};
static contextTypes = {
@@ -194,7 +196,7 @@ export class QuickViewTable extends React.Component {
constructRows() {
let rows = this.props.data;
- if (this.props.regionalPartnerFilter !== AllPartnersFilter) {
+ if (this.props.isWorkshopAdmin && this.props.regionalPartnerFilter !== AllPartnersFilter) {
if (this.props.regionalPartnerFilter === UnmatchedFilter || this.props.regionalPartnerFilter === null) {
rows = rows.filter(row => row.regional_partner_id === null);
} else {
@@ -224,4 +226,5 @@ export class QuickViewTable extends React.Component {
export default connect(state => ({
showLocked: state.permissions.lockApplication,
+ isWorkshopAdmin: state.permissions.workshopAdmin,
}))(QuickViewTable);
diff --git a/apps/src/code-studio/pd/application_dashboard/summary.jsx b/apps/src/code-studio/pd/application_dashboard/summary.jsx
index ce80dea906726..96d51c544ac1a 100644
--- a/apps/src/code-studio/pd/application_dashboard/summary.jsx
+++ b/apps/src/code-studio/pd/application_dashboard/summary.jsx
@@ -31,26 +31,22 @@ export class Summary extends React.Component {
};
componentWillMount() {
- $.ajax({
- method: 'GET',
- url: `/api/v1/pd/applications?regional_partner_filter=${UnmatchedFilter}`,
- dataType: 'json'
- })
- .done(data => {
- this.setState({
- loading: false,
- applications: data
- });
- });
+ this.load();
}
- handleRegionalPartnerChange = (selected) => {
- const regionalPartnerFilter = selected ? selected.value : null;
- const regionalPartnerName = selected ? selected.label : this.props.regionalPartnerName;
- this.setState({ regionalPartnerName, regionalPartnerFilter });
+ load(selected = null) {
+ let url = '/api/v1/pd/applications';
+ if (this.props.isWorkshopAdmin) {
+ const regionalPartnerFilter = selected ? selected.value : null;
+ const regionalPartnerName = selected ? selected.label : this.props.regionalPartnerName;
+ this.setState({ regionalPartnerName, regionalPartnerFilter });
+
+ url += `?regional_partner_filter=${regionalPartnerFilter ? regionalPartnerFilter : UnmatchedFilter}`;
+ }
+
$.ajax({
method: 'GET',
- url: `/api/v1/pd/applications?regional_partner_filter=${regionalPartnerFilter ? regionalPartnerFilter : UnmatchedFilter}`,
+ url,
dataType: 'json'
}).done((data) => {
this.setState({
@@ -58,6 +54,10 @@ export class Summary extends React.Component {
applications: data
});
});
+ }
+
+ handleRegionalPartnerChange = (selected) => {
+ this.load(selected);
};
render() {
diff --git a/apps/src/constants.js b/apps/src/constants.js
index 31f98ab86bdfd..55799e3866b27 100644
--- a/apps/src/constants.js
+++ b/apps/src/constants.js
@@ -63,6 +63,7 @@ exports.TestResults = {
LOCAL_FUNCTION_FAIL: -6, // The program contains an unexpected JavaScript local function
GENERIC_LINT_FAIL: -7, // The program contains a lint error
LOG_CONDITION_FAIL: -8, // The program execution log did not pass a required condition
+ BLOCK_LIMIT_FAIL: -9, // Puzzle was solved using more than the toolbox limit of a block
// Codes for unvalidated levels.
UNSUBMITTED_ATTEMPT: -50, // Progress was saved without submitting for review, or was unsubmitted.
diff --git a/apps/src/feedback.js b/apps/src/feedback.js
index 7599480487eb6..ba1f80b9edc7c 100644
--- a/apps/src/feedback.js
+++ b/apps/src/feedback.js
@@ -730,6 +730,12 @@ FeedbackUtils.prototype.getFeedbackMessage = function (options) {
case TestResults.QUESTION_MARKS_IN_NUMBER_FIELD:
message = msg.errorQuestionMarksInNumberField();
break;
+ case TestResults.BLOCK_LIMIT_FAIL:
+ var exceededBlockType = this.hasExceededLimitedBlocks_();
+ var limit = Blockly.mainBlockSpace.blockSpaceEditor.blockLimits.getLimit(exceededBlockType);
+ var block = ` {message} {extra} {extra}
-
+
### AP Computer Science A Resources
-There are two AP computer science offerings, and students can take either course in any order. The AP Computer Science A course and exam focuses on computing skills related to programming in Java. The new AP Computer Science Principles course complements AP Computer Science A as it aims to broaden participation in the study of computer science.
+There are two AP computer science offerings, and students can take either course in any order. If your school does not yet offer AP Computer Science, we recommend starting with the new AP Computer Science Principles course. This course aims to broaden participation in computer science by introducing students to the foundational concepts and challenging them to explore how computing and technology can impact the world.
+
+The AP Computer Sience A course and exam complement AP Computer Science Principles with a focus on computing skills related to programming in Java.
While Code.org does not have an AP Computer Science A curriculum, we have recommendations for a number of great curricula and programs available to teachers and students.
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AK.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AK.pdf.fetch
index 3546f523f7e5f..29ec5e879ea17 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AK.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AK.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/c696435cd1a1f634f4399b063bcd0116-AK.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/08df7a765326619fe7b797ca53fff730-AK.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AL.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AL.pdf.fetch
index 9b82f7f4b26a5..d545cf410acd9 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AL.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AL.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/88771b0443e7d897f40108dbccbda44d-AL.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/f3d747abee3393ffa24b85e741f4eebd-AL.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AR.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AR.pdf.fetch
index 6f1d7db54069e..fce4f1e06cd0c 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AR.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AR.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/63875218815e6f7dd3f29cc05c77d16b-AR.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/5dc47a65d6f42e0d15219c6c6c39f5da-AR.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AZ.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AZ.pdf.fetch
index be963daeea942..bec5c0c89bc2f 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/AZ.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/AZ.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/db93c6e52ac4a535f4d6f8c8a3378819-AZ.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/e915f4dbfc265ea872baaf4ccbd6f9e7-AZ.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CA.pdf.fetch
index 546fe130605e2..20ba8aac9394f 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/41a41ba5b59a4a64458af0d92e16e75c-CA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/f042eb6cc247929e336296d5e42a8953-CA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CO.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CO.pdf.fetch
index d77a0ca40c308..1c33f6803416e 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CO.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CO.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/71de29dfaa9af4149ad5c95b39385436-CO.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/6e264eda167ac788666c8b2db0d37543-CO.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CT.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CT.pdf.fetch
index 825019c795284..c706e167f0709 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/CT.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/CT.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/144f8f128eca71a9b6c48e346796c7e6-CT.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/d928838a2ce7b91ccdfb7f8f6e9ed9b4-CT.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/DC.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/DC.pdf.fetch
index b460e4dcd5b3d..22906ce8b5fb6 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/DC.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/DC.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/06dfcf8660ba9f1723b9567ee4b8f034-DC.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/49ca260da2bb1374257b639e0d13ad7a-DC.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/DE.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/DE.pdf.fetch
index c6e4e335f4357..a11adfb87f2e9 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/DE.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/DE.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/1d7267e2733ba98ffdb463f32935fbde-DE.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/e0e118b8d6251a5fe64bcf33b8d15f96-DE.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/FL.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/FL.pdf.fetch
index 46dbdad4af9d2..9aa1527f93375 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/FL.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/FL.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/3bfb8b2a48c87ae0a8e8dd29d8267a85-FL.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/35e358e0355e4ac002c25da12adafa13-FL.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/GA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/GA.pdf.fetch
index 6d8022c991508..501b383d61df1 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/GA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/GA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/cb14ca11a7833798dc3816ccb2f09ae7-GA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/20856996b7843a067f26f8cbdaab6356-GA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/HI.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/HI.pdf.fetch
index c0696baf6f40b..84b1d5ca48834 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/HI.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/HI.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/240f168764bcc5c446bf72b7d56dbb91-HI.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/b5f96bf33d793e9539be323bd210c2de-HI.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IA.pdf.fetch
index 739a71b91fe77..a9c0b0672fd0b 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/cc8965cc1c58dd1409043672bea29716-IA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/8b58c1662f0ccbaf1c2f25e9fb5ecd4a-IA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ID.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ID.pdf.fetch
index 9f3a43a50d8e8..9dddb1235f95d 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ID.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ID.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/9d5322ac950b5d48972229cc8ae7e80e-ID.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/602a0189dd492341b6c95619eecde9e1-ID.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IL.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IL.pdf.fetch
index db7db0ad9aad6..c54e338ebff12 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IL.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IL.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/4d8255df74d66e7eba02349a1c88fc38-IL.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/89d0fe3e227b7b607fba86169a9d9aa7-IL.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IN.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IN.pdf.fetch
index dd00a187d56e9..5014424efb2c1 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/IN.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/IN.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/de9a7843820e3a6acf634c55ce576202-IN.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/7452818f9a704cac4c4592967922cb88-IN.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/KS.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/KS.pdf.fetch
index 65d4ff1ee1d4d..f87e2079e9197 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/KS.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/KS.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/d5d580d9982962b85a9062b3163549a5-KS.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/49c4d563b11e403d8b3c8e68e623c9ab-KS.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/KY.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/KY.pdf.fetch
index 3cd901b5eba74..8718cb7585ded 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/KY.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/KY.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/f62014ab17b676df431d1634e0f3706c-KY.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/dfd60df5cb2e8c27b042b969c69cd724-KY.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/LA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/LA.pdf.fetch
index a6020556da272..e45022a470764 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/LA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/LA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/d88bdbe6b4386d50f67d885d7d543ac7-LA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/14c47d02ce7145a1ba3632cf3fb2d3c1-LA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MA.pdf.fetch
index 7d04081a0d944..1b0996cd0da0c 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/c58ee0a72aeed96b53396f9e2a5e2345-MA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/f504f865dd2c8a7421f2d4987e748fda-MA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MD.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MD.pdf.fetch
index aafd5482c6623..298e95307ba55 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MD.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MD.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/fbc4120ea01d3152dc82d890cfa9d11c-MD.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/ba07fb95330e2d73f7f8832bb0a5623c-MD.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ME.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ME.pdf.fetch
index 11ffa72a69770..230a5c69abad4 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ME.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ME.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/81218f3286736f227588d5270cab8878-ME.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/77d425bca1db97b1e907f587d3266ec4-ME.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MI.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MI.pdf.fetch
index 50304a515b495..c6cf457f8e036 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MI.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MI.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/d0bf219002c01f93b26ac8d7e7405137-MI.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/554904ccce0038bfd3db9189a5e60daa-MI.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MN.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MN.pdf.fetch
index 651b8518db33f..9bfe27c67e36d 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MN.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MN.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/aa47ef9f881f6c682a60fa48d650e98d-MN.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/e821306fc29bec04a43f54d2375aea0f-MN.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MO.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MO.pdf.fetch
index c7f70c4e36120..4db892c4d52a4 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MO.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MO.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/519d4dbbd6265f2e4bad31df85442d52-MO.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/12438b2a865a4f9b39863bb244099523-MO.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MS.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MS.pdf.fetch
index 1b920df8613d3..74a8f33653d96 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MS.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MS.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/50b6e75650f64da8481a742d3878989e-MS.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/bc2e0ae7968bdb276ef7ad766b68773f-MS.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MT.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MT.pdf.fetch
index ba3014ed9c70b..f401718dcee2f 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/MT.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/MT.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/efa825fb54703f0e7f554225e41bd691-MT.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/77c88877efa3ff3b0c9d73a3767a1147-MT.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NC.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NC.pdf.fetch
index 8971d98d05781..777815567ebbc 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NC.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NC.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/6ff047b0ebe85b0fb9d97c4f30d31db1-NC.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/79d3f71d135d9990e01b1ff1b4d6d6e7-NC.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ND.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ND.pdf.fetch
index a9ed3e0e6c238..ee88705a2a796 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/ND.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/ND.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/d6f538beae6d19e0df2e6f04c68be59f-ND.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/4c41bffdf290953f73ef2ebbad8983fc-ND.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NE.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NE.pdf.fetch
index cd68f89acf282..bacde35767363 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NE.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NE.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/092141695ed5a31b98fb8f8003efcb69-NE.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/b978d2e37398415d6e5c4d64d529fc2b-NE.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NH.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NH.pdf.fetch
index d5f2c570d3c16..d11a1042909f8 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NH.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NH.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/8c705aea80484ba7f4162295a749e0e8-NH.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/99ed0c070b3dd28e6fc32b7feb06193b-NH.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NJ.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NJ.pdf.fetch
index 2f33618da6ebe..e1c49332c2d2a 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NJ.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NJ.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/cb3f960ccd23c03dcfcfd838e53a05a0-NJ.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/75f2db7943c169f03b8b2a6e35ab28f8-NJ.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NM.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NM.pdf.fetch
index a94bd40fada79..323612af1c3cb 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NM.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NM.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/8f32e26e712bc191aa89e1f408628155-NM.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/688e1ddc152f02e3d776ab5a4be6909d-NM.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NV.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NV.pdf.fetch
index 0f2bcb29fee91..a763c7597b6c0 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NV.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NV.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/97f876b3a8579e20bc3f9cd69f06c7d6-NV.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/a0f12d0610c4b378d333ad6bc73dc9f4-NV.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NY.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NY.pdf.fetch
index be61f41e80170..58b8c9bc0bf23 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/NY.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/NY.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/6459de7b95fcab35f9fc8787cdae7f3f-NY.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/19add556ca89e786e499e46bb4e4a068-NY.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OH.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OH.pdf.fetch
index 5f565b477e085..945342d62409b 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OH.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OH.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/53580da15d4b4a6c0c48cb5ae4beeca1-OH.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/46248f650882d934ee8fdf5445d63574-OH.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OK.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OK.pdf.fetch
index de40103c72b08..0eefd9651e958 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OK.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OK.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/2ae071f510b8525c37219582b8dfb909-OK.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/f10845275877f1d27b1e87fa2e351916-OK.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OR.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OR.pdf.fetch
index 5b432d3fdd1a6..293be9beb47da 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/OR.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/OR.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/79ebe6690079942b72dc8e160ddf61a7-OR.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/726c91eacbe0b9f3301968994c92b74e-OR.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/PA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/PA.pdf.fetch
index 91442c8812018..4106e58cad71b 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/PA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/PA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/462d30b8d4c93b9f7d551b36ee4e9dab-PA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/4f6e8cae24c665676d8928423d51c569-PA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/RI.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/RI.pdf.fetch
index 99b1207a338de..dd4204a65eb1b 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/RI.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/RI.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/f4d09c02e800047a01364c5d7dbe6a07-RI.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/97e00ba2729fadeafc71da4e55fab3a2-RI.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/SC.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/SC.pdf.fetch
index bfa47f6ed8326..79b6ba7097afb 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/SC.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/SC.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/6800f37e828b5efff3445bd0e2186490-SC.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/bc189e973a359d09fd9ab0b5b184c8a3-SC.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/SD.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/SD.pdf.fetch
index 4b01714c9a3a0..460df9bf3a2bf 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/SD.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/SD.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/1da9d0bafd7a86f955a71372194a6437-SD.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/7a63d8fe533bfe14c0284ad9280d5dff-SD.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/TN.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/TN.pdf.fetch
index 27e71d4253c41..c917c0a0d72d5 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/TN.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/TN.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/6ab54dc7ef9a3f270ef396748c348318-TN.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/b2ea0e0fdc0ad936a1e3b5cfb960efda-TN.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/TX.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/TX.pdf.fetch
index aa3c68239d79e..d830fe2b3bedb 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/TX.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/TX.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/9f35474aa7fe82ff51116b68710d409f-TX.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/7e0aa82b557154cbfbb42c193af47eff-TX.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/UT.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/UT.pdf.fetch
index 45fb22eacf62b..7578baf9d0ff7 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/UT.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/UT.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/9687f97d08f93867a4abeab97526b0db-UT.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/885ca0ae07f32b8c4c47fb9bc7c3434a-UT.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/VA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/VA.pdf.fetch
index cdd58ff97a986..3053780f62b22 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/VA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/VA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/9a494a4356f5dfa487ef5c6f4ca18149-VA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/95cb2f0dd2e72bb7d36ee09eed802b94-VA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/VT.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/VT.pdf.fetch
index 5e3dde0cb0a44..7792bdfaa784b 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/VT.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/VT.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/58dc10cdf563549aabeded15c2f7a702-VT.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/5aef187d6b35cf33c28266574a0b3c0f-VT.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WA.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WA.pdf.fetch
index 8411e2c2eaee6..1bac85804716a 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WA.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WA.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/c0ffc5e09eb4926643ad71378729099f-WA.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/c29abb3083e2f15a90ca7a853d1f0fb8-WA.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WI.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WI.pdf.fetch
index 6e58e5da018a1..e16943629370c 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WI.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WI.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/65bc239ceb937a3d352eafe21d026196-WI.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/86304acc83b8aef2c3c76b3d66e64837-WI.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WV.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WV.pdf.fetch
index b525d65d288e4..675db5f81135c 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WV.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WV.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/ccc0c95bc3b16febc5170c948de65417-WV.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/3eaeb524a90188928e47ff0890d7b34a-WV.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WY.pdf.fetch b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WY.pdf.fetch
index c672646ad98c3..59cf849c3dc1d 100644
--- a/pegasus/sites.v3/code.org/public/advocacy/state-facts/WY.pdf.fetch
+++ b/pegasus/sites.v3/code.org/public/advocacy/state-facts/WY.pdf.fetch
@@ -1 +1 @@
-https://cdo-fetch.s3.amazonaws.com/c077a557b68f6bd984769bcc94c5befc-WY.pdf
\ No newline at end of file
+https://cdo-fetch.s3.amazonaws.com/b3ec49ea9d647e2a50fc8b513b0f5ee0-WY.pdf
\ No newline at end of file
diff --git a/pegasus/sites.v3/code.org/public/educate/csd.md b/pegasus/sites.v3/code.org/public/educate/csd.md
index 67bdd82c544ca..0a48f1778e963 100644
--- a/pegasus/sites.v3/code.org/public/educate/csd.md
+++ b/pegasus/sites.v3/code.org/public/educate/csd.md
@@ -13,7 +13,7 @@ theme: responsive
Computer Science Discoveries is appropriate for 6 - 10th grade students and can be taught as a semester or year long introductory course (3-5 hours per week of instruction for 9+ weeks). The course takes a wide lens on computer science by covering topics such as programming, physical computing, HTML/CSS, and data. The course inspires students as they build their own websites, apps, games, and physical computing devices. Our curriculum is available at [no cost](/commitment) for anyone, anywhere to teach. For more information about our goals and approach to our courses, please see our [curriculum values](/educate/curriculum/values) and our [professional learning values](/educate/professional-learning/values).
**What expenses are covered during TeacherCon?**
-
-Code.org will pay for relevant travel, accommodation and meal expenses for your summer conference.
+Over the course of the week, you will join with hundreds of teachers from across the country to explore the curriculum and tools, consider and experiment with specific classroom management and teaching strategies, and build a local community with teachers who are also implementing Code.org courses.
-**These include:**
+[/col-50]
-* Flights to and from your assigned TeacherCon Location **OR** mileage gift card for attendees driving over 25 miles one-way.
-* A room for you at the hotel -- No need to make a reservation, we have booked this for you!
-* Catered breakfast, lunch, and snacks, Monday through Friday; dinner on Sunday and Wednesday
+
-All participants will receive a $300 gift card upon their arrival to cover any additional expenses such as meals we do not provide, and other incidentals such as baggage fees, parking, taxis, public transportation, etc. No additional reimbursements will be provided to attendees or districts.
-
-## **Travel & Hotel Information**
+## **Travel, Hotel, and Conference Expense Information**
**Hotel Information**
@@ -51,7 +50,9 @@ TeacherCon accomodations as well as all conference sessions will take place at:
**Should I book my own travel to TeacherCon?**
- **Please DO NOT make travel or lodging arrangements before we send you travel booking details.** You will receive an email from us approximately seven weeks ahead of your scheduled TeacherCon with detailed information about how to book your flight through our travel system, Egencia. We also have a room set aside for you at our conference hotel, so you don’t need to make a reservation.
+ **Please DO NOT make travel or lodging arrangements before we send you travel booking details.** You will receive an email from us approximately seven weeks ahead of your scheduled TeacherCon with detailed information about how to book your flight through our travel system, Egencia.
+
+We also have a room set aside for you at our conference hotel, so you don’t need to make a reservation.
**Want to share a ride from the airport to the hotel with fellow TeacherCon attendees?**
+**Can I share a ride from the airport to the hotel with fellow TeacherCon attendees?**
-For privacy reasons, Code.org is not able to share attendee contact information, but you're welcome to meet up with each other at the airport and ride together to the hotel. If you'd like to share a ride, our suggestion is to join a group meeting every 30 minutes between 10 am and 4:30 pm at the designated rideshare pickup location, and then order a taxi, Uber, or Lyft together. **Please note that Code.org staff will not be at the meeting location.** When you get to the meeting location, make sure to ask others nearby if they are part of TeacherCon.
+For privacy reasons, Code.org is not able to share attendee contact information, but you're welcome to meet up with each other at the airport and ride together to the hotel. If you'd like to share a ride, our suggestion is to join a group meeting every 30 minutes between 10 am and 4:30 pm at any of the [designated rideshare pickup locations at PHX Sky Harbor](https://www.skyharbor.com/ParkingTransportation/ride-share). Then order a taxi, Uber, or Lyft together. **Please note that Code.org staff will not be at the meeting location.** When you get to the pickup location, make sure to ask others nearby if they are part of TeacherCon.
**What expenses are covered during TeacherCon?**
+
+Code.org will pay for relevant travel, accommodation and meal expenses for your summer conference.
+
+**These include:**
+
+* Flights to and from your assigned TeacherCon Location **OR** mileage gift card for attendees driving over 25 miles one-way.
+* A room for you at the hotel -- No need to make a reservation, we have booked this for you!
+* Catered breakfast, lunch, and snacks, Monday through Friday; dinner on Sunday and Wednesday
+
+All participants will receive a $300 gift card upon their arrival to cover any additional expenses such as meals we do not provide, and other incidentals such as baggage fees, parking, taxis, public transportation, etc. No additional reimbursements will be provided to attendees or districts.
+**What should I pack?**
+ **What kinds of clothing should I pack?**
-We encourage **business casual** attire during TeacherCon. All our conference sessions are indoors, and air conditioning is usually cool in hotels. We recommend that you bring a light sweater if you get cold easily in air conditioned rooms. You can expect temperatures to be quite warm during the day, so pack a water bottle! If you plan to venture outdoors during your free time, be sure to check the local forecast and plan accordingly!
+We encourage **business casual** attire during TeacherCon. All our conference sessions are indoors, and air conditioning is usually cool in hotels. We recommend that you bring layers if you get cold easily in air conditioned rooms. You can expect outside temperatures to be quite warm during the day. If you plan to venture outdoors during your free time, be sure to check the local forecast and plan accordingly!
-Please bring your laptop/Chromebook and charger, as well as any adapters. If you’re bringing a school or district owned laptop/Chromebook, please make sure you have administrator permissions.
+**Don't forget to bring your own laptop/Chromebook and charger, as well as any adapters.** If you’re bringing a school or district owned laptop/Chromebook, please make sure you have administrator permissions.
+
+_Please note that our CS Discoveries and Principles courses are not optimized for tablets, so we do not recommend bringing a tablet as your primary device to this event._
+
+In addition, Code.org will not have extra devices on hand for participants to borow.
-**Note**: *Our CS Discoveries and Principles courses are not optimized for tablets, so we do not recommend bringing a tablet as your primary device to this event.*
+
+More information coming soon!
+
+
+More information coming soon!
+