diff --git a/api/src/routes/protected/certificate.test.ts b/api/src/routes/protected/certificate.test.ts index 12ad09e06bb..253a6e26049 100644 --- a/api/src/routes/protected/certificate.test.ts +++ b/api/src/routes/protected/certificate.test.ts @@ -38,6 +38,7 @@ describe('certificate routes', () => { data: { completedChallenges: [], name: 'fcc', + isA2EnglishCert: false, isRespWebDesignCert: false, isJsAlgoDataStructCert: false, isFrontEndLibsCert: false, @@ -135,6 +136,7 @@ describe('certificate routes', () => { }, isCertMap: { is2018DataVisCert: false, + isA2EnglishCert: false, isApisMicroservicesCert: false, isBackEndCert: false, isCollegeAlgebraPyCertV8: false, @@ -238,7 +240,8 @@ describe('certificate routes', () => { isInfosecCertV7: true, isMachineLearningPyCertV7: true, isCollegeAlgebraPyCertV8: true, - isFoundationalCSharpCertV8: true + isFoundationalCSharpCertV8: true, + isA2EnglishCert: true } }); diff --git a/client/gatsby-node.js b/client/gatsby-node.js index 40c24d3c77c..71d03b712c5 100644 --- a/client/gatsby-node.js +++ b/client/gatsby-node.js @@ -470,8 +470,6 @@ exports.createSchemaCustomization = ({ actions }) => { } type ChallengeFields { slug: String - blockName: String - tests: [Test] } type Nodule { type: String diff --git a/client/i18n/locales/chinese-traditional/intro.json b/client/i18n/locales/chinese-traditional/intro.json index 31727661f8b..2427c52490f 100644 --- a/client/i18n/locales/chinese-traditional/intro.json +++ b/client/i18n/locales/chinese-traditional/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "響應式網頁設計", + "title": "Legacy Responsive Web Design V8", "intro": [ "在響應式網頁設計的認證課程中,你將學習用於構建網頁的語言: HTML(超文本標記語言)用於創建內容,CSS(級聯樣式表)用於樣式設計。", "首先,你將通過創建一個展示貓咪圖片的應用學習 HTML 和 CSS 的基本知識。 然後,通過創建一隻企鵝來學習像 CSS 變量這樣的現代技術,並通過創建網頁表單學習無障礙的最佳實踐。", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "(舊版)JavaScript 算法和數據結構", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "HTML 和 CSS 控制頁面的內容和樣式,JavaScript 則用於頁面交互。在 JavaScript 算法和數據結構認證中,你將學習 JavaScript 的基礎知識,包括變量、 數組、 對象、 循環和函數。", "打好基礎之後,你將會通過創建算法來操作字符串、進行階乘運算甚至計算國際空間站的軌道來應用這些知識。", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "開發者使用 HTML 和 CSS 來控制頁面的內容與樣式。他們還使用 JavaScript 來讓頁面可以交互。", "在這個 JavaScript 算法與數據結構認證中,你將學習如變量、數組、對象、循環、函數、DOM 等 JavaScript 的基礎知識。", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "前端開發庫", + "title": "Front End Development Libraries V8", "intro": [ "你已經熟悉了 HTML、CSS 和 JavaScript。現在學習行業中一些流行的前端庫來提升你的技能吧。", "在前端開發庫認證中,你將學習如何使用 Bootstrap 快速設置網站樣式,以及如何在 CSS 樣式中添加邏輯,並使用 Sass 對其進行擴展。", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "數據可視化", + "title": "Data Visualization V8", "intro": [ "數據無處不在。但是,如果沒有上下文,數據就沒有多大意義。", "在數據可視化認證中,你會用 D3.js 庫來創建表格、圖表和地圖,以展示不同的數據。", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "關係數據庫", + "title": "Relational Database V8", "intro": [ "對於這些課程,你將使用真正的開發人員工具和軟件,包括 VS Code、PostgreSQL 和 Linux/Unix 命令行來完成交互式教程和構建項目。", "這些課程從基本的 Bash 命令開始。使用終端,你將學習從導航和操作文件系統、在 Bash 中編寫腳本到高級用法的所有內容。", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "後端開發和 APIs", + "title": "Back End Development and APIs V8", "intro": [ "在這之前,你只是在前端使用 JavaScript 來給頁面添加交互、解決算法挑戰,或構建一個 SPA(單頁應用程序)。但 JavaScript 也可以用於後端或者服務器來構建整個 web 應用程序。", "今天,構建應用軟件的廣受歡迎的方法之一是微服務,這些微服務是一種小型模塊化的應用,能夠共同形成一個更大的整體。", @@ -2073,6 +2073,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4677,7 +4683,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4801,8 +4806,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6275,6 +6282,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6616,6 +6624,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7074,6 +7083,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7308,6 +7318,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7424,11 +7435,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7457,12 +7474,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7472,7 +7489,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7522,8 +7539,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7573,6 +7590,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/chinese-traditional/translations.json b/client/i18n/locales/chinese-traditional/translations.json index 2e7da7f7718..b83bd8178a6 100644 --- a/client/i18n/locales/chinese-traditional/translations.json +++ b/client/i18n/locales/chinese-traditional/translations.json @@ -685,6 +685,7 @@ "lab": "實驗室", "review": "複習", "quiz": "測驗", + "cert-project": "Certification Project", "exam": "考試", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "響應式 Web 設計", - "responsive-web-design-cert": "響應式 Web 設計認證", - "javascript-algorithms-and-data-structures": "舊版 JavaScript 算法和數據結構", - "javascript-algorithms-and-data-structures-cert": "舊版 JavaScript 算法和數據結構認證", - "javascript-algorithms-and-data-structures-v8": "JavaScript 算法和數據結構", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript 算法和數據結構認證", - "front-end-development-libraries": "前端開發庫", - "front-end-development-libraries-cert": "前端開發庫認證", - "data-visualization": "數據可視化", - "data-visualization-cert": "數據可視化認證", - "relational-database-v8": "關係數據庫", - "relational-database-v8-cert": "關係數據庫認證", - "back-end-development-and-apis": "後端開發和 APIs", - "back-end-development-and-apis-cert": "後端開發和 APIs 認證", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "質量保證", "quality-assurance-v7-cert": "質量保證認證", "scientific-computing-with-python-v7": "Python 科學計算", @@ -1353,6 +1354,26 @@ "two-questions": "恭喜你已經走到了這一步。在你開始考試之前,請回答這兩個簡短的調研問題。" } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "探索我們的目錄", diff --git a/client/i18n/locales/chinese/intro.json b/client/i18n/locales/chinese/intro.json index 31475de202f..8d7e435c48a 100644 --- a/client/i18n/locales/chinese/intro.json +++ b/client/i18n/locales/chinese/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "响应式网页设计", + "title": "Legacy Responsive Web Design V8", "intro": [ "在响应式网页设计的认证课程中,你将学习用于构建网页的语言: HTML(超文本标记语言)用于创建内容,CSS(级联样式表)用于样式设计。", "首先,你将通过创建一个展示猫咪图片的应用学习 HTML 和 CSS 的基本知识。 然后,通过创建一只企鹅来学习像 CSS 变量这样的现代技术,并通过创建网页表单学习无障碍的最佳实践。", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "(旧版)JavaScript 算法和数据结构", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "HTML 和 CSS 控制页面的内容和样式,JavaScript 则用于页面交互。在 JavaScript 算法和数据结构认证中,你将学习 JavaScript 的基础知识,包括变量、 数组、 对象、 循环和函数。", "打好基础之后,你将会通过创建算法来操作字符串、进行阶乘运算甚至计算国际空间站的轨道来应用这些知识。", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "开发者使用 HTML 和 CSS 来控制页面的内容与样式。他们还使用 JavaScript 来让页面可以交互。", "在这个 JavaScript 算法与数据结构认证中,你将学习如变量、数组、对象、循环、函数、DOM 等 JavaScript 的基础知识。", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "前端开发库", + "title": "Front End Development Libraries V8", "intro": [ "你已经熟悉了 HTML、CSS 和 JavaScript。现在学习行业中一些流行的前端库来提升你的技能吧。", "在前端开发库认证中,你将学习如何使用 Bootstrap 快速设置网站样式,以及如何在 CSS 样式中添加逻辑,并使用 Sass 对其进行扩展。", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "数据可视化", + "title": "Data Visualization V8", "intro": [ "数据无处不在。但是,如果没有上下文,数据就没有多大意义。", "在数据可视化认证中,你会用 D3.js 库来创建表格、图表和地图,以展示不同的数据。", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "关系数据库", + "title": "Relational Database V8", "intro": [ "对于这些课程,你将使用真正的开发人员工具和软件,包括 VS Code、PostgreSQL 和 Linux/Unix 命令行来完成交互式教程和构建项目。", "这些课程从基本的 Bash 命令开始。使用终端,你将学习从导航和操作文件系统、在 Bash 中编写脚本到高级用法的所有内容。", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "后端开发和 APIs", + "title": "Back End Development and APIs V8", "intro": [ "在这之前,你只是在前端使用 JavaScript 来给页面添加交互、解决算法挑战,或构建一个 SPA(单页应用程序)。但 JavaScript 也可以用于后端或者服务器来构建整个 web 应用程序。", "今天,构建应用软件的广受欢迎的方法之一是微服务,这些微服务是一种小型模块化的应用,能够共同形成一个更大的整体。", @@ -2073,6 +2073,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4677,7 +4683,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4801,8 +4806,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6275,6 +6282,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6616,6 +6624,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7074,6 +7083,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7308,6 +7318,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7424,11 +7435,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7457,12 +7474,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7472,7 +7489,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7522,8 +7539,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7573,6 +7590,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json index 4dc68db4c2c..86b0474ce95 100644 --- a/client/i18n/locales/chinese/translations.json +++ b/client/i18n/locales/chinese/translations.json @@ -685,6 +685,7 @@ "lab": "实验室", "review": "复习", "quiz": "测验", + "cert-project": "Certification Project", "exam": "考试", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "响应式 Web 设计", - "responsive-web-design-cert": "响应式 Web 设计认证", - "javascript-algorithms-and-data-structures": "旧版 JavaScript 算法和数据结构", - "javascript-algorithms-and-data-structures-cert": "旧版 JavaScript 算法和数据结构认证", - "javascript-algorithms-and-data-structures-v8": "JavaScript 算法和数据结构", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript 算法和数据结构认证", - "front-end-development-libraries": "前端开发库", - "front-end-development-libraries-cert": "前端开发库认证", - "data-visualization": "数据可视化", - "data-visualization-cert": "数据可视化认证", - "relational-database-v8": "关系数据库", - "relational-database-v8-cert": "关系数据库认证", - "back-end-development-and-apis": "后端开发和 APIs", - "back-end-development-and-apis-cert": "后端开发和 APIs 认证", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "质量保证", "quality-assurance-v7-cert": "质量保证认证", "scientific-computing-with-python-v7": "Python 科学计算", @@ -1353,6 +1354,26 @@ "two-questions": "恭喜你已经走到了这一步。在你开始考试之前,请回答这两个简短的调研问题。" } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "探索我们的目录", diff --git a/client/i18n/locales/english/intro.json b/client/i18n/locales/english/intro.json index e04ac52112a..424e3b3a624 100644 --- a/client/i18n/locales/english/intro.json +++ b/client/i18n/locales/english/intro.json @@ -1394,7 +1394,7 @@ } }, "a2-english-for-developers": { - "title": "A2 English for Developers (Beta) Certification", + "title": "A2 English for Developers Certification", "intro": [ "In this English for Developers Curriculum, you'll learn the essentials of English communication. This will follow the A2 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for developers.", "The first half of the curriculum will help you get comfortable with English grammar and usage. It will give you tons of hands-on practice. You'll learn basics like introducing yourself, making small talk, and discussing your work.", @@ -2372,7 +2372,10 @@ "Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility." ] }, - "qpra": { "title": "30", "intro": [] }, + "qpra": { + "title": "30", + "intro": [] + }, "lecture-understanding-computer-internet-and-tooling-basics": { "title": "Understanding Computer, Internet, and Tooling Basics", "intro": [ @@ -4170,7 +4173,10 @@ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more." ] }, - "kagw": { "title": "258", "intro": [] }, + "kagw": { + "title": "258", + "intro": [] + }, "lecture-introduction-to-javascript-libraries-and-frameworks": { "title": "Introduction to JavaScript Libraries and Frameworks", "intro": [ @@ -4443,11 +4449,26 @@ "In this lesson, you will learn about TypeScript configuration files and how to use them." ] }, - "trvf": { "title": "293", "intro": [] }, - "kwmg": { "title": "294", "intro": [] }, - "nodx": { "title": "295", "intro": [] }, - "erfj": { "title": "296", "intro": [] }, - "muyw": { "title": "297", "intro": [] }, + "trvf": { + "title": "293", + "intro": [] + }, + "kwmg": { + "title": "294", + "intro": [] + }, + "nodx": { + "title": "295", + "intro": [] + }, + "erfj": { + "title": "296", + "intro": [] + }, + "muyw": { + "title": "297", + "intro": [] + }, "review-typescript": { "title": "Typescript Review", "intro": [ @@ -4465,8 +4486,14 @@ "Review the Front End Libraries concepts to prepare for the upcoming quiz." ] }, - "rdzk": { "title": "301", "intro": [] }, - "vtpz": { "title": "302", "intro": [] }, + "rdzk": { + "title": "301", + "intro": [] + }, + "vtpz": { + "title": "302", + "intro": [] + }, "lecture-introduction-to-python": { "title": "Introduction to Python", "intro": [ @@ -5198,6 +5225,12 @@ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods." ] }, + "workshop-string-formatter": { + "title": "Build a String Formatter", + "intro": [ + "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()." + ] + }, "lecture-working-with-string-modification-methods": { "title": "Working with String Modification Methods", "intro": [ @@ -5227,12 +5260,26 @@ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings." ] }, + "lab-debug-type-coercion-errors": { + "title": "Debug Type Coercion Errors in a Buggy App", + "intro": [ + "In this lab, you will be working with a buggy app that contains several type coercion errors.", + "Your task is to identify and fix these errors to ensure the app functions correctly." + ] + }, "lecture-working-with-operator-behavior": { "title": "Working with Operator Behavior", "intro": [ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators." ] }, + "lab-debug-increment-and-decrement-operator-errors": { + "title": "Debug Increment and Decrement Operator Errors in a Buggy App", + "intro": [ + "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.", + "Your task is to identify and fix the errors so that the app works as intended." + ] + }, "lecture-working-with-comparison-and-boolean-operators": { "title": "Working with Comparison and Boolean Operators", "intro": [ @@ -6283,6 +6330,8 @@ "modules": { "react-fundamentals": "React Fundamentals", "react-state-hooks-and-routing": "React State, Hooks, and Routing", + "lab-currency-converter": "Build a Currency Converter", + "lab-tic-tac-toe": "Build a Tic-Tac-Toe Game", "performance": "Performance", "testing": "Testing", "css-libraries-and-frameworks": "CSS Libraries and Frameworks", @@ -6626,11 +6675,16 @@ "python-basics": "Python Basics", "python-loops-and-sequences": "Loops and Sequences", "python-dictionaries-and-sets": "Dictionaries and Sets", + "lab-user-configuration-manager": "Build a User Configuration Manager", "python-error-handling": "Error Handling", "python-classes-and-objects": "Classes and Objects", + "lab-budget-app": "Build a Budget App", "python-object-oriented-programming": "Object-Oriented Programming (OOP)", + "lab-polygon-area-calculator": "Build a Polygon Area Calculator", "python-linear-data-structures": "Linear Data Structures", + "lab-hash-table": "Build a Hash Table", "python-algorithms": "Algorithms", + "lab-tower-of-hanoi": "Implement the Tower of Hanoi Algorithm", "python-graphs-and-trees": "Graphs and Trees", "python-dynamic-programming": "Dynamic Programming", "review-python": "Python Review", @@ -6879,6 +6933,12 @@ "title": "Understanding Abstraction", "intro": ["Learn about Understanding Abstraction in these lessons."] }, + "workshop-discount-calculator": { + "title": "Build a Discount Calculator", + "intro": [ + "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." + ] + }, "lab-player-interface": { "title": "Build a Player Interface", "intro": [ @@ -6998,6 +7058,12 @@ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science." ] }, + "workshop-shortest-path-algorithm": { + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph." + ] + }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", "intro": [ @@ -7531,8 +7597,14 @@ "title": "Introducing Yourself Basics", "intro": ["", ""] }, - "es-a1-learn-meet-luna": { "title": "Meet Luna", "intro": ["", ""] }, - "es-a1-learn-meet-mateo": { "title": "Meet Mateo", "intro": ["", ""] }, + "es-a1-learn-meet-luna": { + "title": "Meet Luna", + "intro": ["", ""] + }, + "es-a1-learn-meet-mateo": { + "title": "Meet Mateo", + "intro": ["", ""] + }, "es-a1-learn-meet-julieta": { "title": "Meet Julieta", "intro": ["", ""] @@ -7686,6 +7758,12 @@ "In these lectures, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -7772,6 +7850,12 @@ "In these lectures, you will learn when you should use certain semantic elements like the em element over the i element, description lists, and more." ] }, + "workshop-major-browsers-list": { + "title": "Build a List of Major Web Browsers", + "intro": [ + "In this workshop, you will build a description list and work with the dl, dt, and dd elements." + ] + }, "lecture-working-with-text-and-time-semantic-elements": { "title": "Working with Text and Time Semantic Elements ", "intro": [ @@ -7959,7 +8043,10 @@ "Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility." ] }, - "qpra": { "title": "30", "intro": [] }, + "qpra": { + "title": "30", + "intro": [] + }, "lecture-understanding-computer-internet-and-tooling-basics": { "title": "Understanding Computer, Internet, and Tooling Basics", "intro": [ @@ -8685,7 +8772,10 @@ "title": "Single Finals", "intro": ["", ""] }, - "zh-a1-learn-initials": { "title": "Initials", "intro": ["", ""] }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, "zh-a1-learn-compound-finals": { "title": "Compound Finals", "intro": ["", ""] @@ -8736,12 +8826,18 @@ "title": "Introducing Others Basics", "intro": ["", ""] }, - "zh-a1-learn-the-team": { "title": "The Team", "intro": ["", ""] }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, "zh-a1-learn-a-new-colleague": { "title": "A New Colleague", "intro": ["", ""] }, - "zh-a1-learn-my-family": { "title": "My Family", "intro": ["", ""] }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, "zh-a1-practice-introducing-others": { "title": "Introducing Others Practice", "intro": ["", ""] @@ -8904,7 +9000,9 @@ "part-12": "Containers", "part-13": "Using Relational Databases" }, - "modules": { "basic-html": "Basic HTML" }, + "modules": { + "basic-html": "Basic HTML" + }, "module-intros": { "basic-html": { "title": "Basic HTML", @@ -8917,7 +9015,9 @@ "daily-coding-challenge": { "title": "Daily Coding Challenge", "blocks": { - "daily-coding-challenge": { "title": "Daily Coding Challenge" } + "daily-coding-challenge": { + "title": "Daily Coding Challenge" + } } }, "misc-text": { diff --git a/client/i18n/locales/espanol/intro.json b/client/i18n/locales/espanol/intro.json index f7900b1453d..ac51e11d597 100644 --- a/client/i18n/locales/espanol/intro.json +++ b/client/i18n/locales/espanol/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Diseño Web Responsivo", + "title": "Legacy Responsive Web Design V8", "intro": [ "En esta certificación de Diseño Web Adaptativo, aprenderás los lenguajes que los desarrolladores usan para construir páginas web: HTML (Lenguaje de Marcado de Hipertexto) para el contenido, y CSS (hojas de estilo en cascada) para el diseño.", "Primero, crearás una aplicación de fotos de gatos para aprender los conceptos básicos de HTML y CSS. Más adelante, aprenderás técnicas modernas como variables CSS, mediante la construcción de un pingüino, y las mejores prácticas para la accesibilidad mediante la construcción de un sitio de cuestionarios.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Algortimos JavaScript y Estructuras de Datos", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Mientras HTML y CSS controlan el contenido y el estilo de una página, JavaScript se utiliza para hacerlo interactivo. En la certificación Algoritmos de JavaScript y Estructuras de Datos, aprenderás los fundamentos de JavaScript incluyendo variables, arreglos, objetos, bucles y funciones.", "Una vez que tengas los fundamentos, aplicarás ese conocimiento creando algoritmos para manipular cadenas, factorizar números e incluso calcular la órbita de la Estación Espacial Internacional.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "Algoritmos y estructuras de datos de JavaScript", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Los desarrolladores usan HTML y CSS para controlar el contenido y estilo de una página. También usan JavaScript para hacer interactiva la página.", "En esta certificación de Algoritmos de JavaScript y Estructura de Datos, aprenderas los fundamentos de JavaScript, como variables, arreglos, objetos, bucles, funciones, DOM y mucho más.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Librerías de desarrollo de la interfaz", + "title": "Front End Development Libraries V8", "intro": [ "Ahora que estás familiarizado con HTML, CSS y JavaScript, mejora tus habilidades aprendiendo algunas de las librerías de interfaz más populares en la industria.", "En la certificación de bibliotecas de desarrollo front-end, aprenderá cómo diseñar su sitio rápidamente con Bootstrap. También aprenderá cómo agregar lógica a sus estilos CSS y extenderlos con Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Visualización de Datos", + "title": "Data Visualization V8", "intro": [ "Los datos están a nuestro alrededor, pero no significan mucho si no tienen forma o contexto.", "En la certificación Visualización de Datos, construirás diagramas, gráficos, y mapas para presentar diferentes tipos de datos utilizando la biblioteca D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Base de datos Relacionales", + "title": "Relational Database V8", "intro": [ "Para estos cursos, usarás herramientas reales de desarrollador y software incluyendo código VS, PostgreSQL, y la línea de comandos Linux / Unix para completar tutoriales interactivos y construir proyectos.", "Estos cursos empiezan con comandos básicos de Base. Utilizando la terminal, aprenderá todo, desde navegar y manipular un sistema de archivos, programar en Bash, hasta el uso avanzado.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Desarrollo Back End y APIs", + "title": "Back End Development and APIs V8", "intro": [ "Hasta este punto, solo has usado JavaScript en la parte de front-end para agregar interactividad a una página, resolver los desafíos de algoritmos o construir un SPA. Pero JavaScript también se puede utilizar en el back-end, o servidor, para construir aplicaciones web completas.", "Hoy en día, una de las formas populares para construir aplicaciones es a través de microservicios, que son pequeñas aplicaciones modulares que trabajan juntas para formar una aplicación más grande.", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json index d5690ea3ed0..41115ee99eb 100644 --- a/client/i18n/locales/espanol/translations.json +++ b/client/i18n/locales/espanol/translations.json @@ -685,6 +685,7 @@ "lab": "Lab", "review": "Review", "quiz": "Quiz", + "cert-project": "Certification Project", "exam": "Exam", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Responsive Web Design", - "responsive-web-design-cert": "Responsive Web Design Certification", - "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures Certification", - "javascript-algorithms-and-data-structures-v8": "JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript Algorithms and Data Structures Certification", - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-cert": "Front End Development Libraries Certification", - "data-visualization": "Data Visualization", - "data-visualization-cert": "Data Visualization Certification", - "relational-database-v8": "Relational Database", - "relational-database-v8-cert": "Relational Database Certification", - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-cert": "Back End Development and APIs Certification", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Quality Assurance", "quality-assurance-v7-cert": "Quality Assurance Certification", "scientific-computing-with-python-v7": "Scientific Computing with Python", @@ -1353,6 +1354,26 @@ "two-questions": "Felicidades por llegar así de lejos. Antes que comiences el examen, por favor responda estas dos preguntas cómo una encuesta." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/german/intro.json b/client/i18n/locales/german/intro.json index 819985da533..736963b8c8e 100644 --- a/client/i18n/locales/german/intro.json +++ b/client/i18n/locales/german/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Responsive Webdesign", + "title": "Legacy Responsive Web Design V8", "intro": [ "In dieser Zertifizierung für responsives Webdesign lernst du die Sprachen, die Entwickler/innen zum Erstellen von Webseiten verwenden: HTML (Hypertext Markup Language) für den Inhalt und CSS (Cascading Style Sheets) für das Design.", "Zunächst baust du eine Katzenfoto-App, um die Grundlagen von HTML und CSS zu erlernen. Später lernst du moderne Techniken wie CSS-Variablen, indem du einen Pinguin baust, und bewährte Praktiken für Barrierefreiheit, indem du eine Quiz-Site erstellst.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Legacy JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Während HTML und CSS den Inhalt und das Styling einer Seite festlegen, wird JavaScript verwendet, um sie interaktiv zu gestalten. In der Zertifizierung \"JavaScript Algorithmen und Datenstrukturen\" lernst du die Grundlagen von JavaScript inklusive Variablen, Arrays, Objekten, Schleifen und Funktionen kennen.", "Sobald du die Grundlagen beherrschst, wendest du dieses Wissen an, indem du Algorithmen erstellst, um Strings zu manipulieren, Zahlen zu faktorisieren und sogar die Umlaufbahn der Internationalen Raumstation zu berechnen.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript-Algorithmen und Datenstrukturen", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Entwickler verwenden HTML und CSS um den Inhalt und das Styling einer Seite zu kontrollieren. Und sie verwenden JavaScript, um diese Seite interaktiv zu gestalten.", "In this JavaScript Algorithm and Data Structures Certification, you'll learn the JavaScript fundamentals like variables, arrays, objects, loops, functions, the DOM and more.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Front-End-Entwicklungsbibliotheken", + "title": "Front End Development Libraries V8", "intro": [ "Jetzt, wo du mit HTML, CSS und JavaScript vertraut bist, kannst du deine Fähigkeiten verbessern, indem du einige der beliebtesten Front-End-Bibliotheken der Branche lernst.", "In der Zertifizierung für Front-End-Entwicklungsbibliotheken lernst du, wie du deine Seite mit Bootstrap schnell gestalten kannst. Du lernst auch, wie du Logik zu deinen CSS-Styles hinzufügen und sie mit Sass erweitern kannst.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Datenvisualisierung", + "title": "Data Visualization V8", "intro": [ "Daten sind überall um uns herum, aber ohne Form und Kontext bedeuten sie nicht viel.", "In der Datenvisualisierung-Zertifizierung erstellst du Diagramme, Grafiken und Karten, um verschiedene Arten von Daten mit der D3.js Bibliothek zu präsentieren.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Relational Database", + "title": "Relational Database V8", "intro": [ "In diesen Kursen verwendest du echte Entwickler-Tools und Software wie VS Code, PostgreSQL und die Linux/Unix-Kommandozeile, um interaktive Tutorials zu absolvieren und Projekte zu erstellen.", "Diese Kurse beginnen mit den grundlegenden Bash-Befehlen. Über das Terminal lernst du alles von der Navigation und dem Umgang mit dem Dateisystem über das Skripting in der Bash bis hin zur fortgeschrittenen Nutzung.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Back-End Entwicklung und APIs", + "title": "Back End Development and APIs V8", "intro": [ "Bis zu diesem Punkt hast du JavaScript nur im Front-End verwendet, um einer Seite Interaktivität hinzuzufügen, Aufgaben mit Algorithmen zu lösen oder eine SPA zu bauen. Aber JavaScript kann auch im Back-End, also auf dem Server, verwendet werden, um ganze Webanwendungen zu erstellen.", "Heutzutage ist eine der beliebtesten Arten, Anwendungen zu erstellen, Microservices. Das sind kleine, modulare Anwendungen, die zusammenarbeiten und ein größeres Ganzes bilden.", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/german/translations.json b/client/i18n/locales/german/translations.json index 9165ae3dc46..b2f63a7fa9c 100644 --- a/client/i18n/locales/german/translations.json +++ b/client/i18n/locales/german/translations.json @@ -685,6 +685,7 @@ "lab": "Lab", "review": "Review", "quiz": "Quiz", + "cert-project": "Certification Project", "exam": "Exam", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Responsive Web Design", - "responsive-web-design-cert": "Responsive Web Design Certification", - "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures Certification", - "javascript-algorithms-and-data-structures-v8": "JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript Algorithms and Data Structures Certification", - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-cert": "Front End Development Libraries Certification", - "data-visualization": "Data Visualization", - "data-visualization-cert": "Data Visualization Certification", - "relational-database-v8": "Relational Database", - "relational-database-v8-cert": "Relational Database Certification", - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-cert": "Back End Development and APIs Certification", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Quality Assurance", "quality-assurance-v7-cert": "Quality Assurance Certification", "scientific-computing-with-python-v7": "Scientific Computing with Python", @@ -1353,6 +1354,26 @@ "two-questions": "Congratulations on getting this far. Before you can start the exam, please answer these two short survey questions." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/italian/intro.json b/client/i18n/locales/italian/intro.json index b18e9dd0706..c4ac763bb76 100644 --- a/client/i18n/locales/italian/intro.json +++ b/client/i18n/locales/italian/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Web Design Responsivo", + "title": "Legacy Responsive Web Design V8", "intro": [ "In questo corso certificato di Web Design Responsivo imparerai i linguaggi che gli sviluppatori utilizzano per creare le pagine web. HTML (Hypertext Markup Language) per i contenuti e CSS (Cascading Style Sheets) per il design.", "Per prima cosa, costruirai un'app con foto di gatti per imparare le basi di HTML e CSS. Poi apprenderai tecniche più moderne come le variabili in CSS costruendo un pinguino, e le migliori pratiche per l'accessibilità costruendo un quiz.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Legacy JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Mentre HTML e CSS controllano il contenuto e lo stile della pagina, JavaScript viene utilizzato per renderla interattiva. Nella Certificazione Algoritmi e Strutture Dati in JavaScript, imparerai le basi di JavaScript, tra cui variabili, array, oggetti, loop e funzioni.", "Una volta che avrai appreso le basi, applicherai queste conoscenze creando algoritmi per manipolare stringhe, fattorizzare numeri, e persino calcolare l'orbita della Stazione Spaziale Internazionale.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Developers use HTML and CSS to control the content and styling of a page. And they use JavaScript to make that page interactive.", "Nella certificazione JavaScript Algoritmi e Strutture di Dati, imparerai i fondamenti di JavaScript come variabili, array, oggetti, loop, funzioni, il DOM e altro ancora.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Librerie di sviluppo Front End", + "title": "Front End Development Libraries V8", "intro": [ "Ora che hai familiarità con HTML, CSS, e JavaScript, aumenta le tue competenze conoscendo alcune delle più popolari librerie di front-end del settore.", "Nella Certificazione Librerie di Sviluppo Front End, imparerai come definire rapidamente lo stile del tuo sito con Bootstrap. Imparerai anche come aggiungere la logica ai tuoi stili CSS e ad estenderli con Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Data Visualization", + "title": "Data Visualization V8", "intro": [ "I dati ci circondano, ma non ci dicono molto senza forma o contesto.", "Nella Certificazione Visualizzazione dei Dati, costruirai diagrammi, grafici e mappe per presentare diversi tipi di dati con la libreria D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Database Relazionali", + "title": "Relational Database V8", "intro": [ "Per questi corsi, userai veri strumenti e software da sviluppatori inclusi VSCode, PostgreSQL, e la riga di comando Linux / Unix per completare i tutorial interattivi e creare progetti.", "Questi corsi iniziano con comandi Bash di base. Usando il terminale imparerai tutto da navigare e manipolare il sistema dei file, creare script in bash, tutto quanto fino all'uso avanzato.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Sviluppo Back End e API", + "title": "Back End Development and APIs V8", "intro": [ "Fino a questo punto, hai usato solo JavaScript sul front-end per aggiungere interattività a una pagina, risolvere sfide algoritmiche o costruire una Single Page Application. Ma JavaScript può essere utilizzato anche nel backend (cioè lato server), per costruire intere applicazioni web.", "Oggi, uno dei modi più popolari per costruire applicazioni è attraverso i microservizi, che sono piccole applicazioni modulari che lavorano insieme per formare qualcosa di più grande.", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/italian/translations.json b/client/i18n/locales/italian/translations.json index 53b11671bd0..d35820f863e 100644 --- a/client/i18n/locales/italian/translations.json +++ b/client/i18n/locales/italian/translations.json @@ -685,6 +685,7 @@ "lab": "Lab", "review": "Review", "quiz": "Quiz", + "cert-project": "Certification Project", "exam": "Exam", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Responsive Web Design", - "responsive-web-design-cert": "Responsive Web Design Certification", - "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures Certification", - "javascript-algorithms-and-data-structures-v8": "JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript Algorithms and Data Structures Certification", - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-cert": "Front End Development Libraries Certification", - "data-visualization": "Data Visualization", - "data-visualization-cert": "Data Visualization Certification", - "relational-database-v8": "Relational Database", - "relational-database-v8-cert": "Relational Database Certification", - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-cert": "Back End Development and APIs Certification", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Quality Assurance", "quality-assurance-v7-cert": "Quality Assurance Certification", "scientific-computing-with-python-v7": "Scientific Computing with Python", @@ -1353,6 +1354,26 @@ "two-questions": "Congratulazioni per essere arrivato fin qui. Prima di iniziare l'esame, per favore rispondi a queste due brevi domande." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/japanese/intro.json b/client/i18n/locales/japanese/intro.json index 5179d30fb77..a2c67938395 100644 --- a/client/i18n/locales/japanese/intro.json +++ b/client/i18n/locales/japanese/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "レスポンシブウェブデザイン", + "title": "Legacy Responsive Web Design V8", "intro": [ "このレスポンシブウェブデザイン認定講座では、開発者がウェブページを実装するために使う言語について学びます。ページの内容には HTML (Hypertext Markup Language)、デザインには CSS (Cascading Style Sheets) を使用します。", "初めに、HTML と CSS の基礎を学ぶために、猫の写真アプリを作ります。その後、ペンギンの絵を作りながら CSS 変数等のモダンなテクニックを学びます。そしてクイズサイトを作りながらアクセシビリティのベストプラクティスを学びます。", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "(レガシー) JavaScript アルゴリズムとデータ構造", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "HTML と CSS はページの内容とスタイルを制御しますが、JavaScript はそれを対話式にすることを手掛けます。JavaScript アルゴリズムとデータ構造認定講座では、変数、配列、オブジェクト、ループ、そして関数を含む JavaScript の基礎を学習します。", "いったん基礎を習得すれば、その知識を応用して文字列を扱うためのアルゴリズムを作成したり、数の階乗を計算したり、さらに国際宇宙ステーションの軌道を計算することもできます。", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Developers use HTML and CSS to control the content and styling of a page. And they use JavaScript to make that page interactive.", "In this JavaScript Algorithm and Data Structures Certification, you'll learn the JavaScript fundamentals like variables, arrays, objects, loops, functions, the DOM and more.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "フロントエンド開発ライブラリ", + "title": "Front End Development Libraries V8", "intro": [ "今やあなたは HTML、CSS、そして JavaScript に精通しているので、業界内で最も一般的なフロントエンドライブラリのいくつかを学習することで技能を向上させましょう。", "フロントエンド開発ライブラリ認定講座では、Bootstrap でサイトを手軽に整える方法を学習します。Sass を利用して、CSS スタイルに論理的な処理を加えて拡張する方法についても学習します。", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "データ可視化", + "title": "Data Visualization V8", "intro": [ "データは至る所にありますが、形状と文脈なしではあまり意味を表しません。", "データ可視化認定講座では、D3.js ライブラリを使用して、様々な種類のデータを表すチャート、グラフ、およびマップを構築します。", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "リレーショナルデータベース", + "title": "Relational Database V8", "intro": [ "このコースでは、VS Code、PostgreSQL、そして Linux / Unix コマンドラインを含む本格的な開発者ツールとソフトウェアを使用して、インタラクティブなチュートリアルを完了し、プロジェクトを構築します。", "これらのコースは基本的な Bash コマンドから始まります。ターミナルを使用して、ファイルシステムの移動や操作から、Bash 内でのスクリプト、幅広い高度な使用法まで、すべてを学習します。", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "バックエンド開発と API", + "title": "Back End Development and APIs V8", "intro": [ "ここまでは、JavaScript をフロントエンドで使用して、ページに対話性を加えたり、アルゴリズムチャレンジを解決したり、SPA を構築したりしてきました。しかし JavaScript は、バックエンド (サーバー) でも使用でき、ウェブアプリケーション全体を構築することができます。", "現在、アプリケーションを構築する一般的な方法の一つはマイクロサービスを使用する方法です。これは、小さなモジュール式のアプリケーションを組み合わせて、より大きな全体を形成する方法です。", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/japanese/translations.json b/client/i18n/locales/japanese/translations.json index 76779f9e813..0e727ef78e7 100644 --- a/client/i18n/locales/japanese/translations.json +++ b/client/i18n/locales/japanese/translations.json @@ -685,6 +685,7 @@ "lab": "ラボ", "review": "復習", "quiz": "クイズ", + "cert-project": "Certification Project", "exam": "試験", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "レスポンシブウェブデザイン", - "responsive-web-design-cert": "レスポンシブウェブデザイン認定証", - "javascript-algorithms-and-data-structures": "旧 JavaScript アルゴリズムとデータ構造", - "javascript-algorithms-and-data-structures-cert": "旧 JavaScript アルゴリズムとデータ構造認定証", - "javascript-algorithms-and-data-structures-v8": "JavaScript アルゴリズムとデータ構造", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript アルゴリズムとデータ構造認定証", - "front-end-development-libraries": "フロントエンド開発ライブラリ", - "front-end-development-libraries-cert": "フロントエンド開発ライブラリ認定証", - "data-visualization": "データ可視化", - "data-visualization-cert": "データ可視化認定証", - "relational-database-v8": "リレーショナルデータベース", - "relational-database-v8-cert": "リレーショナルデータベース認定証", - "back-end-development-and-apis": "バックエンド開発と API", - "back-end-development-and-apis-cert": "バックエンド開発と API 認定証", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "品質保証", "quality-assurance-v7-cert": "品質保証認定証", "scientific-computing-with-python-v7": "Python を用いた科学計算", @@ -1353,6 +1354,26 @@ "two-questions": "ここまでのコースの完了、おめでとうございます。試験を始める前に、こちらのアンケートにご協力ください。(2 問)" } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/korean/intro.json b/client/i18n/locales/korean/intro.json index bab21a7890d..1f083a14220 100644 --- a/client/i18n/locales/korean/intro.json +++ b/client/i18n/locales/korean/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Responsive Web Design", + "title": "Legacy Responsive Web Design V8", "intro": [ "In this Responsive Web Design Certification, you'll learn the languages that developers use to build webpages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design.", "First, you'll build a cat photo app to learn the basics of HTML and CSS. Later, you'll learn modern techniques like CSS variables by building a penguin, and best practices for accessibility by building a quiz site.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Legacy JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "While HTML and CSS control the content and styling of a page, JavaScript is used to make it interactive. In the JavaScript Algorithm and Data Structures Certification, you'll learn the fundamentals of JavaScript including variables, arrays, objects, loops, and functions.", "Once you have the fundamentals down, you'll apply that knowledge by creating algorithms to manipulate strings, factorialize numbers, and even calculate the orbit of the International Space Station.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Developers use HTML and CSS to control the content and styling of a page. And they use JavaScript to make that page interactive.", "In this JavaScript Algorithm and Data Structures Certification, you'll learn the JavaScript fundamentals like variables, arrays, objects, loops, functions, the DOM and more.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Front End Development Libraries", + "title": "Front End Development Libraries V8", "intro": [ "Now that you're familiar with HTML, CSS, and JavaScript, level up your skills by learning some of the most popular front end libraries in the industry.", "In the Front End Development Libraries Certification, you'll learn how to style your site quickly with Bootstrap. You'll also learn how to add logic to your CSS styles and extend them with Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Data Visualization", + "title": "Data Visualization V8", "intro": [ "Data is all around us, but it doesn't mean much without shape or context.", "In the Data Visualization Certification, you'll build charts, graphs, and maps to present different types of data with the D3.js library.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Relational Database", + "title": "Relational Database V8", "intro": [ "For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.", "These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Back End Development and APIs", + "title": "Back End Development and APIs V8", "intro": [ "Until this point, you've only used JavaScript on the front end to add interactivity to a page, solve algorithm challenges, or build an SPA. But JavaScript can also be used on the back end, or server, to build entire web applications.", "Today, one of the popular ways to build applications is through microservices, which are small, modular applications that work together to form a larger whole.", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/korean/translations.json b/client/i18n/locales/korean/translations.json index d0473bb08bc..d02b1e796a1 100644 --- a/client/i18n/locales/korean/translations.json +++ b/client/i18n/locales/korean/translations.json @@ -685,6 +685,7 @@ "lab": "Lab", "review": "Review", "quiz": "Quiz", + "cert-project": "Certification Project", "exam": "Exam", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Responsive Web Design", - "responsive-web-design-cert": "Responsive Web Design Certification", - "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures Certification", - "javascript-algorithms-and-data-structures-v8": "JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript Algorithms and Data Structures Certification", - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-cert": "Front End Development Libraries Certification", - "data-visualization": "Data Visualization", - "data-visualization-cert": "Data Visualization Certification", - "relational-database-v8": "Relational Database", - "relational-database-v8-cert": "Relational Database Certification", - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-cert": "Back End Development and APIs Certification", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Quality Assurance", "quality-assurance-v7-cert": "Quality Assurance Certification", "scientific-computing-with-python-v7": "Scientific Computing with Python", @@ -1353,6 +1354,26 @@ "two-questions": "Congratulations on getting this far. Before you can start the exam, please answer these two short survey questions." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/portuguese/intro.json b/client/i18n/locales/portuguese/intro.json index 9e31001e26e..3fca6cebf48 100644 --- a/client/i18n/locales/portuguese/intro.json +++ b/client/i18n/locales/portuguese/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Design responsivo para a web", + "title": "Legacy Responsive Web Design V8", "intro": [ "Nessa certificação de Design responsivo para a web, você aprenderá as linguagens que os desenvolvedores usam para construir sites: HTML (Linguagem de Marcação de Hipertexto) para o conteúdo e CSS (Folha de Estilo em Cascata) para o design.", "Primeiro, você vai construir um aplicativo de fotos de gato para aprender o básico de HTML e CSS. Mais tarde, você aprenderá técnicas modernas como variáveis CSS construindo um pinguim, e melhores práticas de acessibilidade criando um site de questionário.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Algoritmos e estrutura de dados em JavaScript legado", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Enquanto o HTML e o CSS controlam o conteúdo e o estilo de uma página, o JavaScript é usado para torná-lo interativo. Na certificação de Algoritmos e Estruturas de Dados em JavaScript, você aprenderá os fundamentos do JavaScript, incluindo variáveis, arrays, objetos, laços e funções.", "Assim que souber os fundamentos abaixo, você aplicará esse conhecimento, criando algoritmos para manipular strings, fatorar números e até mesmo calcular a órbita da Estação Espacial Internacional.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "Algoritmos em JavaScript e Estruturas de Dados", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Desenvolvedores usam HTML e CSS para controlar os componentes e estilizar a página. Eles também usam o JavaScript para tornar essa página interativa.", "Neste certificado de Algoritmos e estruturas de dados em JavaScript, você aprenderá os fundamentos de JavaScript como variáveis, arrays, objetos, laços, funções, o DOM e mais.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Bibliotecas de desenvolvimento em front-end", + "title": "Front End Development Libraries V8", "intro": [ "Agora que você está familiarizado com HTML, CSS e JavaScript, melhore suas habilidades aprendendo algumas das bibliotecas front-end mais populares do setor.", "Na certificação de bibliotecas de desenvolvimento em front-end, você aprenderá a estilizar seu site rapidamente com Bootstrap. Você também aprenderá a adicionar a lógica aos seus estilos CSS e a ampliá-los com Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Visualização de dados", + "title": "Data Visualization V8", "intro": [ "Os dados estão ao nosso redor, mas isso não quer dizer muita coisa se eles não tiverem forma ou contexto.", "Na certificação de visualização de dados, você criará tabelas, gráficos e mapas para apresentar diferentes tipos de dados com a biblioteca D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Bancos de dados relacionais", + "title": "Relational Database V8", "intro": [ "Para estes cursos, você usará ferramentas e software reais de desenvolvedor, incluindo o VS Code, PostgreSQL e a linha de comando do Linux/Unix para completar tutoriais interativos e criar projetos.", "Estes cursos começam com comandos básicos do Bash. Usando o terminal, você aprenderá tudo, de navegar e manipular um sistema de arquivos e fazer scripts no Bash, até usos mais avançados.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "APIs e desenvolvimento de back-end", + "title": "Back End Development and APIs V8", "intro": [ "Até esse ponto, você usou JavaScript apenas no front-end para adicionar interatividade a uma página, resolver desafios de algoritmos ou construir uma SPA. Mas o JavaScript também pode ser usado no back-end, ou servidor, para construir aplicações web inteiras.", "Hoje em dia, uma das formas populares de se criar aplicações é através do uso de microsserviços, que são pequenas aplicações modulares que trabalham em conjunto para formar uma aplicação maior inteira.", @@ -2085,6 +2085,12 @@ "Nestes cursos, você aprenderá sobre fundamentos do HTML, como o elemento div, os atributos id e class, o boilerplate HTML, entidades HTML, e outros conceitos." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Entendendo Como o HTML Afeta o SEO", "intro": [ @@ -3099,9 +3105,9 @@ ] }, "workshop-string-formatter": { - "title": "Build a String Formatter", + "title": "Criar um formatador de strings", "intro": [ - "In this workshop, you will practice working with various string methods including the trim(), toUpperCase() and toLowerCase() methods." + "Neste workshop, você praticará trabalhar com vários métodos de strings, incluindo os métodos trim(), toUpperCase() e toLowerCase()." ] }, "lecture-working-with-string-modification-methods": { @@ -4731,9 +4737,8 @@ "intro": ["Aprenda sobre Compreender Abstração nestas lições."] }, "workshop-discount-calculator": { - "title": "Build a Discount Calculator", + "title": "Criar uma calculadora de descontos", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4857,8 +4862,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Crie um Algoritmo de Caminho mais Curto", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Crie um Conversor de Lista de Adjacência para Matriz", @@ -6365,6 +6372,7 @@ }, "front-end-development-libraries-v9": { "title": "Certificação de Bibliotecas de Desenvolvimento Front-End", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "Este curso ensina as bibliotecas que os desenvolvedores utilizam para criar páginas da web: React, TypeScript, e mais.", "Para conquistar sua Certificação de Bibliotecas de Desenvolvimento Front-End:", @@ -6714,6 +6722,7 @@ }, "python-v9": { "title": "Certificação em Python", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "Este curso ensina os fundamentos da programação em Python.", "Para conquistar sua Certificação em Python:", @@ -7176,6 +7185,7 @@ }, "relational-databases-v9": { "title": "Certificação de Bancos de Dados Relacionais", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "Este curso ensina os fundamentos dos bancos de dados relacionais.", "Para conquistar sua Certificação de Bancos de Dados Relacionais:", @@ -7420,6 +7430,7 @@ }, "back-end-development-and-apis-v9": { "title": "Certificação de Desenvolvimento Back-End e APIs", + "note": "This certification is currently in development and will be available soon.", "intro": [ "Este curso ensina os fundamentos do Desenvolvimento Back-End e APIs.", "Para conquistar sua Certificação de Desenvolvimento Back-End e APIs:", @@ -7536,11 +7547,17 @@ }, "full-stack-developer-v9": { "title": "Currículo de Desenvolvedor Full Stack Certificado", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "Este curso oferece um caminho abrangente para se tornar um Desenvolvedor Full Stack Certificado, cobrindo todas as tecnologias essenciais necessárias para desenvolver aplicações web modernas e escaláveis do início ao fim.", - "Por meio de uma combinação de lições interativas, exercícios de codificação e projetos do mundo real, você dominará o desenvolvimento frontend e backend. Você trabalhará com HTML, CSS e JavaScript para criar interfaces de usuário responsivas, explorará React e TypeScript para aplicações web avançadas e aprenderá a gerenciar dados com bancos de dados relacionais - no backend, você usará Git, Npm, Node.js e Python para criar soluções poderosas do lado do servidor.", - "Ao final deste curso, você terá as habilidades práticas e a experiência para desenvolver aplicações web completas com confiança, preparando-se para uma carreira de sucesso como Desenvolvedor Full Stack.", - "Esta certificação vai exigir uma quantidade substancial de tempo e esforço para ser concluída. Se você começar agora, poderá estar pronto para iniciar o material restante e o exame final quando o lançarmos nos próximos meses." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Exame de Desenvolvedor Full Stack Certificado" @@ -7571,12 +7588,12 @@ "intro": ["Introdução de Espaço Reservado"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Bem-vindo ao A1 Espanhol Profissional", - "es-a1-chapter-letters-and-sounds": "Letras e Sons", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Saudações e Apresentações" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introdução e Visão Geral da Certificação", - "es-a1-module-alphabet-accents-and-punctuation": "Alfabeto, Acentos e Pontuação", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Saudações e Despedidas", "es-a1-module-introducing-yourself": "Apresentando-se", "es-a1-module-first-questions": "Primeiras Perguntas" @@ -7586,9 +7603,9 @@ "note": "Inverno de 2025", "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] }, - "es-a1-module-alphabet-accents-and-punctuation": { - "note": "Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + "es-a1-module-alphabet-and-special-characters": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] }, "es-a1-module-greetings-and-farewells": { "note": "Inverno de 2025", @@ -7636,8 +7653,8 @@ "title": "Pontuação", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Questionário de Alfabeto, Acentos e Pontuação", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7687,6 +7704,22 @@ "es-a1-quiz-first-questions": { "title": "Quiz de Primeiras Perguntas", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/portuguese/translations.json b/client/i18n/locales/portuguese/translations.json index d4c77d4a70c..10646303c4a 100644 --- a/client/i18n/locales/portuguese/translations.json +++ b/client/i18n/locales/portuguese/translations.json @@ -685,6 +685,7 @@ "lab": "Laboratório", "review": "Revisão", "quiz": "Questionário", + "cert-project": "Certification Project", "exam": "Teste", "warm-up": "Aquecimento", "learn": "Aprender", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Design responsivo para a web", - "responsive-web-design-cert": "Certificação de design responsivo para a web", - "javascript-algorithms-and-data-structures": "Algoritmos em JavaScript e Estrutura de Dados edição antiga", - "javascript-algorithms-and-data-structures-cert": "Cerificação Algoritmos em JavaScript e Estrutura de Dados edição antiga", - "javascript-algorithms-and-data-structures-v8": "Algoritmos em JavaScript e Estruturas de Dados", - "javascript-algorithms-and-data-structures-v8-cert": "Certificação de algoritmos em JavaScript e estruturas de dados", - "front-end-development-libraries": "Bibliotecas de desenvolvimento front-end", - "front-end-development-libraries-cert": "Certificação de bibliotecas de desenvolvimento front-end", - "data-visualization": "Visualização de dados", - "data-visualization-cert": "Certificação de visualização de dados", - "relational-database-v8": "Bancos de dados relacionais", - "relational-database-v8-cert": "Certificação de bancos de dados relacionais", - "back-end-development-and-apis": "Desenvolvimento back-end e APIs", - "back-end-development-and-apis-cert": "Certificação de desenvolvimento back-end e APIs", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Garantia de qualidade", "quality-assurance-v7-cert": "Certificação de garantia de qualidade", "scientific-computing-with-python-v7": "Computação científica com Python", @@ -1353,6 +1354,26 @@ "two-questions": "Parabéns por chegar até aqui. Antes de começar o teste, responda a estas duas breves perguntas de pesquisa." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore nosso catálogo", diff --git a/client/i18n/locales/swahili/intro.json b/client/i18n/locales/swahili/intro.json index d51488b3d3c..32317403acc 100644 --- a/client/i18n/locales/swahili/intro.json +++ b/client/i18n/locales/swahili/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Muundo Wa Wavuti Sikivu", + "title": "Legacy Responsive Web Design V8", "intro": [ "Katika Uthibitishaji huu wa Muundo Wa Wavuti Sikivu, utajifunza lugha ambazo watengenezaji wa tovuti hutumia kutengeneza kurasa za wavuti: HTML(Hypertext Markup Language) kwa ajili ya maudhui, na CSS (Cascading Style Sheets) kwa ajili ya muundo.", "Kwanza, utaunda programu ya picha ya paka ili kujifunza misingi ya HTML na CSS. Baadaye, utajifunza mbinu za kisasa kama vile vihifadhi vya CSS kwa kujenga pengwini, na mbinu bora za ufikivu kwa kuunda tovuti ya maswali.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Legacy JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Ingawa HTML na CSS hudhibiti maudhui na mtindo wa ukurasa, JavaScript inatumika kuifanya ishirikiane. Katika Uthibitishaji wa Algorithm ya JavaScript na Miundo ya Data, utajifunza misingi ya JavaScript ikijumuisha variables, arrays, objects, loops, na functions.", "Baada ya kuelewa misingi yake, utatumia maarifa hayo kwa kuunda algoriti ili kudhibiti strings, kurekebisha nambari, na hata kukokotoa mzingo wa Kituo cha Kimataifa cha Anga cha Juu.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "JavaScript Algorithms and Data Structures", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Developers use HTML and CSS to control the content and styling of a page. And they use JavaScript to make that page interactive.", "In this JavaScript Algorithm and Data Structures Certification, you'll learn the JavaScript fundamentals like variables, arrays, objects, loops, functions, the DOM and more.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Front End Development Libraries", + "title": "Front End Development Libraries V8", "intro": [ "Kwa kuwa sasa unafahamu HTML, CSS na JavaScript, ongeza ujuzi wako kwa kujifunza baadhi ya maktaba maarufu za front end kwenye sekta hiyo.", "Katika cheti cha Front End Development Libraries, utajifunza jinsi ya kutengeneza tovuti yako haraka na Bootstrap. Pia utajifunza jinsi ya kuongeza mantiki kwenye mitindo yako ya CSS na kuiendeleza kwa Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Data Visualization", + "title": "Data Visualization V8", "intro": [ "Data iko pande zote, lakini haimaanishi mengi bila umbo au muktadha.", "Katika Cheti cha Data Visualization, utaunda chati, grafu na ramani ili kuwasilisha aina tofauti za data kwenye maktaba ya D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Relational Database", + "title": "Relational Database V8", "intro": [ "Kwa kozi hizi, utatumia zana na programu halisi za wasanidi programu ikijumuisha VS Code, PostgreSQL, na mstari wa amri wa Linux / Unix ili kukamilisha mafunzo shirikishi na kujenga miradi.", "Kozi hizi huanza na amri za kimsingi za Bash. Kwa kutumia terminal, utajifunza kila kitu kutoka kwa kusogeza na kudhibiti mfumo wa faili, na uandishi katika Bash, hadi utumiaji wa hali ya juu.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Back End Development and APIs", + "title": "Back End Development and APIs V8", "intro": [ "Hadi kufikia hatua hii, umetumia JavaScript iliyo upande wa mbele pekee ili kuongeza mwingiliano kwenye ukurasa, kutatua changamoto za kanuni au kuunda SPA. Lakini JavaScript pia inaweza kutumika upande wa nyuma, au seva, kuunda programu nzima za wavuti.", "Leo, mojawapo ya njia maarufu za kuunda programu ni kupitia huduma ndogo, ambazo ni ndogo, programu ambazo kwa kawaida hufanya kazi pamoja ili kuunda nzima zaidi.", @@ -2087,6 +2087,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4691,7 +4697,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4815,8 +4820,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Build a Shortest Path Algorithm", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6289,6 +6296,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6630,6 +6638,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7088,6 +7097,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7322,6 +7332,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7438,11 +7449,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7471,12 +7488,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7486,7 +7503,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7536,8 +7553,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7587,6 +7604,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/swahili/translations.json b/client/i18n/locales/swahili/translations.json index f053f6b768c..cc5a8ce60a9 100644 --- a/client/i18n/locales/swahili/translations.json +++ b/client/i18n/locales/swahili/translations.json @@ -685,6 +685,7 @@ "lab": "Lab", "review": "Review", "quiz": "Quiz", + "cert-project": "Certification Project", "exam": "Exam", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Responsive Web Design", - "responsive-web-design-cert": "Responsive Web Design Certification", - "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures Certification", - "javascript-algorithms-and-data-structures-v8": "JavaScript Algorithms and Data Structures", - "javascript-algorithms-and-data-structures-v8-cert": "JavaScript Algorithms and Data Structures Certification", - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-cert": "Front End Development Libraries Certification", - "data-visualization": "Data Visualization", - "data-visualization-cert": "Data Visualization Certification", - "relational-database-v8": "Relational Database", - "relational-database-v8-cert": "Relational Database Certification", - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-cert": "Back End Development and APIs Certification", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Quality Assurance", "quality-assurance-v7-cert": "Quality Assurance Certification", "scientific-computing-with-python-v7": "Scientific Computing with Python", @@ -1353,6 +1354,26 @@ "two-questions": "Congratulations on getting this far. Before you can start the exam, please answer these two short survey questions." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Explore our Catalog", diff --git a/client/i18n/locales/ukrainian/intro.json b/client/i18n/locales/ukrainian/intro.json index d2ba6bff294..cbf605c6d2f 100644 --- a/client/i18n/locales/ukrainian/intro.json +++ b/client/i18n/locales/ukrainian/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Адаптивний вебдизайн", + "title": "Legacy Responsive Web Design V8", "intro": [ "В сертифікації «Адаптивний вебдизайн» ви вивчите мови, які розробники використовують для створення вебсторінок: HTML (мова розмітки гіпертексту) для вмісту та CSS (каскадні таблиці стилів) для дизайну.", "Спочатку ви створите застосунок із фотографіями котів, аби вивчити основи HTML та CSS. Пізніше ви опануєте сучасні методи, такі як змінні CSS, завдяки створенню пінгвіна, а також створите вікторину, щоб опанувати доступність.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Алгоритми JavaScript та структури даних (застаріла версія)", + "title": "Legacy JavaScript Algorithms and Data Structures V7", "intro": [ "Якщо HTML та CSS відповідають за вміст і стилізацію сторінки, то JavaScript робить її інтерактивною. У сертифікації «Алгоритми JavaScript та структури даних» ви вивчите основи JavaScript, включно зі змінними, масивами, об’єктами, циклами та функціями.", "Як тільки ви вивчите основи, ви почнете застосовувати ці знання, створюючи алгоритми, щоб уміло маніпулювати рядками, факторизувати числа, і навіть зможете обчислити орбіту міжнародної космічної станції.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "Алгоритми та структури даних JavaScript", + "title": "Legacy JavaScript Algorithms and Data Structures V8", "intro": [ "Розробники використовують HTML та CSS, щоб контролювати вміст та стилізувати сторінку, а JavaScript — щоб зробити цю сторінку інтерактивною.", "У сертифікації «Алгоритми JavaScript та структури даних» ви вивчите основи JavaScript, включно зі змінними, масивами, об’єктами, циклами, функціями, об’єктною моделлю документа та багато іншого.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Бібліотеки Front End", + "title": "Front End Development Libraries V8", "intro": [ "Тепер, коли ви вже знайомі з HTML, CSS та JavaScript, піднімімо ваш рівень навичок, вивчаючи декілька найбільш популярних бібліотек верстки в галузі.", "У сертифікації «Бібліотеки Front End» ви навчитеся швидко стилізувати свій сайт за допомогою Bootstrap. Також ви навчитеся покращувати свої стилі CSS та розширювати їх за допомогою Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Візуалізація даних", + "title": "Data Visualization V8", "intro": [ "Дані повсюди, але це не означає, що більшість з них без форми чи контексту.", "У сертифікації «Візуалізація даних» ви створите діаграми, графіки та карти, що показують різні типи даних, за допомогою бібліотеки D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Реляційна база даних", + "title": "Relational Database V8", "intro": [ "У цих курсах ви використовуватимете реальні інструменти розробника та програмне забезпечення, включно з VS Code, PostgreSQL та командним рядком Linux / Unix для завершення інтерактивних уроків і створення проєктів.", "Ці курси починаються з основних команд Bash. За допомогою терміналу ви навчитеся усього необхідного (від навігації та маніпуляції файловою системою, написання скрипту в Bash до просунутого використання).", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Розробка Back End та API", + "title": "Back End Development and APIs V8", "intro": [ "До цього моменту ви використовували JavaScript тільки для front end, аби зробити вебсторінку інтерактивнішою, розв’язати завдання з алгоритмами, або створити SPA. Але JavaScript можна використовувати й у back end, або на сервері, для створення цілих вебзастосунків.", "Сьогодні один із найпопулярніших способів створення застосунків — за допомогою мікрослужб, які є маленькими модульними застосунками та разом формують єдине ціле.", @@ -2073,6 +2073,12 @@ "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." ] }, + "workshop-bookstore-page": { + "title": "Build a Bookstore Page", + "intro": [ + "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + ] + }, "lecture-understanding-how-html-affects-seo": { "title": "Understanding How HTML Affects SEO", "intro": [ @@ -4675,7 +4681,6 @@ "workshop-discount-calculator": { "title": "Build a Discount Calculator", "intro": [ - "Build a Discount Calculator", "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." ] }, @@ -4797,8 +4802,10 @@ ] }, "workshop-shortest-path-algorithm": { - "title": "Створіть алгоритм найкоротшого шляху", - "intro": [""] + "title": "Implement the Shortest Path Algorithm", + "intro": [ + "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + ] }, "lab-adjacency-list-to-matrix-converter": { "title": "Build an Adjacency List to Matrix Converter", @@ -6275,6 +6282,7 @@ }, "front-end-development-libraries-v9": { "title": "Front End Development Libraries Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", "To earn your Front End Development Libraries Certification:", @@ -6616,6 +6624,7 @@ }, "python-v9": { "title": "Python Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of Python programming.", "To earn your Python Certification:", @@ -7074,6 +7083,7 @@ }, "relational-databases-v9": { "title": "Relational Databases Certification", + "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", "intro": [ "This course teaches you the fundamentals of relational databases.", "To earn your Relational Databases Certification:", @@ -7308,6 +7318,7 @@ }, "back-end-development-and-apis-v9": { "title": "Back End Development and APIs Certification", + "note": "This certification is currently in development and will be available soon.", "intro": [ "This course teaches you the fundamentals of back end development and APIs.", "To earn your Back End Development and APIs Certification:", @@ -7424,11 +7435,17 @@ }, "full-stack-developer-v9": { "title": "Certified Full Stack Developer Curriculum", + "note": "If you were previously working through our full stack curriculum, don't worry - you're progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", "intro": [ - "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.", - "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.", - "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.", - "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months." + "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", + "To qualify for the exam, you must earn the following certifications:", + "- Responsive Web Design Certification", + "- JavaScript Certification", + "- Front End Development Libraries Certification", + "- Python Certification", + "- Relational Databases Certification", + "- Back End Development and APIs Certification", + "Pass the exam to earn your Full Stack Developer Certification." ], "chapters": { "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" @@ -7457,12 +7474,12 @@ "intro": ["Placeholder intro"], "chapters": { "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-letters-and-sounds": "Letters and Sounds", + "es-a1-chapter-the-spanish-alphabet": "The Spanish Alphabet", "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions" }, "modules": { "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation", + "es-a1-module-alphabet-and-special-characters": "The Alphabet and Special Characters", "es-a1-module-greetings-and-farewells": "Greetings and Farewells", "es-a1-module-introducing-yourself": "Introducing Yourself", "es-a1-module-first-questions": "First Questions" @@ -7472,7 +7489,7 @@ "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, - "es-a1-module-alphabet-accents-and-punctuation": { + "es-a1-module-alphabet-and-special-characters": { "note": "Coming Winter 2025", "intro": ["PLACEHOLDER: Write the module intro here."] }, @@ -7522,8 +7539,8 @@ "title": "Punctuation", "intro": ["", ""] }, - "es-a1-quiz-alphabet-accent-and-punctuation-quiz": { - "title": "Alphabet, Accent and Punctuation Quiz", + "es-a1-quiz-the-alphabet": { + "title": "The Spanish Alphabet Quiz", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { @@ -7573,6 +7590,22 @@ "es-a1-quiz-first-questions": { "title": "First Questions Quiz", "intro": ["", ""] + }, + "es-a1-learn-vowels": { + "title": "Vowels", + "intro": ["", ""] + }, + "es-a1-learn-consonants-and-special-characters": { + "title": "Consonants and Special Characters", + "intro": ["", ""] + }, + "es-a1-review-the-alphabet": { + "title": "The Spanish Alphabet Review", + "intro": ["", ""] + }, + "es-a1-practice-the-alphabet": { + "title": "The Spanish Alphabet Practice", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/ukrainian/translations.json b/client/i18n/locales/ukrainian/translations.json index ca89420477c..176d229a15a 100644 --- a/client/i18n/locales/ukrainian/translations.json +++ b/client/i18n/locales/ukrainian/translations.json @@ -685,6 +685,7 @@ "lab": "Лабораторна робота", "review": "Повторення", "quiz": "Тест", + "cert-project": "Certification Project", "exam": "Екзамен", "warm-up": "Warm-up", "learn": "Learn", @@ -1194,20 +1195,20 @@ } }, "title": { - "responsive-web-design": "Адаптивний вебдизайн", - "responsive-web-design-cert": "Сертифікація «Адаптивний вебдизайн»", - "javascript-algorithms-and-data-structures": "Алгоритми та структури даних JavaScript (стара версія)", - "javascript-algorithms-and-data-structures-cert": "Сертифікація «Алгоритми та структури даних JavaScript» (стара версія)", - "javascript-algorithms-and-data-structures-v8": "Алгоритми та структури даних JavaScript", - "javascript-algorithms-and-data-structures-v8-cert": "Сертифікація «Алгоритми та структури даних JavaScript»", - "front-end-development-libraries": "Бібліотеки Front End", - "front-end-development-libraries-cert": "Сертифікація «Бібліотеки Front End»", - "data-visualization": "Візуалізація даних", - "data-visualization-cert": "Сертифікація «Візуалізація даних»", - "relational-database-v8": "Реляційна база даних", - "relational-database-v8-cert": "Сертифікація «Реляційна база даних»", - "back-end-development-and-apis": "Розробка Back End та API", - "back-end-development-and-apis-cert": "Сертифікація «Розробка Back End та API»", + "responsive-web-design": "Legacy Responsive Web Design V8", + "responsive-web-design-cert": "Legacy Responsive Web Design V8 Certification", + "javascript-algorithms-and-data-structures": "Legacy JavaScript Algorithms and Data Structures V7", + "javascript-algorithms-and-data-structures-cert": "Legacy JavaScript Algorithms and Data Structures V7 Certification", + "javascript-algorithms-and-data-structures-v8": "Legacy JavaScript Algorithms and Data Structures V8", + "javascript-algorithms-and-data-structures-v8-cert": "Legacy JavaScript Algorithms and Data Structures V8 Certification", + "front-end-development-libraries": "Front End Development Libraries V8", + "front-end-development-libraries-cert": "Front End Development Libraries V8 Certification", + "data-visualization": "Data Visualization V8", + "data-visualization-cert": "Data Visualization V8 Certification", + "relational-database-v8": "Relational Database V8", + "relational-database-v8-cert": "Relational Database V8 Certification", + "back-end-development-and-apis": "Back End Development and APIs V8", + "back-end-development-and-apis-cert": "Back End Development and APIs V8 Certification", "quality-assurance-v7": "Забезпечення якості", "quality-assurance-v7-cert": "Сертифікація «Забезпечення якості»", "scientific-computing-with-python-v7": "Наукові обчислення з Python", @@ -1353,6 +1354,26 @@ "two-questions": "Вітаємо з досягненням цієї точки. Перш ніж розпочати екзамен, будь ласка, дайте відповідь на два короткі запитання." } }, + "speaking-modal": { + "heading": "Speaking Practice", + "repeat-sentence": "Repeat aloud this sentence:", + "play": "Play", + "playing": "Playing...", + "record": "Record", + "stop": "Stop", + "incorrect-words": "Incorrect words: {{words}}.", + "misplaced-words": "Misplaced words: {{words}}.", + "correct-congratulations": "That's correct! Congratulations!", + "very-good": "Very good!", + "try-again": "Try again.", + "no-audio-available": "No audio file available.", + "no-speech-detected": "Recording stopped. No speech detected.", + "speech-recognition-not-supported": "Speech recognition not supported in this browser.", + "recording-speak-now": "Recording. Speak now.", + "recording-stopped-processing": "Recording stopped. Processing...", + "microphone-access-error": "Error: Could not access microphone.", + "speaking-button": "Practice speaking" + }, "curriculum": { "catalog": { "title": "Ознайомтесь з нашим каталогом", diff --git a/client/src/client-only-routes/show-daily-coding-challenge.tsx b/client/src/client-only-routes/show-daily-coding-challenge.tsx index f9605069375..1ce53a4c521 100644 --- a/client/src/client-only-routes/show-daily-coding-challenge.tsx +++ b/client/src/client-only-routes/show-daily-coding-challenge.tsx @@ -91,10 +91,7 @@ function formatChallengeData({ ...baseChallengeProps, helpCategory: 'JavaScript', challengeType: 28, - fields: { - blockName: 'daily-coding-challenge', - tests: javascript.tests - }, + tests: javascript.tests, challengeFiles: [ { name: 'script', @@ -119,10 +116,7 @@ function formatChallengeData({ ...baseChallengeProps, helpCategory: 'Python', challengeType: 29, - fields: { - blockName: 'daily-coding-challenge', - tests: python.tests - }, + tests: python.tests, challengeFiles: [ { fileKey: 'mainpy', diff --git a/client/src/components/formHelpers/form-fields.tsx b/client/src/components/formHelpers/form-fields.tsx index 9a0b696f495..39cc2167bdc 100644 --- a/client/src/components/formHelpers/form-fields.tsx +++ b/client/src/components/formHelpers/form-fields.tsx @@ -25,7 +25,7 @@ export type FormOptions = { isLocalLinkAllowed?: boolean; isSourceCodeLinkRequired?: boolean; required?: string[]; - types?: { [key: string]: string }; + types?: { [key: string]: React.HTMLInputTypeAttribute }; placeholders?: { [key: string]: string }; }; @@ -46,11 +46,12 @@ function FormFields({ formFields, options }: FormFieldsProps): JSX.Element { } = options; const nullOrWarning = ( - value: string, + value: string | undefined, error: unknown, isURL: boolean, name: string ) => { + if (!value) return null; let validationError: string | undefined; if (value && isURL) { try { @@ -82,7 +83,7 @@ function FormFields({ formFields, options }: FormFieldsProps): JSX.Element { validationError || validationWarning) as string; return message ? ( - + {message} @@ -94,8 +95,7 @@ function FormFields({ formFields, options }: FormFieldsProps): JSX.Element { {formFields .filter(formField => !ignored.includes(formField.name)) .map(({ name, label }) => ( - // TODO: verify if the value is always a string - + key={`${name}-field`} name={name}> {({ input: { value, onChange }, meta: { pristine, error } }) => { const placeholder = name in placeholders ? placeholders[name] : ''; @@ -115,8 +115,9 @@ function FormFields({ formFields, options }: FormFieldsProps): JSX.Element { placeholder={placeholder} required={required.includes(name)} rows={4} - type='url' + type={types[name] || 'text'} value={value as string} + aria-describedby={`${name}-message`} data-playwright-test-label={`${name}-form-control`} /> {nullOrWarning( diff --git a/client/src/components/layouts/global.css b/client/src/components/layouts/global.css index c8f6121adaa..0fcd84f8166 100644 --- a/client/src/components/layouts/global.css +++ b/client/src/components/layouts/global.css @@ -89,6 +89,10 @@ hr { border-top: 1px solid var(--quaternary-background); } +rt { + font-size: 0.8rem; +} + #___gatsby { height: 100%; } diff --git a/client/src/components/profile/components/__fixtures__/edges.json b/client/src/components/profile/components/__fixtures__/edges.json index da0b3637fbf..a0ec389b14b 100644 --- a/client/src/components/profile/components/__fixtures__/edges.json +++ b/client/src/components/profile/components/__fixtures__/edges.json @@ -3,8 +3,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility" }, "id": "587d774c367417b2b2512a9c", "title": "Add a Text Alternative to Images for Visually Impaired Accessibility" @@ -15,8 +14,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/add-an-accessible-date-picker", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/add-an-accessible-date-picker" }, "id": "587d778b367417b2b2512aa8", "title": "Add an Accessible Date Picker" @@ -27,8 +25,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/avoid-colorblindness-issues-by-carefully-choosing-colors-that-convey-information", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/avoid-colorblindness-issues-by-carefully-choosing-colors-that-convey-information" }, "id": "587d778f367417b2b2512aad", "title": "Avoid Colorblindness Issues by Carefully Choosing Colors that Convey Information" @@ -39,8 +36,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/avoid-colorblindness-issues-by-using-sufficient-contrast", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/avoid-colorblindness-issues-by-using-sufficient-contrast" }, "id": "587d778f367417b2b2512aac", "title": "Avoid Colorblindness Issues by Using Sufficient Contrast" @@ -51,8 +47,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/give-links-meaning-by-using-descriptive-link-text", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/give-links-meaning-by-using-descriptive-link-text" }, "id": "587d778f367417b2b2512aae", "title": "Give Links Meaning by Using Descriptive Link Text" @@ -63,8 +58,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element" }, "id": "587d7789367417b2b2512aa4", "title": "Improve Accessibility of Audio Content with the audio Element" @@ -75,8 +69,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/improve-chart-accessibility-with-the-figure-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/improve-chart-accessibility-with-the-figure-element" }, "id": "587d778a367417b2b2512aa5", "title": "Improve Chart Accessibility with the figure Element" @@ -87,8 +80,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/improve-form-field-accessibility-with-the-label-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/improve-form-field-accessibility-with-the-label-element" }, "id": "587d778a367417b2b2512aa6", "title": "Improve Form Field Accessibility with the label Element" @@ -99,8 +91,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/improve-readability-with-high-contrast-text", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/improve-readability-with-high-contrast-text" }, "id": "587d778e367417b2b2512aab", "title": "Improve Readability with High Contrast Text" @@ -111,8 +102,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/jump-straight-to-the-content-using-the-main-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/jump-straight-to-the-content-using-the-main-element" }, "id": "587d774e367417b2b2512a9f", "title": "Jump Straight to the Content Using the main Element" @@ -123,8 +113,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/know-when-alt-text-should-be-left-blank", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/know-when-alt-text-should-be-left-blank" }, "id": "587d774c367417b2b2512a9d", "title": "Know When Alt Text Should be Left Blank" @@ -135,8 +124,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/make-elements-only-visible-to-a-screen-reader-by-using-custom-css", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/make-elements-only-visible-to-a-screen-reader-by-using-custom-css" }, "id": "587d778d367417b2b2512aaa", "title": "Make Elements Only Visible to a Screen Reader by Using Custom CSS" @@ -147,8 +135,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/make-links-navigable-with-html-access-keys", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/make-links-navigable-with-html-access-keys" }, "id": "587d7790367417b2b2512aaf", "title": "Make Links Navigable with HTML Access Keys" @@ -159,8 +146,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-footer-landmark", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-footer-landmark" }, "id": "587d7788367417b2b2512aa3", "title": "Make Screen Reader Navigation Easier with the footer Landmark" @@ -171,8 +157,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-header-landmark", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-header-landmark" }, "id": "587d7787367417b2b2512aa1", "title": "Make Screen Reader Navigation Easier with the header Landmark" @@ -183,8 +168,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-nav-landmark", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/make-screen-reader-navigation-easier-with-the-nav-landmark" }, "id": "587d7788367417b2b2512aa2", "title": "Make Screen Reader Navigation Easier with the nav Landmark" @@ -195,8 +179,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/standardize-times-with-the-html5-datetime-attribute", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/standardize-times-with-the-html5-datetime-attribute" }, "id": "587d778c367417b2b2512aa9", "title": "Standardize Times with the HTML5 datetime Attribute" @@ -207,8 +190,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content" }, "id": "587d774d367417b2b2512a9e", "title": "Use Headings to Show Hierarchical Relationships of Content" @@ -219,8 +201,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/use-tabindex-to-add-keyboard-focus-to-an-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/use-tabindex-to-add-keyboard-focus-to-an-element" }, "id": "587d7790367417b2b2512ab0", "title": "Use tabindex to Add Keyboard Focus to an Element" @@ -231,8 +212,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/use-tabindex-to-specify-the-order-of-keyboard-focus-for-several-elements", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/use-tabindex-to-specify-the-order-of-keyboard-focus-for-several-elements" }, "id": "587d7790367417b2b2512ab1", "title": "Use tabindex to Specify the Order of Keyboard Focus for Several Elements" @@ -243,8 +223,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/wrap-content-in-the-article-element", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/wrap-content-in-the-article-element" }, "id": "587d774e367417b2b2512aa0", "title": "Wrap Content in the article Element" @@ -255,8 +234,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-accessibility/wrap-radio-buttons-in-a-fieldset-element-for-better-accessibility", - "blockName": "Applied Accessibility" + "slug": "/learn/responsive-web-design/applied-accessibility/wrap-radio-buttons-in-a-fieldset-element-for-better-accessibility" }, "id": "587d778b367417b2b2512aa7", "title": "Wrap Radio Buttons in a fieldset Element for Better Accessibility" @@ -267,8 +245,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/add-a-box-shadow-to-a-card-like-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/add-a-box-shadow-to-a-card-like-element" }, "id": "587d781b367417b2b2512abe", "title": "Add a box-shadow to a Card-like Element" @@ -279,8 +256,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-background-color-property-of-text", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-background-color-property-of-text" }, "id": "587d781b367417b2b2512abc", "title": "Adjust the background-color Property of Text" @@ -291,8 +267,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-color-of-various-elements-to-complementary-colors", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-color-of-various-elements-to-complementary-colors" }, "id": "587d78a4367417b2b2512ad3", "title": "Adjust the Color of Various Elements to Complementary Colors" @@ -303,8 +278,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-height-of-an-element-using-the-height-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-height-of-an-element-using-the-height-property" }, "id": "587d7791367417b2b2512ab5", "title": "Adjust the Height of an Element Using the height Property" @@ -315,8 +289,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-hover-state-of-an-anchor-tag", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-hover-state-of-an-anchor-tag" }, "id": "587d781d367417b2b2512ac8", "title": "Adjust the Hover State of an Anchor Tag" @@ -327,8 +300,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-hue-of-a-color", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-hue-of-a-color" }, "id": "587d78a4367417b2b2512ad4", "title": "Adjust the Hue of a Color" @@ -339,8 +311,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element" }, "id": "587d781b367417b2b2512abd", "title": "Adjust the Size of a Heading Element Versus a Paragraph Element" @@ -351,8 +322,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-tone-of-a-color", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-tone-of-a-color" }, "id": "587d78a4367417b2b2512ad5", "title": "Adjust the Tone of a Color" @@ -363,8 +333,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-width-of-an-element-using-the-width-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/adjust-the-width-of-an-element-using-the-width-property" }, "id": "587d7791367417b2b2512ab4", "title": "Adjust the Width of an Element Using the width Property" @@ -375,8 +344,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/animate-elements-at-variable-rates", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/animate-elements-at-variable-rates" }, "id": "587d78a8367417b2b2512ae5", "title": "Animate Elements at Variable Rates" @@ -387,8 +355,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/animate-elements-continually-using-an-infinite-animation-count", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/animate-elements-continually-using-an-infinite-animation-count" }, "id": "587d78a8367417b2b2512ae3", "title": "Animate Elements Continually Using an Infinite Animation Count" @@ -399,8 +366,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/animate-multiple-elements-at-variable-rates", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/animate-multiple-elements-at-variable-rates" }, "id": "587d78a8367417b2b2512ae6", "title": "Animate Multiple Elements at Variable Rates" @@ -411,8 +377,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/center-an-element-horizontally-using-the-margin-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/center-an-element-horizontally-using-the-margin-property" }, "id": "587d78a3367417b2b2512ad0", "title": "Center an Element Horizontally Using the margin Property" @@ -423,8 +388,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/change-an-elements-relative-position", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/change-an-elements-relative-position" }, "id": "587d781e367417b2b2512ac9", "title": "Change an Element's Relative Position" @@ -435,8 +399,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/change-animation-timing-with-keywords", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/change-animation-timing-with-keywords" }, "id": "587d78a8367417b2b2512ae7", "title": "Change Animation Timing with Keywords" @@ -447,8 +410,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/change-the-position-of-overlapping-elements-with-the-z-index-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/change-the-position-of-overlapping-elements-with-the-z-index-property" }, "id": "587d78a3367417b2b2512acf", "title": "Change the Position of Overlapping Elements with the z-index Property" @@ -459,8 +421,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-a-gradual-css-linear-gradient", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-a-gradual-css-linear-gradient" }, "id": "587d78a5367417b2b2512ad6", "title": "Create a Gradual CSS Linear Gradient" @@ -471,8 +432,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-a-graphic-using-css", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-a-graphic-using-css" }, "id": "587d78a6367417b2b2512add", "title": "Create a Graphic Using CSS" @@ -483,8 +443,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-a-horizontal-line-using-the-hr-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-a-horizontal-line-using-the-hr-element" }, "id": "587d781b367417b2b2512abb", "title": "Create a Horizontal Line Using the hr Element" @@ -495,8 +454,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html" }, "id": "587d78a6367417b2b2512ade", "title": "Create a More Complex Shape Using CSS and HTML" @@ -507,8 +465,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-movement-using-css-animation", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-movement-using-css-animation" }, "id": "587d78a7367417b2b2512ae1", "title": "Create Movement Using CSS Animation" @@ -519,8 +476,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-texture-by-adding-a-subtle-pattern-as-a-background-image", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-texture-by-adding-a-subtle-pattern-as-a-background-image" }, "id": "587d78a5367417b2b2512ad8", "title": "Create Texture by Adding a Subtle Pattern as a Background Image" @@ -531,8 +487,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property" }, "id": "587d7791367417b2b2512ab3", "title": "Create Visual Balance Using the text-align Property" @@ -543,8 +498,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/create-visual-direction-by-fading-an-element-from-left-to-right", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/create-visual-direction-by-fading-an-element-from-left-to-right" }, "id": "587d78a7367417b2b2512ae2", "title": "Create Visual Direction by Fading an Element from Left to Right" @@ -555,8 +509,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/decrease-the-opacity-of-an-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/decrease-the-opacity-of-an-element" }, "id": "587d781c367417b2b2512abf", "title": "Decrease the Opacity of an Element" @@ -567,8 +520,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/learn-about-complementary-colors", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/learn-about-complementary-colors" }, "id": "587d78a3367417b2b2512ad1", "title": "Learn about Complementary Colors" @@ -579,8 +531,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/learn-about-tertiary-colors", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/learn-about-tertiary-colors" }, "id": "587d78a4367417b2b2512ad2", "title": "Learn about Tertiary Colors" @@ -591,8 +542,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/learn-how-bezier-curves-work", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/learn-how-bezier-curves-work" }, "id": "587d78a9367417b2b2512ae8", "title": "Learn How Bezier Curves Work" @@ -603,8 +553,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/learn-how-the-css-keyframes-and-animation-properties-work", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/learn-how-the-css-keyframes-and-animation-properties-work" }, "id": "587d78a7367417b2b2512adf", "title": "Learn How the CSS @keyframes and animation Properties Work" @@ -615,8 +564,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/lock-an-element-to-its-parent-with-absolute-positioning", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/lock-an-element-to-its-parent-with-absolute-positioning" }, "id": "587d781e367417b2b2512acb", "title": "Lock an Element to its Parent with Absolute Positioning" @@ -627,8 +575,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/lock-an-element-to-the-browser-window-with-fixed-positioning", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/lock-an-element-to-the-browser-window-with-fixed-positioning" }, "id": "587d781e367417b2b2512acc", "title": "Lock an Element to the Browser Window with Fixed Positioning" @@ -639,8 +586,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/make-a-css-heartbeat-using-an-infinite-animation-count", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/make-a-css-heartbeat-using-an-infinite-animation-count" }, "id": "587d78a8367417b2b2512ae4", "title": "Make a CSS Heartbeat using an Infinite Animation Count" @@ -651,8 +597,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/make-motion-more-natural-using-a-bezier-curve", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/make-motion-more-natural-using-a-bezier-curve" }, "id": "587d78a9367417b2b2512aea", "title": "Make Motion More Natural Using a Bezier Curve" @@ -663,8 +608,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/modify-fill-mode-of-an-animation", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/modify-fill-mode-of-an-animation" }, "id": "58a7a6ebf9a6318348e2d5aa", "title": "Modify Fill Mode of an Animation" @@ -675,8 +619,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/move-a-relatively-positioned-element-with-css-offsets", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/move-a-relatively-positioned-element-with-css-offsets" }, "id": "587d781e367417b2b2512aca", "title": "Move a Relatively Positioned Element with CSS Offsets" @@ -687,8 +630,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/push-elements-left-or-right-with-the-float-property", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/push-elements-left-or-right-with-the-float-property" }, "id": "587d78a3367417b2b2512ace", "title": "Push Elements Left or Right with the float Property" @@ -699,8 +641,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-size-for-multiple-heading-elements", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-size-for-multiple-heading-elements" }, "id": "587d781c367417b2b2512ac2", "title": "Set the font-size for Multiple Heading Elements" @@ -711,8 +652,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-size-of-paragraph-text", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-size-of-paragraph-text" }, "id": "587d781c367417b2b2512ac4", "title": "Set the font-size of Paragraph Text" @@ -723,8 +663,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-weight-for-multiple-heading-elements", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/set-the-font-weight-for-multiple-heading-elements" }, "id": "587d781c367417b2b2512ac3", "title": "Set the font-weight for Multiple Heading Elements" @@ -735,8 +674,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/set-the-line-height-of-paragraphs", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/set-the-line-height-of-paragraphs" }, "id": "587d781d367417b2b2512ac5", "title": "Set the line-height of Paragraphs" @@ -747,8 +685,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-a-bezier-curve-to-move-a-graphic", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-a-bezier-curve-to-move-a-graphic" }, "id": "587d78a9367417b2b2512ae9", "title": "Use a Bezier Curve to Move a Graphic" @@ -759,8 +696,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-a-css-linear-gradient-to-create-a-striped-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-a-css-linear-gradient-to-create-a-striped-element" }, "id": "587d78a5367417b2b2512ad7", "title": "Use a CSS Linear Gradient to Create a Striped Element" @@ -771,8 +707,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-css-animation-to-change-the-hover-state-of-a-button", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-css-animation-to-change-the-hover-state-of-a-button" }, "id": "587d78a7367417b2b2512ae0", "title": "Use CSS Animation to Change the Hover State of a Button" @@ -783,8 +718,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-property-skewx-to-skew-an-element-along-the-x-axis", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-property-skewx-to-skew-an-element-along-the-x-axis" }, "id": "587d78a6367417b2b2512adb", "title": "Use the CSS Transform Property skewX to Skew an Element Along the X-Axis" @@ -795,8 +729,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-property-skewy-to-skew-an-element-along-the-y-axis", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-property-skewy-to-skew-an-element-along-the-y-axis" }, "id": "587d78a6367417b2b2512adc", "title": "Use the CSS Transform Property skewY to Skew an Element Along the Y-Axis" @@ -807,8 +740,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-scale-property-to-change-the-size-of-an-element", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-scale-property-to-change-the-size-of-an-element" }, "id": "587d78a5367417b2b2512ad9", "title": "Use the CSS Transform scale Property to Change the Size of an Element" @@ -819,8 +751,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-scale-property-to-scale-an-element-on-hover", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-css-transform-scale-property-to-scale-an-element-on-hover" }, "id": "587d78a5367417b2b2512ada", "title": "Use the CSS Transform scale Property to Scale an Element on Hover" @@ -831,8 +762,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-em-tag-to-italicize-text", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-em-tag-to-italicize-text" }, "id": "587d781a367417b2b2512ab9", "title": "Use the em Tag to Italicize Text" @@ -843,8 +773,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text" }, "id": "587d781b367417b2b2512aba", "title": "Use the s Tag to Strikethrough Text" @@ -855,8 +784,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-strong-tag-to-make-text-bold", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-strong-tag-to-make-text-bold" }, "id": "587d781a367417b2b2512ab7", "title": "Use the strong Tag to Make Text Bold" @@ -867,8 +795,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-text-transform-property-to-make-text-uppercase", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-text-transform-property-to-make-text-uppercase" }, "id": "587d781c367417b2b2512ac0", "title": "Use the text-transform Property to Make Text Uppercase" @@ -879,8 +806,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/applied-visual-design/use-the-u-tag-to-underline-text", - "blockName": "Applied Visual Design" + "slug": "/learn/responsive-web-design/applied-visual-design/use-the-u-tag-to-underline-text" }, "id": "587d781a367417b2b2512ab8", "title": "Use the u Tag to Underline Text" @@ -891,8 +817,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/add-a-negative-margin-to-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/add-a-negative-margin-to-an-element" }, "id": "bad87fee1348bd9aedf08823", "title": "Add a Negative Margin to an Element" @@ -903,8 +828,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/add-borders-around-your-elements", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/add-borders-around-your-elements" }, "id": "bad87fee1348bd9bedf08813", "title": "Add Borders Around Your Elements" @@ -915,8 +839,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element" }, "id": "bad87fee1248bd9aedf08824", "title": "Add Different Margins to Each Side of an Element" @@ -927,8 +850,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element" }, "id": "bad87fee1348bd9aedf08824", "title": "Add Different Padding to Each Side of an Element" @@ -939,8 +861,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/add-rounded-corners-with-border-radius", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/add-rounded-corners-with-border-radius" }, "id": "bad87fee1348bd9aedf08814", "title": "Add Rounded Corners with border-radius" @@ -951,8 +872,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/adjust-the-margin-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/adjust-the-margin-of-an-element" }, "id": "bad87fee1348bd9aedf08822", "title": "Adjust the Margin of an Element" @@ -963,8 +883,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/adjust-the-padding-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/adjust-the-padding-of-an-element" }, "id": "bad88fee1348bd9aedf08825", "title": "Adjust the Padding of an Element" @@ -975,8 +894,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable" }, "id": "5a9d7286424fe3d0e10cad13", "title": "Attach a Fallback value to a CSS Variable" @@ -987,8 +905,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/change-a-variable-for-a-specific-area", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/change-a-variable-for-a-specific-area" }, "id": "5a9d72a1424fe3d0e10cad15", "title": "Change a variable for a specific area" @@ -999,8 +916,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/change-the-color-of-text", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/change-the-color-of-text" }, "id": "bad87fee1348bd9aedf08803", "title": "Change the Color of Text" @@ -1011,8 +927,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/change-the-font-size-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/change-the-font-size-of-an-element" }, "id": "bad87fee1348bd9aedf08806", "title": "Change the Font Size of an Element" @@ -1023,8 +938,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/create-a-custom-css-variable", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/create-a-custom-css-variable" }, "id": "5a9d726c424fe3d0e10cad11", "title": "Create a custom CSS Variable" @@ -1035,8 +949,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/give-a-background-color-to-a-div-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/give-a-background-color-to-a-div-element" }, "id": "bad87fed1348bd9aede07836", "title": "Give a Background Color to a div Element" @@ -1047,8 +960,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/import-a-google-font", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/import-a-google-font" }, "id": "bad87fee1348bd9aedf08807", "title": "Import a Google Font" @@ -1059,8 +971,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks" }, "id": "5b7d72c338cd7e35b63f3e14", "title": "Improve Compatibility with Browser Fallbacks" @@ -1071,8 +982,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/inherit-css-variables", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/inherit-css-variables" }, "id": "5a9d7295424fe3d0e10cad14", "title": "Inherit CSS Variables" @@ -1083,8 +993,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/inherit-styles-from-the-body-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/inherit-styles-from-the-body-element" }, "id": "bad87fee1348bd9aedf08746", "title": "Inherit Styles from the Body Element" @@ -1095,8 +1004,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/make-circular-images-with-a-border-radius", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/make-circular-images-with-a-border-radius" }, "id": "bad87fee1348bd9aedf08815", "title": "Make Circular Images with a border-radius" @@ -1107,8 +1015,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/override-all-other-styles-by-using-important", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/override-all-other-styles-by-using-important" }, "id": "bad87fee1348bd9aedf07756", "title": "Override All Other Styles by using Important" @@ -1119,8 +1026,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/override-class-declarations-by-styling-id-attributes", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/override-class-declarations-by-styling-id-attributes" }, "id": "bad87fee1348bd8aedf06756", "title": "Override Class Declarations by Styling ID Attributes" @@ -1131,8 +1037,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/override-class-declarations-with-inline-styles", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/override-class-declarations-with-inline-styles" }, "id": "bad87fee1348bd9aedf06756", "title": "Override Class Declarations with Inline Styles" @@ -1143,8 +1048,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/override-styles-in-subsequent-css", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/override-styles-in-subsequent-css" }, "id": "bad87fee1348bd9aedf04756", "title": "Override Styles in Subsequent CSS" @@ -1155,8 +1059,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/prioritize-one-style-over-another", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/prioritize-one-style-over-another" }, "id": "bad87fee1348bd9aedf08756", "title": "Prioritize One Style Over Another" @@ -1167,8 +1070,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/set-the-font-family-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/set-the-font-family-of-an-element" }, "id": "bad87fee1348bd9aede08807", "title": "Set the Font Family of an Element" @@ -1179,8 +1081,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/set-the-id-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/set-the-id-of-an-element" }, "id": "bad87eee1348bd9aede07836", "title": "Set the id of an Element" @@ -1191,8 +1092,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/size-your-images", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/size-your-images" }, "id": "bad87fee1348bd9acdf08812", "title": "Size Your Images" @@ -1203,8 +1103,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/specify-how-fonts-should-degrade", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/specify-how-fonts-should-degrade" }, "id": "bad87fee1348bd9aedf08808", "title": "Specify How Fonts Should Degrade" @@ -1215,8 +1114,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/style-multiple-elements-with-a-css-class", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/style-multiple-elements-with-a-css-class" }, "id": "bad87fee1348bd9aefe08806", "title": "Style Multiple Elements with a CSS Class" @@ -1227,8 +1125,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/style-the-html-body-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/style-the-html-body-element" }, "id": "bad87fee1348bd9aedf08736", "title": "Style the HTML Body Element" @@ -1239,8 +1136,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/understand-absolute-versus-relative-units", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/understand-absolute-versus-relative-units" }, "id": "bad82fee1322bd9aedf08721", "title": "Understand Absolute versus Relative Units" @@ -1251,8 +1147,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-a-css-class-to-style-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-a-css-class-to-style-an-element" }, "id": "bad87fee1348bd9aecf08806", "title": "Use a CSS Class to Style an Element" @@ -1263,8 +1158,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-a-custom-css-variable", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-a-custom-css-variable" }, "id": "5a9d727a424fe3d0e10cad12", "title": "Use a custom CSS Variable" @@ -1275,8 +1169,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-a-media-query-to-change-a-variable", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-a-media-query-to-change-a-variable" }, "id": "5a9d72ad424fe3d0e10cad16", "title": "Use a media query to change a variable" @@ -1287,8 +1180,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-abbreviated-hex-code", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-abbreviated-hex-code" }, "id": "bad87fee1348bd9aedf08719", "title": "Use Abbreviated Hex Code" @@ -1299,8 +1191,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-an-id-attribute-to-style-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-an-id-attribute-to-style-an-element" }, "id": "bad87dee1348bd9aede07836", "title": "Use an id Attribute to Style an Element" @@ -1311,8 +1202,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-attribute-selectors-to-style-elements", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-attribute-selectors-to-style-elements" }, "id": "58c383d33e2e3259241f3076", "title": "Use Attribute Selectors to Style Elements" @@ -1323,8 +1213,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-clockwise-notation-to-specify-the-margin-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-clockwise-notation-to-specify-the-margin-of-an-element" }, "id": "bad87fee1348bd9afdf08726", "title": "Use Clockwise Notation to Specify the Margin of an Element" @@ -1335,8 +1224,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-clockwise-notation-to-specify-the-padding-of-an-element", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-clockwise-notation-to-specify-the-padding-of-an-element" }, "id": "bad87fee1348bd9aedf08826", "title": "Use Clockwise Notation to Specify the Padding of an Element" @@ -1347,8 +1235,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-css-selectors-to-style-elements", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-css-selectors-to-style-elements" }, "id": "bad87fee1348bd9aedf08805", "title": "Use CSS Selectors to Style Elements" @@ -1359,8 +1246,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-css-variables-to-change-several-elements-at-once", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-css-variables-to-change-several-elements-at-once" }, "id": "5a9d725e424fe3d0e10cad10", "title": "Use CSS Variables to change several elements at once" @@ -1371,8 +1257,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-hex-code-for-specific-colors", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-hex-code-for-specific-colors" }, "id": "bad87fee1348bd9aedf08726", "title": "Use Hex Code for Specific Colors" @@ -1383,8 +1268,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-hex-code-to-mix-colors", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-hex-code-to-mix-colors" }, "id": "bad87fee1348bd9aedf08721", "title": "Use Hex Code to Mix Colors" @@ -1395,8 +1279,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-rgb-to-mix-colors", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-rgb-to-mix-colors" }, "id": "bad82fee1348bd9aedf08721", "title": "Use RGB to Mix Colors" @@ -1407,8 +1290,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-css/use-rgb-values-to-color-elements", - "blockName": "Basic CSS" + "slug": "/learn/responsive-web-design/basic-css/use-rgb-values-to-color-elements" }, "id": "bad87fee1348bd9aede08718", "title": "Use RGB values to Color Elements" @@ -1419,8 +1301,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/add-a-submit-button-to-a-form", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/add-a-submit-button-to-a-form" }, "id": "bad87fee1348bd9aedd08830", "title": "Add a Submit Button to a Form" @@ -1431,8 +1312,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/add-images-to-your-website", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/add-images-to-your-website" }, "id": "bad87fee1348bd9aedf08812", "title": "Add Images to Your Website" @@ -1443,8 +1323,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/add-placeholder-text-to-a-text-field", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/add-placeholder-text-to-a-text-field" }, "id": "bad87fee1348bd9aedf08830", "title": "Add Placeholder Text to a Text Field" @@ -1455,8 +1334,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/check-radio-buttons-and-checkboxes-by-default", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/check-radio-buttons-and-checkboxes-by-default" }, "id": "bad87fee1348bd9aedd08835", "title": "Check Radio Buttons and Checkboxes by Default" @@ -1467,8 +1345,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/comment-out-html", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/comment-out-html" }, "id": "bad87fee1348bd9aedf08804", "title": "Comment out HTML" @@ -1479,8 +1356,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-bulleted-unordered-list", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-bulleted-unordered-list" }, "id": "bad87fee1348bd9aedf08827", "title": "Create a Bulleted Unordered List" @@ -1491,8 +1367,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-form-element", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-form-element" }, "id": "bad87fee1348bd9aede08830", "title": "Create a Form Element" @@ -1503,8 +1378,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-set-of-checkboxes", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-set-of-checkboxes" }, "id": "bad87fee1348bd9aedf08835", "title": "Create a Set of Checkboxes" @@ -1515,8 +1389,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-set-of-radio-buttons", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-set-of-radio-buttons" }, "id": "bad87fee1348bd9aedf08834", "title": "Create a Set of Radio Buttons" @@ -1527,8 +1400,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-text-field", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-a-text-field" }, "id": "bad87fee1348bd9aedf08829", "title": "Create a Text Field" @@ -1539,8 +1411,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/create-an-ordered-list", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/create-an-ordered-list" }, "id": "bad87fee1348bd9aedf08828", "title": "Create an Ordered List" @@ -1551,8 +1422,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document" }, "id": "587d78aa367417b2b2512aed", "title": "Declare the Doctype of an HTML Document" @@ -1563,8 +1433,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/define-the-head-and-body-of-an-html-document", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/define-the-head-and-body-of-an-html-document" }, "id": "587d78aa367417b2b2512aec", "title": "Define the Head and Body of an HTML Document" @@ -1575,8 +1444,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/delete-html-elements", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/delete-html-elements" }, "id": "bad87fed1348bd9aedf08833", "title": "Delete HTML Elements" @@ -1587,8 +1455,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text" }, "id": "bad87fee1348bd9aedf08833", "title": "Fill in the Blank with Placeholder Text" @@ -1599,8 +1466,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/headline-with-the-h2-element", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/headline-with-the-h2-element" }, "id": "bad87fee1348bd9aedf0887a", "title": "Headline with the h2 Element" @@ -1611,8 +1477,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/inform-with-the-paragraph-element", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/inform-with-the-paragraph-element" }, "id": "bad87fee1348bd9aedf08801", "title": "Inform with the Paragraph Element" @@ -1623,8 +1488,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/introduction-to-html5-elements", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/introduction-to-html5-elements" }, "id": "bad87fee1348bd9aecf08801", "title": "Introduction to HTML5 Elements" @@ -1635,8 +1499,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/link-to-external-pages-with-anchor-elements", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/link-to-external-pages-with-anchor-elements" }, "id": "bad87fee1348bd9aedf08816", "title": "Link to External Pages with Anchor Elements" @@ -1647,8 +1510,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements" }, "id": "bad88fee1348bd9aedf08816", "title": "Link to Internal Sections of a Page with Anchor Elements" @@ -1659,8 +1521,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/make-dead-links-using-the-hash-symbol", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/make-dead-links-using-the-hash-symbol" }, "id": "bad87fee1348bd9aedf08817", "title": "Make Dead Links Using the Hash Symbol" @@ -1671,8 +1532,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/nest-an-anchor-element-within-a-paragraph", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/nest-an-anchor-element-within-a-paragraph" }, "id": "bad87fee1348bd9aede08817", "title": "Nest an Anchor Element within a Paragraph" @@ -1683,8 +1543,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/nest-many-elements-within-a-single-div-element", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/nest-many-elements-within-a-single-div-element" }, "id": "bad87fee1348bd9aede08835", "title": "Nest Many Elements within a Single div Element" @@ -1695,8 +1554,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/say-hello-to-html-elements", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/say-hello-to-html-elements" }, "id": "bd7123c8c441eddfaeb5bdef", "title": "Say Hello to HTML Elements" @@ -1707,8 +1565,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/turn-an-image-into-a-link", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/turn-an-image-into-a-link" }, "id": "bad87fee1348bd9aedf08820", "title": "Turn an Image into a Link" @@ -1719,8 +1576,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/uncomment-html", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/uncomment-html" }, "id": "bad87fee1348bd9aedf08802", "title": "Uncomment HTML" @@ -1731,8 +1587,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/use-html5-to-require-a-field", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/use-html5-to-require-a-field" }, "id": "bad87fee1348bd9aedc08830", "title": "Use HTML5 to Require a Field" @@ -1743,8 +1598,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/basic-html-and-html5/use-the-value-attribute-with-radio-buttons-and-checkboxes", - "blockName": "Basic HTML and HTML5" + "slug": "/learn/responsive-web-design/basic-html-and-html5/use-the-value-attribute-with-radio-buttons-and-checkboxes" }, "id": "5c6c06847491271903d37cfd", "title": "Use the value attribute with Radio Buttons and Checkboxes" @@ -1755,8 +1609,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/add-flex-superpowers-to-the-tweet-embed", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/add-flex-superpowers-to-the-tweet-embed" }, "id": "587d78ab367417b2b2512af1", "title": "Add Flex Superpowers to the Tweet Embed" @@ -1767,8 +1620,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/align-elements-using-the-align-items-property", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/align-elements-using-the-align-items-property" }, "id": "587d78ad367417b2b2512af8", "title": "Align Elements Using the align-items Property" @@ -1779,8 +1631,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property" }, "id": "587d78ac367417b2b2512af6", "title": "Align Elements Using the justify-content Property" @@ -1791,8 +1642,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/apply-the-flex-direction-property-to-create-a-column-in-the-tweet-embed", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/apply-the-flex-direction-property-to-create-a-column-in-the-tweet-embed" }, "id": "587d78ac367417b2b2512af5", "title": "Apply the flex-direction Property to Create a Column in the Tweet Embed" @@ -1803,8 +1653,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/apply-the-flex-direction-property-to-create-rows-in-the-tweet-embed", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/apply-the-flex-direction-property-to-create-rows-in-the-tweet-embed" }, "id": "587d78ab367417b2b2512af3", "title": "Apply the flex-direction Property to Create Rows in the Tweet Embed" @@ -1815,8 +1664,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-display-flex-to-position-two-boxes", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-display-flex-to-position-two-boxes" }, "id": "587d78ab367417b2b2512af0", "title": "Use display: flex to Position Two Boxes" @@ -1827,8 +1675,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-align-items-property-in-the-tweet-embed", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-align-items-property-in-the-tweet-embed" }, "id": "587d78ad367417b2b2512af9", "title": "Use the align-items Property in the Tweet Embed" @@ -1839,8 +1686,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-align-self-property", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-align-self-property" }, "id": "587d78af367417b2b2512b00", "title": "Use the align-self Property" @@ -1851,8 +1697,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-basis-property-to-set-the-initial-size-of-an-item", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-basis-property-to-set-the-initial-size-of-an-item" }, "id": "587d78ae367417b2b2512afd", "title": "Use the flex-basis Property to Set the Initial Size of an Item" @@ -1863,8 +1708,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-direction-property-to-make-a-column", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-direction-property-to-make-a-column" }, "id": "587d78ac367417b2b2512af4", "title": "Use the flex-direction Property to Make a Column" @@ -1875,8 +1719,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-direction-property-to-make-a-row", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-direction-property-to-make-a-row" }, "id": "587d78ab367417b2b2512af2", "title": "Use the flex-direction Property to Make a Row" @@ -1887,8 +1730,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-grow-property-to-expand-items", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-grow-property-to-expand-items" }, "id": "587d78ae367417b2b2512afc", "title": "Use the flex-grow Property to Expand Items" @@ -1899,8 +1741,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-shorthand-property", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-shorthand-property" }, "id": "587d78ae367417b2b2512afe", "title": "Use the flex Shorthand Property" @@ -1911,8 +1752,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-shrink-property-to-shrink-items", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-shrink-property-to-shrink-items" }, "id": "587d78ad367417b2b2512afb", "title": "Use the flex-shrink Property to Shrink Items" @@ -1923,8 +1763,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-wrap-property-to-wrap-a-row-or-column", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-flex-wrap-property-to-wrap-a-row-or-column" }, "id": "587d78ad367417b2b2512afa", "title": "Use the flex-wrap Property to Wrap a Row or Column" @@ -1935,8 +1774,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-justify-content-property-in-the-tweet-embed", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-justify-content-property-in-the-tweet-embed" }, "id": "587d78ac367417b2b2512af7", "title": "Use the justify-content Property in the Tweet Embed" @@ -1947,8 +1785,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-flexbox/use-the-order-property-to-rearrange-items", - "blockName": "CSS Flexbox" + "slug": "/learn/responsive-web-design/css-flexbox/use-the-order-property-to-rearrange-items" }, "id": "587d78ae367417b2b2512aff", "title": "Use the order Property to Rearrange Items" @@ -1959,8 +1796,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/add-columns-with-grid-template-columns", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/add-columns-with-grid-template-columns" }, "id": "5a9036d038fddaf9a66b5d32", "title": "Add Columns with grid-template-columns" @@ -1971,8 +1807,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/add-gaps-faster-with-grid-gap", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/add-gaps-faster-with-grid-gap" }, "id": "5a9036ee38fddaf9a66b5d37", "title": "Add Gaps Faster with grid-gap" @@ -1983,8 +1818,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/add-rows-with-grid-template-rows", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/add-rows-with-grid-template-rows" }, "id": "5a9036e138fddaf9a66b5d33", "title": "Add Rows with grid-template-rows" @@ -1995,8 +1829,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/align-all-items-horizontally-using-justify-items", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/align-all-items-horizontally-using-justify-items" }, "id": "5a90376038fddaf9a66b5d3c", "title": "Align All Items Horizontally using justify-items" @@ -2007,8 +1840,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/align-all-items-vertically-using-align-items", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/align-all-items-vertically-using-align-items" }, "id": "5a94fdf869fb03452672e45b", "title": "Align All Items Vertically using align-items" @@ -2019,8 +1851,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/align-an-item-horizontally-using-justify-self", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/align-an-item-horizontally-using-justify-self" }, "id": "5a90374338fddaf9a66b5d3a", "title": "Align an Item Horizontally using justify-self" @@ -2031,8 +1862,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/align-an-item-vertically-using-align-self", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/align-an-item-vertically-using-align-self" }, "id": "5a90375238fddaf9a66b5d3b", "title": "Align an Item Vertically using align-self" @@ -2043,8 +1873,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-a-column-gap-using-grid-column-gap", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-a-column-gap-using-grid-column-gap" }, "id": "5a9036ee38fddaf9a66b5d35", "title": "Create a Column Gap Using grid-column-gap" @@ -2055,8 +1884,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-a-row-gap-using-grid-row-gap", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-a-row-gap-using-grid-row-gap" }, "id": "5a9036ee38fddaf9a66b5d36", "title": "Create a Row Gap using grid-row-gap" @@ -2067,8 +1895,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-flexible-layouts-using-auto-fill", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-flexible-layouts-using-auto-fill" }, "id": "5a94fe5469fb03452672e461", "title": "Create Flexible Layouts Using auto-fill" @@ -2079,8 +1906,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-flexible-layouts-using-auto-fit", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-flexible-layouts-using-auto-fit" }, "id": "5a94fe6269fb03452672e462", "title": "Create Flexible Layouts Using auto-fit" @@ -2091,8 +1917,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-grids-within-grids", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-grids-within-grids" }, "id": "5a94fe8569fb03452672e464", "title": "Create Grids within Grids" @@ -2103,8 +1928,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/create-your-first-css-grid", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/create-your-first-css-grid" }, "id": "5a858944d96184f06fd60d61", "title": "Create Your First CSS Grid" @@ -2115,8 +1939,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/divide-the-grid-into-an-area-template", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/divide-the-grid-into-an-area-template" }, "id": "5a94fe0569fb03452672e45c", "title": "Divide the Grid Into an Area Template" @@ -2127,8 +1950,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/limit-item-size-using-the-minmax-function", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/limit-item-size-using-the-minmax-function" }, "id": "5a94fe4469fb03452672e460", "title": "Limit Item Size Using the minmax Function" @@ -2139,8 +1961,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/place-items-in-grid-areas-using-the-grid-area-property", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/place-items-in-grid-areas-using-the-grid-area-property" }, "id": "5a94fe1369fb03452672e45d", "title": "Place Items in Grid Areas Using the grid-area Property" @@ -2151,8 +1972,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/reduce-repetition-using-the-repeat-function", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/reduce-repetition-using-the-repeat-function" }, "id": "5a94fe3669fb03452672e45f", "title": "Reduce Repetition Using the repeat Function" @@ -2163,8 +1983,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/use-css-grid-units-to-change-the-size-of-columns-and-rows", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/use-css-grid-units-to-change-the-size-of-columns-and-rows" }, "id": "5a9036ee38fddaf9a66b5d34", "title": "Use CSS Grid units to Change the Size of Columns and Rows" @@ -2175,8 +1994,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/use-grid-area-without-creating-an-areas-template", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/use-grid-area-without-creating-an-areas-template" }, "id": "5a94fe2669fb03452672e45e", "title": "Use grid-area Without Creating an Areas Template" @@ -2187,8 +2005,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/use-grid-column-to-control-spacing", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/use-grid-column-to-control-spacing" }, "id": "5a90372638fddaf9a66b5d38", "title": "Use grid-column to Control Spacing" @@ -2199,8 +2016,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/use-grid-row-to-control-spacing", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/use-grid-row-to-control-spacing" }, "id": "5a90373638fddaf9a66b5d39", "title": "Use grid-row to Control Spacing" @@ -2211,8 +2027,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/css-grid/use-media-queries-to-create-responsive-layouts", - "blockName": "CSS Grid" + "slug": "/learn/responsive-web-design/css-grid/use-media-queries-to-create-responsive-layouts" }, "id": "5a94fe7769fb03452672e463", "title": "Use Media Queries to Create Responsive Layouts" @@ -2223,8 +2038,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-principles/create-a-media-query", - "blockName": "Responsive Web Design Principles" + "slug": "/learn/responsive-web-design/responsive-web-design-principles/create-a-media-query" }, "id": "587d78b0367417b2b2512b08", "title": "Create a Media Query" @@ -2235,8 +2049,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-principles/make-an-image-responsive", - "blockName": "Responsive Web Design Principles" + "slug": "/learn/responsive-web-design/responsive-web-design-principles/make-an-image-responsive" }, "id": "587d78b1367417b2b2512b09", "title": "Make an Image Responsive" @@ -2247,8 +2060,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-principles/make-typography-responsive", - "blockName": "Responsive Web Design Principles" + "slug": "/learn/responsive-web-design/responsive-web-design-principles/make-typography-responsive" }, "id": "587d78b1367417b2b2512b0c", "title": "Make Typography Responsive" @@ -2259,8 +2071,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-principles/use-a-retina-image-for-higher-resolution-displays", - "blockName": "Responsive Web Design Principles" + "slug": "/learn/responsive-web-design/responsive-web-design-principles/use-a-retina-image-for-higher-resolution-displays" }, "id": "587d78b1367417b2b2512b0a", "title": "Use a Retina Image for Higher Resolution Displays" @@ -2271,8 +2082,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage", - "blockName": "Responsive Web Design Projects" + "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage" }, "id": "bd7158d8c242eddfaeb5bd13", "title": "Build a Personal Portfolio Webpage" @@ -2283,8 +2093,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-product-landing-page", - "blockName": "Responsive Web Design Projects" + "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-product-landing-page" }, "id": "587d78af367417b2b2512b04", "title": "Build a Product Landing Page" @@ -2295,8 +2104,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-survey-form", - "blockName": "Responsive Web Design Projects" + "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-survey-form" }, "id": "587d78af367417b2b2512b03", "title": "Build a Survey Form" @@ -2307,8 +2115,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page", - "blockName": "Responsive Web Design Projects" + "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page" }, "id": "587d78b0367417b2b2512b05", "title": "Build a Technical Documentation Page" @@ -2319,8 +2126,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-tribute-page", - "blockName": "Responsive Web Design Projects" + "slug": "/learn/responsive-web-design/responsive-web-design-projects/build-a-tribute-page" }, "id": "bd7158d8c442eddfaeb5bd18", "title": "Build a Tribute Page" @@ -2331,8 +2137,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who" }, "id": "a77dbc43c33f39daa4429b4f", "title": "Boo who" @@ -2343,8 +2148,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey" }, "id": "a9bd25c716030ec90084d8a1", "title": "Chunky Monkey" @@ -2355,8 +2159,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending" }, "id": "acda2fb1324d9b0fa741e6b5", "title": "Confirm the Ending" @@ -2367,8 +2170,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit" }, "id": "56533eb9ac21ba0edf2244b3", "title": "Convert Celsius to Fahrenheit" @@ -2379,8 +2181,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number" }, "id": "a302f7aae1aa3152a5b413bc", "title": "Factorialize a Number" @@ -2391,8 +2192,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer" }, "id": "adf08ec01beb4f99fc7a68f2", "title": "Falsy Bouncer" @@ -2403,8 +2203,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string" }, "id": "a26cbbe9ad8655a977e1ceb5", "title": "Find the Longest Word in a String" @@ -2415,8 +2214,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/finders-keepers", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/finders-keepers" }, "id": "a6e40f1041b06c996f7b2406", "title": "Finders Keepers" @@ -2427,8 +2225,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations" }, "id": "af2170cad53daa0770fabdea", "title": "Mutations" @@ -2439,8 +2236,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string" }, "id": "afcc8d540bea9ea2669306b6", "title": "Repeat a String Repeat a String" @@ -2451,8 +2247,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays" }, "id": "a789b3483989747d63b0e427", "title": "Return Largest Numbers in Arrays" @@ -2463,8 +2258,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string" }, "id": "a202eed8fc186c8434cb6d61", "title": "Reverse a String" @@ -2475,8 +2269,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice" }, "id": "579e2a2c335b9d72dd32e05c", "title": "Slice and Splice" @@ -2487,8 +2280,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence" }, "id": "ab6137d4e35944e21037b769", "title": "Title Case a Sentence" @@ -2499,8 +2291,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string" }, "id": "ac6993d51946422351508a41", "title": "Truncate a String" @@ -2511,8 +2302,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong", - "blockName": "Basic Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong" }, "id": "a24c1a4622e3c05097f71d67", "title": "Where do I Belong" @@ -2523,8 +2313,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/access-an-arrays-contents-using-bracket-notation", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/access-an-arrays-contents-using-bracket-notation" }, "id": "5a661e0f1068aca922b3ef17", "title": "Access an Array's Contents Using Bracket Notation" @@ -2535,8 +2324,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation" }, "id": "587d7b7c367417b2b2512b1a", "title": "Access Property Names with Bracket Notation" @@ -2547,8 +2335,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-items-to-an-array-with-push-and-unshift", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-items-to-an-array-with-push-and-unshift" }, "id": "587d78b2367417b2b2512b0e", "title": "Add Items to an Array with push() and unshift()" @@ -2559,8 +2346,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-items-using-splice", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-items-using-splice" }, "id": "587d78b3367417b2b2512b11", "title": "Add Items Using splice()" @@ -2571,8 +2357,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-key-value-pairs-to-javascript-objects", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/add-key-value-pairs-to-javascript-objects" }, "id": "587d7b7c367417b2b2512b18", "title": "Add Key-Value Pairs to JavaScript Objects" @@ -2583,8 +2368,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/check-for-the-presence-of-an-element-with-indexof", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/check-for-the-presence-of-an-element-with-indexof" }, "id": "587d7b7b367417b2b2512b14", "title": "Check For The Presence of an Element With indexOf()" @@ -2595,8 +2379,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/check-if-an-object-has-a-property", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/check-if-an-object-has-a-property" }, "id": "587d7b7d367417b2b2512b1c", "title": "Check if an Object has a Property" @@ -2607,8 +2390,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/combine-arrays-with-the-spread-operator", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/combine-arrays-with-the-spread-operator" }, "id": "587d7b7b367417b2b2512b17", "title": "Combine Arrays with the Spread Operator" @@ -2619,8 +2401,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/copy-an-array-with-the-spread-operator", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/copy-an-array-with-the-spread-operator" }, "id": "587d7b7b367417b2b2512b13", "title": "Copy an Array with the Spread Operator" @@ -2631,8 +2412,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/copy-array-items-using-slice", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/copy-array-items-using-slice" }, "id": "587d7b7a367417b2b2512b12", "title": "Copy Array Items Using slice()" @@ -2643,8 +2423,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays" }, "id": "587d7b7b367417b2b2512b16", "title": "Create complex multi-dimensional arrays" @@ -2655,8 +2434,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/generate-an-array-of-all-object-keys-with-object-keys", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/generate-an-array-of-all-object-keys-with-object-keys" }, "id": "587d7b7d367417b2b2512b1e", "title": "Generate an Array of All Object Keys with Object.keys()" @@ -2667,8 +2445,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-all-an-arrays-items-using-for-loops", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-all-an-arrays-items-using-for-loops" }, "id": "587d7b7b367417b2b2512b15", "title": "Iterate Through All an Array's Items Using For Loops" @@ -2679,8 +2456,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-the-keys-of-an-object-with-a-for---in-statement", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-the-keys-of-an-object-with-a-for---in-statement" }, "id": "587d7b7d367417b2b2512b1d", "title": "Iterate Through the Keys of an Object with a for...in Statement" @@ -2691,8 +2467,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/modify-an-array-stored-in-an-object", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/modify-an-array-stored-in-an-object" }, "id": "587d7b7d367417b2b2512b1f", "title": "Modify an Array Stored in an Object" @@ -2703,8 +2478,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/modify-an-object-nested-within-an-object", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/modify-an-object-nested-within-an-object" }, "id": "587d7b7c367417b2b2512b19", "title": "Modify an Object Nested Within an Object" @@ -2715,8 +2489,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/remove-items-from-an-array-with-pop-and-shift", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/remove-items-from-an-array-with-pop-and-shift" }, "id": "587d78b2367417b2b2512b0f", "title": "Remove Items from an Array with pop() and shift()" @@ -2727,8 +2500,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/remove-items-using-splice", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/remove-items-using-splice" }, "id": "587d78b2367417b2b2512b10", "title": "Remove Items Using splice()" @@ -2739,8 +2511,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/use-an-array-to-store-a-collection-of-data", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/use-an-array-to-store-a-collection-of-data" }, "id": "587d7b7e367417b2b2512b20", "title": "Use an Array to Store a Collection of Data" @@ -2751,8 +2522,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/use-the-delete-keyword-to-remove-object-properties", - "blockName": "Basic Data Structures" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-data-structures/use-the-delete-keyword-to-remove-object-properties" }, "id": "587d7b7c367417b2b2512b1b", "title": "Use the delete Keyword to Remove Object Properties" @@ -2763,8 +2533,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/access-array-data-with-indexes", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/access-array-data-with-indexes" }, "id": "56bbb991ad1ed5201cd392ca", "title": "Access Array Data with Indexes" @@ -2775,8 +2544,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/access-multi-dimensional-arrays-with-indexes", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/access-multi-dimensional-arrays-with-indexes" }, "id": "56592a60ddddeae28f7aa8e1", "title": "Access Multi-Dimensional Arrays With Indexes" @@ -2787,8 +2555,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-arrays", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-arrays" }, "id": "56533eb9ac21ba0edf2244cd", "title": "Accessing Nested Arrays" @@ -2799,8 +2566,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-objects", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-objects" }, "id": "56533eb9ac21ba0edf2244cc", "title": "Accessing Nested Objects" @@ -2811,8 +2577,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-bracket-notation", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-bracket-notation" }, "id": "56533eb9ac21ba0edf2244c8", "title": "Accessing Object Properties with Bracket Notation" @@ -2823,8 +2588,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-dot-notation", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-dot-notation" }, "id": "56533eb9ac21ba0edf2244c7", "title": "Accessing Object Properties with Dot Notation" @@ -2835,8 +2599,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-variables" }, "id": "56533eb9ac21ba0edf2244c9", "title": "Accessing Object Properties with Variables" @@ -2847,8 +2610,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/add-new-properties-to-a-javascript-object", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/add-new-properties-to-a-javascript-object" }, "id": "56bbb991ad1ed5201cd392d2", "title": "Add New Properties to a JavaScript Object" @@ -2859,8 +2621,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/add-two-numbers-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/add-two-numbers-with-javascript" }, "id": "cf1111c1c11feddfaeb3bdef", "title": "Add Two Numbers with JavaScript" @@ -2871,8 +2632,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/adding-a-default-option-in-switch-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/adding-a-default-option-in-switch-statements" }, "id": "56533eb9ac21ba0edf2244de", "title": "Adding a Default Option in Switch Statements" @@ -2883,8 +2643,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/appending-variables-to-strings", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/appending-variables-to-strings" }, "id": "56533eb9ac21ba0edf2244ed", "title": "Appending Variables to Strings" @@ -2895,8 +2654,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another" }, "id": "5ee127a03c3b35dd45426493", "title": "Assigning the Value of One Variable to Another" @@ -2907,8 +2665,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value" }, "id": "56533eb9ac21ba0edf2244c3", "title": "Assignment with a Returned Value" @@ -2919,8 +2676,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/build-javascript-objects", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/build-javascript-objects" }, "id": "56bbb991ad1ed5201cd392d0", "title": "Build JavaScript Objects" @@ -2931,8 +2687,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/chaining-if-else-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/chaining-if-else-statements" }, "id": "56533eb9ac21ba0edf2244dc", "title": "Chaining If Else Statements" @@ -2943,8 +2698,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comment-your-javascript-code", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comment-your-javascript-code" }, "id": "bd7123c9c441eddfaeb4bdef", "title": "Comment Your JavaScript Code" @@ -2955,8 +2709,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator" }, "id": "56533eb9ac21ba0edf2244d0", "title": "Comparison with the Equality Operator" @@ -2967,8 +2720,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-greater-than-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-greater-than-operator" }, "id": "56533eb9ac21ba0edf2244d4", "title": "Comparison with the Greater Than Operator" @@ -2979,8 +2731,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-greater-than-or-equal-to-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-greater-than-or-equal-to-operator" }, "id": "56533eb9ac21ba0edf2244d5", "title": "Comparison with the Greater Than Or Equal To Operator" @@ -2991,8 +2742,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-inequality-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-inequality-operator" }, "id": "56533eb9ac21ba0edf2244d2", "title": "Comparison with the Inequality Operator" @@ -3003,8 +2753,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-less-than-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-less-than-operator" }, "id": "56533eb9ac21ba0edf2244d6", "title": "Comparison with the Less Than Operator" @@ -3015,8 +2764,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-less-than-or-equal-to-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-less-than-or-equal-to-operator" }, "id": "56533eb9ac21ba0edf2244d7", "title": "Comparison with the Less Than Or Equal To Operator" @@ -3027,8 +2775,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-equality-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-equality-operator" }, "id": "56533eb9ac21ba0edf2244d1", "title": "Comparison with the Strict Equality Operator" @@ -3039,8 +2786,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-inequality-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-inequality-operator" }, "id": "56533eb9ac21ba0edf2244d3", "title": "Comparison with the Strict Inequality Operator" @@ -3051,8 +2797,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator" }, "id": "56533eb9ac21ba0edf2244d8", "title": "Comparisons with the Logical And Operator" @@ -3063,8 +2808,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator" }, "id": "56533eb9ac21ba0edf2244d9", "title": "Comparisons with the Logical Or Operator" @@ -3075,8 +2819,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-addition", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-addition" }, "id": "56533eb9ac21ba0edf2244af", "title": "Compound Assignment With Augmented Addition" @@ -3087,8 +2830,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-division", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-division" }, "id": "56533eb9ac21ba0edf2244b2", "title": "Compound Assignment With Augmented Division" @@ -3099,8 +2841,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-multiplication", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-multiplication" }, "id": "56533eb9ac21ba0edf2244b1", "title": "Compound Assignment With Augmented Multiplication" @@ -3111,8 +2852,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-subtraction", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/compound-assignment-with-augmented-subtraction" }, "id": "56533eb9ac21ba0edf2244b0", "title": "Compound Assignment With Augmented Subtraction" @@ -3123,8 +2863,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/concatenating-strings-with-plus-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/concatenating-strings-with-plus-operator" }, "id": "56533eb9ac21ba0edf2244b7", "title": "Concatenating Strings with Plus Operator" @@ -3135,8 +2874,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/concatenating-strings-with-the-plus-equals-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/concatenating-strings-with-the-plus-equals-operator" }, "id": "56533eb9ac21ba0edf2244b8", "title": "Concatenating Strings with the Plus Equals Operator" @@ -3147,8 +2885,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/constructing-strings-with-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/constructing-strings-with-variables" }, "id": "56533eb9ac21ba0edf2244b9", "title": "Constructing Strings with Variables" @@ -3159,8 +2896,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/count-backwards-with-a-for-loop", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/count-backwards-with-a-for-loop" }, "id": "56105e7b514f539506016a5e", "title": "Count Backwards With a For Loop" @@ -3171,8 +2907,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/counting-cards", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/counting-cards" }, "id": "565bbe00e9cc8ac0725390f4", "title": "Counting Cards" @@ -3183,8 +2918,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript" }, "id": "cf1391c1c11feddfaeb4bdef", "title": "Create Decimal Numbers with JavaScript" @@ -3195,8 +2929,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-a-read-only-variable-with-the-const-keyword", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-a-read-only-variable-with-the-const-keyword" }, "id": "587d7b87367417b2b2512b41", "title": "Declare a Read-Only Variable with the const Keyword" @@ -3207,8 +2940,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-javascript-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-javascript-variables" }, "id": "bd7123c9c443eddfaeb5bdef", "title": "Declare JavaScript Variables" @@ -3219,8 +2951,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-string-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-string-variables" }, "id": "bd7123c9c444eddfaeb5bdef", "title": "Declare String Variables" @@ -3231,8 +2962,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript" }, "id": "56533eb9ac21ba0edf2244ad", "title": "Decrement a Number with JavaScript" @@ -3243,8 +2973,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/delete-properties-from-a-javascript-object", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/delete-properties-from-a-javascript-object" }, "id": "56bbb991ad1ed5201cd392d3", "title": "Delete Properties from a JavaScript Object" @@ -3255,8 +2984,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript" }, "id": "bd7993c9ca9feddfaeb7bdef", "title": "Divide One Decimal by Another with JavaScript" @@ -3267,8 +2995,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/divide-one-number-by-another-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/divide-one-number-by-another-with-javascript" }, "id": "cf1111c1c11feddfaeb6bdef", "title": "Divide One Number by Another with JavaScript" @@ -3279,8 +3006,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings" }, "id": "56533eb9ac21ba0edf2244b6", "title": "Escape Sequences in Strings" @@ -3291,8 +3017,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/escaping-literal-quotes-in-strings", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/escaping-literal-quotes-in-strings" }, "id": "56533eb9ac21ba0edf2244b5", "title": "Escaping Literal Quotes in Strings" @@ -3303,8 +3028,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/explore-differences-between-the-var-and-let-keywords", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/explore-differences-between-the-var-and-let-keywords" }, "id": "587d7b87367417b2b2512b3f", "title": "Explore Differences Between the var and let Keywords" @@ -3315,8 +3039,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/find-the-length-of-a-string", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/find-the-length-of-a-string" }, "id": "bd7123c9c448eddfaeb5bdef", "title": "Find the Length of a String" @@ -3327,8 +3050,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/finding-a-remainder-in-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/finding-a-remainder-in-javascript" }, "id": "56533eb9ac21ba0edf2244ae", "title": "Finding a Remainder in JavaScript" @@ -3339,8 +3061,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript" }, "id": "cf1111c1c11feddfaeb9bdef", "title": "Generate Random Fractions with JavaScript" @@ -3351,8 +3072,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-whole-numbers-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-whole-numbers-with-javascript" }, "id": "cf1111c1c12feddfaeb1bdef", "title": "Generate Random Whole Numbers with JavaScript" @@ -3363,8 +3083,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-whole-numbers-within-a-range", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/generate-random-whole-numbers-within-a-range" }, "id": "cf1111c1c12feddfaeb2bdef", "title": "Generate Random Whole Numbers within a Range" @@ -3375,8 +3094,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/global-scope-and-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/global-scope-and-functions" }, "id": "56533eb9ac21ba0edf2244be", "title": "Global Scope and Functions" @@ -3387,8 +3105,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/global-vs--local-scope-in-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/global-vs--local-scope-in-functions" }, "id": "56533eb9ac21ba0edf2244c0", "title": "Global vs. Local Scope in Functions" @@ -3399,8 +3116,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/golf-code", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/golf-code" }, "id": "5664820f61c48e80c9fa476c", "title": "Golf Code" @@ -3411,8 +3127,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/increment-a-number-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/increment-a-number-with-javascript" }, "id": "56533eb9ac21ba0edf2244ac", "title": "Increment a Number with JavaScript" @@ -3423,8 +3138,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator" }, "id": "56533eb9ac21ba0edf2244a9", "title": "Initializing Variables with the Assignment Operator" @@ -3435,8 +3149,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/introducing-else-if-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/introducing-else-if-statements" }, "id": "56533eb9ac21ba0edf2244db", "title": "Introducing Else If Statements" @@ -3447,8 +3160,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/introducing-else-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/introducing-else-statements" }, "id": "56533eb9ac21ba0edf2244da", "title": "Introducing Else Statements" @@ -3459,8 +3171,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-odd-numbers-with-a-for-loop", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-odd-numbers-with-a-for-loop" }, "id": "56104e9e514f539506016a5c", "title": "Iterate Odd Numbers With a For Loop" @@ -3471,8 +3182,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-through-an-array-with-a-for-loop", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-through-an-array-with-a-for-loop" }, "id": "5675e877dbd60be8ad28edc6", "title": "Iterate Through an Array with a For Loop" @@ -3483,8 +3193,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-do---while-loops", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-do---while-loops" }, "id": "5a2efd662fb457916e1fe604", "title": "Iterate with JavaScript Do...While Loops" @@ -3495,8 +3204,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-for-loops", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-for-loops" }, "id": "cf1111c1c11feddfaeb5bdef", "title": "Iterate with JavaScript For Loops" @@ -3507,8 +3215,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-while-loops", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-while-loops" }, "id": "cf1111c1c11feddfaeb1bdef", "title": "Iterate with JavaScript While Loops" @@ -3519,8 +3226,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/local-scope-and-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/local-scope-and-functions" }, "id": "56533eb9ac21ba0edf2244bf", "title": "Local Scope and Functions" @@ -3531,8 +3237,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/logical-order-in-if-else-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/logical-order-in-if-else-statements" }, "id": "5690307fddb111c6084545d7", "title": "Logical Order in If Else Statements" @@ -3543,8 +3248,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-pop", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-pop" }, "id": "56bbb991ad1ed5201cd392cc", "title": "Manipulate Arrays With pop()" @@ -3555,8 +3259,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-push", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-push" }, "id": "56bbb991ad1ed5201cd392cb", "title": "Manipulate Arrays With push()" @@ -3567,8 +3270,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-shift", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-shift" }, "id": "56bbb991ad1ed5201cd392cd", "title": "Manipulate Arrays With shift()" @@ -3579,8 +3281,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-unshift", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulate-arrays-with-unshift" }, "id": "56bbb991ad1ed5201cd392ce", "title": "Manipulate Arrays With unshift()" @@ -3591,8 +3292,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulating-complex-objects", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/manipulating-complex-objects" }, "id": "56533eb9ac21ba0edf2244cb", "title": "Manipulating Complex Objects" @@ -3603,8 +3303,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/modify-array-data-with-indexes", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/modify-array-data-with-indexes" }, "id": "cf1111c1c11feddfaeb8bdef", "title": "Modify Array Data With Indexes" @@ -3615,8 +3314,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements" }, "id": "56533eb9ac21ba0edf2244df", "title": "Multiple Identical Options in Switch Statements" @@ -3627,8 +3325,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiply-two-decimals-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiply-two-decimals-with-javascript" }, "id": "bd7993c9c69feddfaeb7bdef", "title": "Multiply Two Decimals with JavaScript" @@ -3639,8 +3336,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiply-two-numbers-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/multiply-two-numbers-with-javascript" }, "id": "cf1231c1c11feddfaeb5bdef", "title": "Multiply Two Numbers with JavaScript" @@ -3651,8 +3347,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/nest-one-array-within-another-array", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/nest-one-array-within-another-array" }, "id": "cf1111c1c11feddfaeb7bdef", "title": "Nest one Array within Another Array" @@ -3663,8 +3358,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/nesting-for-loops", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/nesting-for-loops" }, "id": "56533eb9ac21ba0edf2244e1", "title": "Nesting For Loops" @@ -3675,8 +3369,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/passing-values-to-functions-with-arguments", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/passing-values-to-functions-with-arguments" }, "id": "56533eb9ac21ba0edf2244bd", "title": "Passing Values to Functions with Arguments" @@ -3687,8 +3380,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/practice-comparing-different-values", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/practice-comparing-different-values" }, "id": "599a789b454f2bbd91a3ff4d", "title": "Practice comparing different values" @@ -3699,8 +3391,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/profile-lookup", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/profile-lookup" }, "id": "5688e62ea601b2482ff8422b", "title": "Profile Lookup" @@ -3711,8 +3402,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes" }, "id": "56533eb9ac21ba0edf2244b4", "title": "Quoting Strings with Single Quotes" @@ -3723,8 +3413,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection" }, "id": "56533eb9ac21ba0edf2244cf", "title": "Record Collection" @@ -3735,8 +3424,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/replace-loops-using-recursion", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/replace-loops-using-recursion" }, "id": "5cfa3679138e7d9595b9d9d4", "title": "Replace Loops using Recursion" @@ -3747,8 +3435,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/replacing-if-else-chains-with-switch", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/replacing-if-else-chains-with-switch" }, "id": "56533eb9ac21ba0edf2244e0", "title": "Replacing If Else Chains with Switch" @@ -3759,8 +3446,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/return-a-value-from-a-function-with-return", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/return-a-value-from-a-function-with-return" }, "id": "56533eb9ac21ba0edf2244c2", "title": "Return a Value from a Function with Return" @@ -3771,8 +3457,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions" }, "id": "56533eb9ac21ba0edf2244c4", "title": "Return Early Pattern for Functions" @@ -3783,8 +3468,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions" }, "id": "5679ceb97cbaa8c51670a16b", "title": "Returning Boolean Values from Functions" @@ -3795,8 +3479,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/selecting-from-many-options-with-switch-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/selecting-from-many-options-with-switch-statements" }, "id": "56533eb9ac21ba0edf2244dd", "title": "Selecting from Many Options with Switch Statements" @@ -3807,8 +3490,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/shopping-list", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/shopping-list" }, "id": "56533eb9ac21ba0edf2244bc", "title": "Shopping List" @@ -3819,8 +3501,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/stand-in-line", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/stand-in-line" }, "id": "56533eb9ac21ba0edf2244c6", "title": "Stand in Line" @@ -3831,8 +3512,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/store-multiple-values-in-one-variable-using-javascript-arrays", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/store-multiple-values-in-one-variable-using-javascript-arrays" }, "id": "bd7993c9c69feddfaeb8bdef", "title": "Store Multiple Values in one Variable using JavaScript Arrays" @@ -3843,8 +3523,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/storing-values-with-the-assignment-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/storing-values-with-the-assignment-operator" }, "id": "56533eb9ac21ba0edf2244a8", "title": "Storing Values with the Assignment Operator" @@ -3855,8 +3534,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript" }, "id": "cf1111c1c11feddfaeb4bdef", "title": "Subtract One Number from Another with JavaScript" @@ -3867,8 +3545,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/testing-objects-for-properties", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/testing-objects-for-properties" }, "id": "567af2437cbaa8c51670a16c", "title": "Testing Objects for Properties" @@ -3879,8 +3556,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understand-string-immutability", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understand-string-immutability" }, "id": "56533eb9ac21ba0edf2244ba", "title": "Understand String Immutability" @@ -3891,8 +3567,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-boolean-values", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-boolean-values" }, "id": "bd7123c9c441eddfaeb5bdef", "title": "Understanding Boolean Values" @@ -3903,8 +3578,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables" }, "id": "56533eb9ac21ba0edf2244ab", "title": "Understanding Case Sensitivity in Variables" @@ -3915,8 +3589,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-undefined-value-returned-from-a-function", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-undefined-value-returned-from-a-function" }, "id": "598e8944f009e646fc236146", "title": "Understanding Undefined Value returned from a Function" @@ -3927,8 +3600,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables" }, "id": "56533eb9ac21ba0edf2244aa", "title": "Understanding Uninitialized Variables" @@ -3939,8 +3611,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/updating-object-properties", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/updating-object-properties" }, "id": "56bbb991ad1ed5201cd392d1", "title": "Updating Object Properties" @@ -3951,8 +3622,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-first-character-in-a-string", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-first-character-in-a-string" }, "id": "bd7123c9c549eddfaeb5bdef", "title": "Use Bracket Notation to Find the First Character in a String" @@ -3963,8 +3633,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-last-character-in-a-string", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-last-character-in-a-string" }, "id": "bd7123c9c451eddfaeb5bdef", "title": "Use Bracket Notation to Find the Last Character in a String" @@ -3975,8 +3644,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-nth-character-in-a-string", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-nth-character-in-a-string" }, "id": "bd7123c9c450eddfaeb5bdef", "title": "Use Bracket Notation to Find the Nth Character in a String" @@ -3987,8 +3655,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-nth-to-last-character-in-a-string", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-bracket-notation-to-find-the-nth-to-last-character-in-a-string" }, "id": "bd7123c9c452eddfaeb5bdef", "title": "Use Bracket Notation to Find the Nth-to-Last Character in a String" @@ -3999,8 +3666,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-conditional-logic-with-if-statements", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-conditional-logic-with-if-statements" }, "id": "cf1111c1c12feddfaeb3bdef", "title": "Use Conditional Logic with If Statements" @@ -4011,8 +3677,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-multiple-conditional-ternary-operators", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-multiple-conditional-ternary-operators" }, "id": "587d7b7e367417b2b2512b21", "title": "Use Multiple Conditional (Ternary) Operators" @@ -4023,8 +3688,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown" }, "id": "5cd9a70215d3c4e65518328f", "title": "Use Recursion to Create a Countdown" @@ -4035,8 +3699,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers" }, "id": "5cc0bd7a49b71cb96132e54c", "title": "Use Recursion to Create a Range of Numbers" @@ -4047,8 +3710,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-conditional-ternary-operator", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-conditional-ternary-operator" }, "id": "587d7b7e367417b2b2512b24", "title": "Use the Conditional (Ternary) Operator" @@ -4059,8 +3721,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-parseint-function-with-a-radix", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-parseint-function-with-a-radix" }, "id": "587d7b7e367417b2b2512b22", "title": "Use the parseInt Function with a Radix" @@ -4071,8 +3732,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-parseint-function", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/use-the-parseint-function" }, "id": "587d7b7e367417b2b2512b23", "title": "Use the parseInt Function" @@ -4083,8 +3743,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/using-objects-for-lookups", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/using-objects-for-lookups" }, "id": "56533eb9ac21ba0edf2244ca", "title": "Using Objects for Lookups" @@ -4095,8 +3754,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/word-blanks", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/word-blanks" }, "id": "56533eb9ac21ba0edf2244bb", "title": "Word Blanks" @@ -4107,8 +3765,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/write-reusable-javascript-with-functions", - "blockName": "Basic JavaScript" + "slug": "/learn/javascript-algorithms-and-data-structures/basic-javascript/write-reusable-javascript-with-functions" }, "id": "56bbb991ad1ed5201cd392cf", "title": "Write Reusable JavaScript with Functions" @@ -4119,8 +3776,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-arguments-passed-in-the-wrong-order-when-calling-a-function", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-arguments-passed-in-the-wrong-order-when-calling-a-function" }, "id": "587d7b85367417b2b2512b3a", "title": "Catch Arguments Passed in the Wrong Order When Calling a Function" @@ -4131,8 +3787,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-missing-open-and-closing-parenthesis-after-a-function-call", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-missing-open-and-closing-parenthesis-after-a-function-call" }, "id": "587d7b85367417b2b2512b39", "title": "Catch Missing Open and Closing Parenthesis After a Function Call" @@ -4143,8 +3798,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-misspelled-variable-and-function-names", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-misspelled-variable-and-function-names" }, "id": "587d7b84367417b2b2512b35", "title": "Catch Misspelled Variable and Function Names" @@ -4155,8 +3809,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-mixed-usage-of-single-and-double-quotes", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-mixed-usage-of-single-and-double-quotes" }, "id": "587d7b84367417b2b2512b37", "title": "Catch Mixed Usage of Single and Double Quotes" @@ -4167,8 +3820,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-off-by-one-errors-when-using-indexing", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-off-by-one-errors-when-using-indexing" }, "id": "587d7b86367417b2b2512b3b", "title": "Catch Off By One Errors When Using Indexing" @@ -4179,8 +3831,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-unclosed-parentheses-brackets-braces-and-quotes", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-unclosed-parentheses-brackets-braces-and-quotes" }, "id": "587d7b84367417b2b2512b36", "title": "Catch Unclosed Parentheses, Brackets, Braces and Quotes" @@ -4191,8 +3842,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-use-of-assignment-operator-instead-of-equality-operator", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/catch-use-of-assignment-operator-instead-of-equality-operator" }, "id": "587d7b85367417b2b2512b38", "title": "Catch Use of Assignment Operator Instead of Equality Operator" @@ -4203,8 +3853,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/prevent-infinite-loops-with-a-valid-terminal-condition", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/prevent-infinite-loops-with-a-valid-terminal-condition" }, "id": "587d7b86367417b2b2512b3d", "title": "Prevent Infinite Loops with a Valid Terminal Condition" @@ -4215,8 +3864,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/understanding-the-differences-between-the-freecodecamp-and-browser-console", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/understanding-the-differences-between-the-freecodecamp-and-browser-console" }, "id": "587d7b83367417b2b2512b37", "title": "Understanding the Differences between the freeCodeCamp and Browser Console" @@ -4227,8 +3875,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-caution-when-reinitializing-variables-inside-a-loop", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-caution-when-reinitializing-variables-inside-a-loop" }, "id": "587d7b86367417b2b2512b3c", "title": "Use Caution When Reinitializing Variables Inside a Loop" @@ -4239,8 +3886,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-the-javascript-console-to-check-the-value-of-a-variable", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-the-javascript-console-to-check-the-value-of-a-variable" }, "id": "587d7b83367417b2b2512b33", "title": "Use the JavaScript Console to Check the Value of a Variable" @@ -4251,8 +3897,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-typeof-to-check-the-type-of-a-variable", - "blockName": "Debugging" + "slug": "/learn/javascript-algorithms-and-data-structures/debugging/use-typeof-to-check-the-type-of-a-variable" }, "id": "587d7b84367417b2b2512b34", "title": "Use typeof to Check the Type of a Variable" @@ -4263,8 +3908,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords" }, "id": "587d7b87367417b2b2512b40", "title": "Compare Scopes of the var and let Keywords" @@ -4275,8 +3919,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/complete-a-promise-with-resolve-and-reject", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/complete-a-promise-with-resolve-and-reject" }, "id": "5cdafbc32913098997531680", "title": "Complete a Promise with resolve and reject" @@ -4287,8 +3930,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-a-javascript-promise", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-a-javascript-promise" }, "id": "5cdafbb0291309899753167f", "title": "Create a JavaScript Promise" @@ -4299,8 +3941,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-a-module-script", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-a-module-script" }, "id": "5cddbfd622f1a59093ec611d", "title": "Create a Module Script" @@ -4311,8 +3952,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-an-export-fallback-with-export-default", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-an-export-fallback-with-export-default" }, "id": "587d7b8c367417b2b2512b58", "title": "Create an Export Fallback with export default" @@ -4323,8 +3963,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals" }, "id": "587d7b8a367417b2b2512b4e", "title": "Create Strings using Template Literals" @@ -4335,8 +3974,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/handle-a-fulfilled-promise-with-then", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/handle-a-fulfilled-promise-with-then" }, "id": "5cdafbd72913098997531681", "title": "Handle a Fulfilled Promise with then" @@ -4347,8 +3985,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/handle-a-rejected-promise-with-catch", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/handle-a-rejected-promise-with-catch" }, "id": "5cdafbe72913098997531682", "title": "Handle a Rejected Promise with catch" @@ -4359,8 +3996,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/import-a-default-export", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/import-a-default-export" }, "id": "587d7b8d367417b2b2512b59", "title": "Import a Default Export" @@ -4371,8 +4007,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const" }, "id": "587d7b87367417b2b2512b42", "title": "Mutate an Array Declared with const" @@ -4383,8 +4018,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/prevent-object-mutation", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/prevent-object-mutation" }, "id": "598f48a36c8c40764b4e52b3", "title": "Prevent Object Mutation" @@ -4395,8 +4029,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/reuse-javascript-code-using-import", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/reuse-javascript-code-using-import" }, "id": "587d7b8c367417b2b2512b55", "title": "Reuse JavaScript Code Using import" @@ -4407,8 +4040,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/set-default-parameters-for-your-functions", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/set-default-parameters-for-your-functions" }, "id": "587d7b88367417b2b2512b46", "title": "Set Default Parameters for Your Functions" @@ -4419,8 +4051,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use--to-import-everything-from-a-file", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use--to-import-everything-from-a-file" }, "id": "587d7b8c367417b2b2512b57", "title": "Use * to Import Everything from a File" @@ -4431,8 +4062,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-arrow-functions-to-write-concise-anonymous-functions", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-arrow-functions-to-write-concise-anonymous-functions" }, "id": "587d7b87367417b2b2512b43", "title": "Use Arrow Functions to Write Concise Anonymous Functions" @@ -4443,8 +4073,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function" }, "id": "587d7b8b367417b2b2512b53", "title": "Use class Syntax to Define a Constructor Function" @@ -4455,8 +4084,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-arrays", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-arrays" }, "id": "587d7b89367417b2b2512b4b", "title": "Use Destructuring Assignment to Assign Variables from Arrays" @@ -4467,8 +4095,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-nested-objects", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-nested-objects" }, "id": "587d7b89367417b2b2512b4a", "title": "Use Destructuring Assignment to Assign Variables from Nested Objects" @@ -4479,8 +4106,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-objects", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-objects" }, "id": "587d7b89367417b2b2512b49", "title": "Use Destructuring Assignment to Assign Variables from Objects" @@ -4491,8 +4117,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-extract-values-from-objects", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-extract-values-from-objects" }, "id": "5cfa550e84205a357704ccb6", "title": "Use Destructuring Assignment to Extract Values from Objects" @@ -4503,8 +4128,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters" }, "id": "587d7b8a367417b2b2512b4d", "title": "Use Destructuring Assignment to Pass an Object as a Function's Parameters" @@ -4515,8 +4139,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-with-the-rest-parameter-to-reassign-array-elements", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-with-the-rest-parameter-to-reassign-array-elements" }, "id": "587d7b8a367417b2b2512b4c", "title": "Use Destructuring Assignment with the Rest Parameter to Reassign Array Elements" @@ -4527,8 +4150,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-export-to-share-a-code-block", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-export-to-share-a-code-block" }, "id": "587d7b8c367417b2b2512b56", "title": "Use export to Share a Code Block" @@ -4539,8 +4161,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-getters-and-setters-to-control-access-to-an-object", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-getters-and-setters-to-control-access-to-an-object" }, "id": "587d7b8c367417b2b2512b54", "title": "Use getters and setters to Control Access to an Object" @@ -4551,8 +4172,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-the-rest-parameter-with-function-parameters", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-the-rest-parameter-with-function-parameters" }, "id": "587d7b88367417b2b2512b47", "title": "Use the Rest Parameter with Function Parameters" @@ -4563,8 +4183,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place" }, "id": "587d7b89367417b2b2512b48", "title": "Use the Spread Operator to Evaluate Arrays In-Place" @@ -4575,8 +4194,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-arrow-functions-with-parameters", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-arrow-functions-with-parameters" }, "id": "587d7b88367417b2b2512b44", "title": "Write Arrow Functions with Parameters" @@ -4587,8 +4205,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-concise-declarative-functions-with-es6", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-concise-declarative-functions-with-es6" }, "id": "587d7b8b367417b2b2512b50", "title": "Write Concise Declarative Functions with ES6" @@ -4599,8 +4216,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-concise-object-literal-declarations-using-object-property-shorthand", - "blockName": "ES6" + "slug": "/learn/javascript-algorithms-and-data-structures/es6/write-concise-object-literal-declarations-using-object-property-shorthand" }, "id": "587d7b8a367417b2b2512b4f", "title": "Write Concise Object Literal Declarations Using Object Property Shorthand" @@ -4611,8 +4227,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/add-elements-to-the-end-of-an-array-using-concat-instead-of-push", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/add-elements-to-the-end-of-an-array-using-concat-instead-of-push" }, "id": "587d7da9367417b2b2512b67", "title": "Add Elements to the End of an Array Using concat Instead of push" @@ -4623,8 +4238,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/apply-functional-programming-to-convert-strings-to-url-slugs", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/apply-functional-programming-to-convert-strings-to-url-slugs" }, "id": "587d7dab367417b2b2512b6d", "title": "Apply Functional Programming to Convert Strings to URL Slugs" @@ -4635,8 +4249,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/avoid-mutations-and-side-effects-using-functional-programming", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/avoid-mutations-and-side-effects-using-functional-programming" }, "id": "587d7b8e367417b2b2512b5e", "title": "Avoid Mutations and Side Effects Using Functional Programming" @@ -4647,8 +4260,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/combine-an-array-into-a-string-using-the-join-method", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/combine-an-array-into-a-string-using-the-join-method" }, "id": "587d7daa367417b2b2512b6c", "title": "Combine an Array into a String Using the join Method" @@ -4659,8 +4271,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/combine-two-arrays-using-the-concat-method", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/combine-two-arrays-using-the-concat-method" }, "id": "587d7da9367417b2b2512b66", "title": "Combine Two Arrays Using the concat Method" @@ -4671,8 +4282,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/implement-map-on-a-prototype", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/implement-map-on-a-prototype" }, "id": "587d7b8f367417b2b2512b62", "title": "Implement map on a Prototype" @@ -4683,8 +4293,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/implement-the-filter-method-on-a-prototype", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/implement-the-filter-method-on-a-prototype" }, "id": "587d7b8f367417b2b2512b64", "title": "Implement the filter Method on a Prototype" @@ -4695,8 +4304,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/introduction-to-currying-and-partial-application", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/introduction-to-currying-and-partial-application" }, "id": "587d7dab367417b2b2512b70", "title": "Introduction to Currying and Partial Application" @@ -4707,8 +4315,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/learn-about-functional-programming", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/learn-about-functional-programming" }, "id": "587d7b8d367417b2b2512b5b", "title": "Learn About Functional Programming" @@ -4719,8 +4326,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/pass-arguments-to-avoid-external-dependence-in-a-function", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/pass-arguments-to-avoid-external-dependence-in-a-function" }, "id": "587d7b8e367417b2b2512b5f", "title": "Pass Arguments to Avoid External Dependence in a Function" @@ -4731,8 +4337,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions" }, "id": "587d7b8f367417b2b2512b60", "title": "Refactor Global Variables Out of Functions" @@ -4743,8 +4348,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/remove-elements-from-an-array-using-slice-instead-of-splice", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/remove-elements-from-an-array-using-slice-instead-of-splice" }, "id": "9d7123c8c441eeafaeb5bdef", "title": "Remove Elements from an Array Using slice Instead of splice" @@ -4755,8 +4359,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/return-a-sorted-array-without-changing-the-original-array", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/return-a-sorted-array-without-changing-the-original-array" }, "id": "587d7da9367417b2b2512b6a", "title": "Return a Sorted Array Without Changing the Original Array" @@ -4767,8 +4370,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/return-part-of-an-array-using-the-slice-method", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/return-part-of-an-array-using-the-slice-method" }, "id": "587d7b90367417b2b2512b65", "title": "Return Part of an Array Using the slice Method" @@ -4779,8 +4381,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/sort-an-array-alphabetically-using-the-sort-method", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/sort-an-array-alphabetically-using-the-sort-method" }, "id": "587d7da9367417b2b2512b69", "title": "Sort an Array Alphabetically using the sort Method" @@ -4791,8 +4392,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/split-a-string-into-an-array-using-the-split-method", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/split-a-string-into-an-array-using-the-split-method" }, "id": "587d7daa367417b2b2512b6b", "title": "Split a String into an Array Using the split Method" @@ -4803,8 +4403,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/understand-functional-programming-terminology", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/understand-functional-programming-terminology" }, "id": "587d7b8e367417b2b2512b5c", "title": "Understand Functional Programming Terminology" @@ -4815,8 +4414,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/understand-the-hazards-of-using-imperative-code", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/understand-the-hazards-of-using-imperative-code" }, "id": "587d7b8e367417b2b2512b5d", "title": "Understand the Hazards of Using Imperative Code" @@ -4827,8 +4425,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-higher-order-functions-map-filter-or-reduce-to-solve-a-complex-problem", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-higher-order-functions-map-filter-or-reduce-to-solve-a-complex-problem" }, "id": "587d7b88367417b2b2512b45", "title": "Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem" @@ -4839,8 +4436,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-every-method-to-check-that-every-element-in-an-array-meets-a-criteria", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-every-method-to-check-that-every-element-in-an-array-meets-a-criteria" }, "id": "587d7dab367417b2b2512b6e", "title": "Use the every Method to Check that Every Element in an Array Meets a Criteria" @@ -4851,8 +4447,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-filter-method-to-extract-data-from-an-array", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-filter-method-to-extract-data-from-an-array" }, "id": "587d7b8f367417b2b2512b63", "title": "Use the filter Method to Extract Data from an Array" @@ -4863,8 +4458,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-map-method-to-extract-data-from-an-array", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-map-method-to-extract-data-from-an-array" }, "id": "587d7b8f367417b2b2512b61", "title": "Use the map Method to Extract Data from an Array" @@ -4875,8 +4469,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-reduce-method-to-analyze-data", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-reduce-method-to-analyze-data" }, "id": "587d7da9367417b2b2512b68", "title": "Use the reduce Method to Analyze Data" @@ -4887,8 +4480,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-some-method-to-check-that-any-elements-in-an-array-meet-a-criteria", - "blockName": "Functional Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/functional-programming/use-the-some-method-to-check-that-any-elements-in-an-array-meet-a-criteria" }, "id": "587d7dab367417b2b2512b6f", "title": "Use the some Method to Check that Any Elements in an Array Meet a Criteria" @@ -4899,8 +4491,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/arguments-optional", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/arguments-optional" }, "id": "a97fd23d9b809dac9921074f", "title": "Arguments Optional" @@ -4911,8 +4502,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/binary-agents", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/binary-agents" }, "id": "a8d97bd4c764e91f9d2bda01", "title": "Binary Agents" @@ -4923,8 +4513,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/convert-html-entities", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/convert-html-entities" }, "id": "a6b0bb188d873cb2c8729495", "title": "Convert HTML Entities" @@ -4935,8 +4524,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/diff-two-arrays", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/diff-two-arrays" }, "id": "a5de63ebea8dbee56860f4f2", "title": "Diff Two Arrays" @@ -4947,8 +4535,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing" }, "id": "afd15382cdfb22c9efe8b7de", "title": "DNA Pairing" @@ -4959,8 +4546,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/drop-it", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/drop-it" }, "id": "a5deed1811a43193f9f1c841", "title": "Drop it" @@ -4971,8 +4557,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/everything-be-true", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/everything-be-true" }, "id": "a10d2431ad0c6a099a4b8b52", "title": "Everything Be True" @@ -4983,8 +4568,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/make-a-person", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/make-a-person" }, "id": "a2f1d72d9b908d0bd72bb9f6", "title": "Make a Person" @@ -4995,8 +4579,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/map-the-debris", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/map-the-debris" }, "id": "af4afb223120f7348cdfc9fd", "title": "Map the Debris" @@ -5007,8 +4590,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/missing-letters", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/missing-letters" }, "id": "af7588ade1100bde429baf20", "title": "Missing letters" @@ -5019,8 +4601,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/pig-latin", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/pig-latin" }, "id": "aa7697ea2477d1316795783b", "title": "Pig Latin" @@ -5031,8 +4612,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/search-and-replace", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/search-and-replace" }, "id": "a0b5010f579e69b815e7c5d6", "title": "Search and Replace" @@ -5043,8 +4623,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/seek-and-destroy", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/seek-and-destroy" }, "id": "a39963a4c10bc8b4d4f06d7e", "title": "Seek and Destroy" @@ -5055,8 +4634,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/smallest-common-multiple", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/smallest-common-multiple" }, "id": "ae9defd7acaf69703ab432ea", "title": "Smallest Common Multiple" @@ -5067,8 +4645,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sorted-union", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sorted-union" }, "id": "a105e963526e7de52b219be9", "title": "Sorted Union" @@ -5079,8 +4656,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/spinal-tap-case", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/spinal-tap-case" }, "id": "a103376db3ba46b2d50db289", "title": "Spinal Tap Case" @@ -5091,8 +4667,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/steamroller", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/steamroller" }, "id": "ab306dbdcc907c7ddfc30830", "title": "Steamroller" @@ -5103,8 +4678,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-numbers-in-a-range", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-numbers-in-a-range" }, "id": "a3566b1109230028080c9345", "title": "Sum All Numbers in a Range" @@ -5115,8 +4689,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-odd-fibonacci-numbers", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-odd-fibonacci-numbers" }, "id": "a5229172f011153519423690", "title": "Sum All Odd Fibonacci Numbers" @@ -5127,8 +4700,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-primes", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-primes" }, "id": "a3bfc1673c0526e06d3ac698", "title": "Sum All Primes" @@ -5139,8 +4711,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/wherefore-art-thou", - "blockName": "Intermediate Algorithm Scripting" + "slug": "/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/wherefore-art-thou" }, "id": "a8e512fbe388ac2f9198f0fa", "title": "Wherefore art thou" @@ -5151,8 +4722,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher", - "blockName": "JavaScript Algorithms and Data Structures Projects" + "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher" }, "id": "56533eb9ac21ba0edf2244e2", "title": "Caesars Cipher" @@ -5163,8 +4733,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register", - "blockName": "JavaScript Algorithms and Data Structures Projects" + "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register" }, "id": "aa2e6f85cab2ab736c9a9b24", "title": "Cash Register" @@ -5175,8 +4744,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker", - "blockName": "JavaScript Algorithms and Data Structures Projects" + "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker" }, "id": "aaa48de84e1ecc7c742e1124", "title": "Palindrome Checker" @@ -5187,8 +4755,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter", - "blockName": "JavaScript Algorithms and Data Structures Projects" + "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter" }, "id": "a7f4d8f2483413a6ce226cac", "title": "Roman Numeral Converter" @@ -5199,8 +4766,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator", - "blockName": "JavaScript Algorithms and Data Structures Projects" + "slug": "/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator" }, "id": "aff0395860f5d3034dc0bfc9", "title": "Telephone Number Validator" @@ -5211,8 +4777,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance" }, "id": "587d7db1367417b2b2512b87", "title": "Add Methods After Inheritance" @@ -5223,8 +4788,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/change-the-prototype-to-a-new-object", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/change-the-prototype-to-a-new-object" }, "id": "587d7daf367417b2b2512b7f", "title": "Change the Prototype to a New Object" @@ -5235,8 +4799,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/create-a-basic-javascript-object", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/create-a-basic-javascript-object" }, "id": "587d7dac367417b2b2512b73", "title": "Create a Basic JavaScript Object" @@ -5247,8 +4810,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/create-a-method-on-an-object", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/create-a-method-on-an-object" }, "id": "587d7dad367417b2b2512b75", "title": "Create a Method on an Object" @@ -5259,8 +4821,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/define-a-constructor-function", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/define-a-constructor-function" }, "id": "587d7dad367417b2b2512b77", "title": "Define a Constructor Function" @@ -5271,8 +4832,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/extend-constructors-to-receive-arguments", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/extend-constructors-to-receive-arguments" }, "id": "587d7dae367417b2b2512b79", "title": "Extend Constructors to Receive Arguments" @@ -5283,8 +4843,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/inherit-behaviors-from-a-supertype", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/inherit-behaviors-from-a-supertype" }, "id": "587d7db0367417b2b2512b84", "title": "Inherit Behaviors from a Supertype" @@ -5295,8 +4854,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties" }, "id": "587d7daf367417b2b2512b7d", "title": "Iterate Over All Properties" @@ -5307,8 +4865,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/make-code-more-reusable-with-the-this-keyword", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/make-code-more-reusable-with-the-this-keyword" }, "id": "587d7dad367417b2b2512b76", "title": "Make Code More Reusable with the this Keyword" @@ -5319,8 +4876,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/override-inherited-methods", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/override-inherited-methods" }, "id": "587d7db1367417b2b2512b88", "title": "Override Inherited Methods" @@ -5331,8 +4887,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/remember-to-set-the-constructor-property-when-changing-the-prototype", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/remember-to-set-the-constructor-property-when-changing-the-prototype" }, "id": "587d7daf367417b2b2512b80", "title": "Remember to Set the Constructor Property when Changing the Prototype" @@ -5343,8 +4898,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/reset-an-inherited-constructor-property", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/reset-an-inherited-constructor-property" }, "id": "587d7db1367417b2b2512b86", "title": "Reset an Inherited Constructor Property" @@ -5355,8 +4909,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/set-the-childs-prototype-to-an-instance-of-the-parent", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/set-the-childs-prototype-to-an-instance-of-the-parent" }, "id": "587d7db1367417b2b2512b85", "title": "Set the Child's Prototype to an Instance of the Parent" @@ -5367,8 +4920,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-own-properties", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-own-properties" }, "id": "587d7dae367417b2b2512b7b", "title": "Understand Own Properties" @@ -5379,8 +4931,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-constructor-property", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-constructor-property" }, "id": "587d7daf367417b2b2512b7e", "title": "Understand the Constructor Property" @@ -5391,8 +4942,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-immediately-invoked-function-expression-iife", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-immediately-invoked-function-expression-iife" }, "id": "587d7db2367417b2b2512b8b", "title": "Understand the Immediately Invoked Function Expression (IIFE)" @@ -5403,8 +4953,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain" }, "id": "587d7db0367417b2b2512b82", "title": "Understand the Prototype Chain" @@ -5415,8 +4964,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-where-an-objects-prototype-comes-from", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/understand-where-an-objects-prototype-comes-from" }, "id": "587d7db0367417b2b2512b81", "title": "Understand Where an Object’s Prototype Comes From" @@ -5427,8 +4975,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-a-constructor-to-create-objects", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-a-constructor-to-create-objects" }, "id": "587d7dad367417b2b2512b78", "title": "Use a Constructor to Create Objects" @@ -5439,8 +4986,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-a-mixin-to-add-common-behavior-between-unrelated-objects", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-a-mixin-to-add-common-behavior-between-unrelated-objects" }, "id": "587d7db2367417b2b2512b89", "title": "Use a Mixin to Add Common Behavior Between Unrelated Objects" @@ -5451,8 +4997,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-an-iife-to-create-a-module", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-an-iife-to-create-a-module" }, "id": "587d7db2367417b2b2512b8c", "title": "Use an IIFE to Create a Module" @@ -5463,8 +5008,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-closure-to-protect-properties-within-an-object-from-being-modified-externally", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-closure-to-protect-properties-within-an-object-from-being-modified-externally" }, "id": "587d7db2367417b2b2512b8a", "title": "Use Closure to Protect Properties Within an Object from Being Modified Externally" @@ -5475,8 +5019,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-dot-notation-to-access-the-properties-of-an-object", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-dot-notation-to-access-the-properties-of-an-object" }, "id": "587d7dac367417b2b2512b74", "title": "Use Dot Notation to Access the Properties of an Object" @@ -5487,8 +5030,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself" }, "id": "587d7db0367417b2b2512b83", "title": "Use Inheritance So You Don't Repeat Yourself" @@ -5499,8 +5041,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-prototype-properties-to-reduce-duplicate-code", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/use-prototype-properties-to-reduce-duplicate-code" }, "id": "587d7dae367417b2b2512b7c", "title": "Use Prototype Properties to Reduce Duplicate Code" @@ -5511,8 +5052,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/verify-an-objects-constructor-with-instanceof", - "blockName": "Object Oriented Programming" + "slug": "/learn/javascript-algorithms-and-data-structures/object-oriented-programming/verify-an-objects-constructor-with-instanceof" }, "id": "587d7dae367417b2b2512b7a", "title": "Verify an Object's Constructor with instanceof" @@ -5523,8 +5063,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/check-for-all-or-none", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/check-for-all-or-none" }, "id": "587d7dba367417b2b2512ba8", "title": "Check for All or None" @@ -5535,8 +5074,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/check-for-mixed-grouping-of-characters", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/check-for-mixed-grouping-of-characters" }, "id": "5c3dda8b4d8df89bea71600f", "title": "Check For Mixed Grouping of Characters" @@ -5547,8 +5085,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/extract-matches", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/extract-matches" }, "id": "587d7db4367417b2b2512b92", "title": "Extract Matches" @@ -5559,8 +5096,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-characters-with-lazy-matching", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-characters-with-lazy-matching" }, "id": "587d7db6367417b2b2512b9b", "title": "Find Characters with Lazy Matching" @@ -5571,8 +5107,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-more-than-the-first-match", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-more-than-the-first-match" }, "id": "587d7db4367417b2b2512b93", "title": "Find More Than the First Match" @@ -5583,8 +5118,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt" }, "id": "587d7db7367417b2b2512b9c", "title": "Find One or More Criminals in a Hunt" @@ -5595,8 +5129,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/ignore-case-while-matching", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/ignore-case-while-matching" }, "id": "587d7db4367417b2b2512b91", "title": "Ignore Case While Matching" @@ -5607,8 +5140,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-a-literal-string-with-different-possibilities", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-a-literal-string-with-different-possibilities" }, "id": "587d7db4367417b2b2512b90", "title": "Match a Literal String with Different Possibilities" @@ -5619,8 +5151,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-letters-and-numbers", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-letters-and-numbers" }, "id": "587d7db7367417b2b2512b9f", "title": "Match All Letters and Numbers" @@ -5631,8 +5162,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-non-numbers", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-non-numbers" }, "id": "587d7db8367417b2b2512ba1", "title": "Match All Non-Numbers" @@ -5643,8 +5173,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-numbers", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-all-numbers" }, "id": "5d712346c441eddfaeb5bdef", "title": "Match All Numbers" @@ -5655,8 +5184,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-anything-with-wildcard-period", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-anything-with-wildcard-period" }, "id": "587d7db5367417b2b2512b94", "title": "Match Anything with Wildcard Period" @@ -5667,8 +5195,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-beginning-string-patterns", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-beginning-string-patterns" }, "id": "587d7db7367417b2b2512b9d", "title": "Match Beginning String Patterns" @@ -5679,8 +5206,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-characters-that-occur-one-or-more-times", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-characters-that-occur-one-or-more-times" }, "id": "587d7db6367417b2b2512b99", "title": "Match Characters that Occur One or More Times" @@ -5691,8 +5217,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-characters-that-occur-zero-or-more-times", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-characters-that-occur-zero-or-more-times" }, "id": "587d7db6367417b2b2512b9a", "title": "Match Characters that Occur Zero or More Times" @@ -5703,8 +5228,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-ending-string-patterns", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-ending-string-patterns" }, "id": "587d7db7367417b2b2512b9e", "title": "Match Ending String Patterns" @@ -5715,8 +5239,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-everything-but-letters-and-numbers", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-everything-but-letters-and-numbers" }, "id": "587d7db8367417b2b2512ba0", "title": "Match Everything But Letters and Numbers" @@ -5727,8 +5250,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-letters-of-the-alphabet", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-letters-of-the-alphabet" }, "id": "587d7db5367417b2b2512b96", "title": "Match Letters of the Alphabet" @@ -5739,8 +5261,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-literal-strings", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-literal-strings" }, "id": "587d7db3367417b2b2512b8f", "title": "Match Literal Strings" @@ -5751,8 +5272,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-non-whitespace-characters", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-non-whitespace-characters" }, "id": "587d7db9367417b2b2512ba4", "title": "Match Non-Whitespace Characters" @@ -5763,8 +5283,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-numbers-and-letters-of-the-alphabet", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-numbers-and-letters-of-the-alphabet" }, "id": "587d7db5367417b2b2512b97", "title": "Match Numbers and Letters of the Alphabet" @@ -5775,8 +5294,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-single-character-with-multiple-possibilities", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-single-character-with-multiple-possibilities" }, "id": "587d7db5367417b2b2512b95", "title": "Match Single Character with Multiple Possibilities" @@ -5787,8 +5305,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-single-characters-not-specified", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-single-characters-not-specified" }, "id": "587d7db6367417b2b2512b98", "title": "Match Single Characters Not Specified" @@ -5799,8 +5316,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-whitespace", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/match-whitespace" }, "id": "587d7db8367417b2b2512ba3", "title": "Match Whitespace" @@ -5811,8 +5327,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/positive-and-negative-lookahead", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/positive-and-negative-lookahead" }, "id": "587d7dba367417b2b2512ba9", "title": "Positive and Negative Lookahead" @@ -5823,8 +5338,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/remove-whitespace-from-start-and-end", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/remove-whitespace-from-start-and-end" }, "id": "587d7dbb367417b2b2512bac", "title": "Remove Whitespace from Start and End" @@ -5835,8 +5349,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/restrict-possible-usernames", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/restrict-possible-usernames" }, "id": "587d7db8367417b2b2512ba2", "title": "Restrict Possible Usernames" @@ -5847,8 +5360,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/reuse-patterns-using-capture-groups", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/reuse-patterns-using-capture-groups" }, "id": "587d7dbb367417b2b2512baa", "title": "Reuse Patterns Using Capture Groups" @@ -5859,8 +5371,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-exact-number-of-matches", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-exact-number-of-matches" }, "id": "587d7db9367417b2b2512ba7", "title": "Specify Exact Number of Matches" @@ -5871,8 +5382,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-only-the-lower-number-of-matches", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-only-the-lower-number-of-matches" }, "id": "587d7db9367417b2b2512ba6", "title": "Specify Only the Lower Number of Matches" @@ -5883,8 +5393,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-upper-and-lower-number-of-matches", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/specify-upper-and-lower-number-of-matches" }, "id": "587d7db9367417b2b2512ba5", "title": "Specify Upper and Lower Number of Matches" @@ -5895,8 +5404,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/use-capture-groups-to-search-and-replace", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/use-capture-groups-to-search-and-replace" }, "id": "587d7dbb367417b2b2512bab", "title": "Use Capture Groups to Search and Replace" @@ -5907,8 +5415,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/using-the-test-method", - "blockName": "Regular Expressions" + "slug": "/learn/javascript-algorithms-and-data-structures/regular-expressions/using-the-test-method" }, "id": "587d7db3367417b2b2512b8e", "title": "Using the Test Method" @@ -5919,8 +5426,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells" }, "id": "bad87fee1348bd9aec908849", "title": "Add Elements within Your Bootstrap Wells" @@ -5931,8 +5437,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons" }, "id": "bad87fee1348bd9aedc08845", "title": "Add Font Awesome Icons to all of our Buttons" @@ -5943,8 +5448,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons" }, "id": "bad87fee1348bd9aedd08845", "title": "Add Font Awesome Icons to our Buttons" @@ -5955,8 +5459,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/add-id-attributes-to-bootstrap-elements", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/add-id-attributes-to-bootstrap-elements" }, "id": "bad87fee1348bd9aec908853", "title": "Add id Attributes to Bootstrap Elements" @@ -5967,8 +5470,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/apply-the-default-bootstrap-button-style", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/apply-the-default-bootstrap-button-style" }, "id": "bad87fee1348bd9aec908850", "title": "Apply the Default Bootstrap Button Style" @@ -5979,8 +5481,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info" }, "id": "bad87fee1348cd8acef08813", "title": "Call out Optional Actions with btn-info" @@ -5991,8 +5492,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/center-text-with-bootstrap", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/center-text-with-bootstrap" }, "id": "bad87fee1348bd8acde08812", "title": "Center Text with Bootstrap" @@ -6003,8 +5503,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-block-element-bootstrap-button", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-block-element-bootstrap-button" }, "id": "bad87fee1348cd8acef08812", "title": "Create a Block Element Bootstrap Button" @@ -6015,8 +5514,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-button", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-button" }, "id": "bad87fee1348cd8acdf08812", "title": "Create a Bootstrap Button" @@ -6027,8 +5525,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-headline", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-headline" }, "id": "bad87fee1348bd9aec908846", "title": "Create a Bootstrap Headline" @@ -6039,8 +5536,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-row", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-bootstrap-row" }, "id": "bad87fee1348bd9bec908846", "title": "Create a Bootstrap Row" @@ -6051,8 +5547,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-class-to-target-with-jquery-selectors", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-class-to-target-with-jquery-selectors" }, "id": "bad87fee1348bd9aec908852", "title": "Create a Class to Target with jQuery Selectors" @@ -6063,8 +5558,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-a-custom-heading", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-a-custom-heading" }, "id": "bad87fee1348bd9aede08845", "title": "Create a Custom Heading" @@ -6075,8 +5569,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/create-bootstrap-wells", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/create-bootstrap-wells" }, "id": "bad87fee1348bd9aec908848", "title": "Create Bootstrap Wells" @@ -6087,8 +5580,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/ditch-custom-css-for-bootstrap", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/ditch-custom-css-for-bootstrap" }, "id": "bad87fee1347bd9aedf08845", "title": "Ditch Custom CSS for Bootstrap" @@ -6099,8 +5591,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/give-each-element-a-unique-id", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/give-each-element-a-unique-id" }, "id": "bad87fee1348bd9aec908855", "title": "Give Each Element a Unique id" @@ -6111,8 +5602,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/house-our-page-within-a-bootstrap-container-fluid-div", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/house-our-page-within-a-bootstrap-container-fluid-div" }, "id": "bad87fee1348bd9aec908746", "title": "House our page within a Bootstrap container-fluid div" @@ -6123,8 +5613,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/label-bootstrap-buttons", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/label-bootstrap-buttons" }, "id": "bad87fee1348bd9aec908856", "title": "Label Bootstrap Buttons" @@ -6135,8 +5624,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/label-bootstrap-wells", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/label-bootstrap-wells" }, "id": "bad87fee1348bd9aec908854", "title": "Label Bootstrap Wells" @@ -6147,8 +5635,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/line-up-form-elements-responsively-with-bootstrap", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/line-up-form-elements-responsively-with-bootstrap" }, "id": "bad87fee1348bd9aec908845", "title": "Line up Form Elements Responsively with Bootstrap" @@ -6159,8 +5646,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/make-images-mobile-responsive", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/make-images-mobile-responsive" }, "id": "bad87fee1348bd9acde08812", "title": "Make Images Mobile Responsive" @@ -6171,8 +5657,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/responsively-style-checkboxes", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/responsively-style-checkboxes" }, "id": "bad87fee1348bd9aeda08845", "title": "Responsively Style Checkboxes" @@ -6183,8 +5668,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/responsively-style-radio-buttons", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/responsively-style-radio-buttons" }, "id": "bad87fee1348bd9aedb08845", "title": "Responsively Style Radio Buttons" @@ -6195,8 +5679,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/split-your-bootstrap-row", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/split-your-bootstrap-row" }, "id": "bad87fee1348bd9aec908847", "title": "Split Your Bootstrap Row" @@ -6207,8 +5690,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/style-text-inputs-as-form-controls", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/style-text-inputs-as-form-controls" }, "id": "bad87fee1348bd9aed908845", "title": "Style Text Inputs as Form Controls" @@ -6219,8 +5701,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/taste-the-bootstrap-button-color-rainbow", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/taste-the-bootstrap-button-color-rainbow" }, "id": "bad87fee1348cd8acef08811", "title": "Taste the Bootstrap Button Color Rainbow" @@ -6231,8 +5712,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/use-a-span-to-target-inline-elements", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/use-a-span-to-target-inline-elements" }, "id": "bad87fee1348bd9aedf08845", "title": "Use a span to Target Inline Elements" @@ -6243,8 +5723,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/use-comments-to-clarify-code", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/use-comments-to-clarify-code" }, "id": "bad87fee1348bd9aec908857", "title": "Use Comments to Clarify Code" @@ -6255,8 +5734,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers" }, "id": "bad87fee1348bd9acde08712", "title": "Use Responsive Design with Bootstrap Fluid Containers" @@ -6267,8 +5745,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side" }, "id": "bad88fee1348ce8acef08815", "title": "Use the Bootstrap Grid to Put Elements Side By Side" @@ -6279,8 +5756,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger", - "blockName": "Bootstrap" + "slug": "/learn/front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger" }, "id": "bad87fee1348ce8acef08814", "title": "Warn Your Users of a Dangerous Action with btn-danger" @@ -6291,8 +5767,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-25--5-clock", - "blockName": "Front End Development Libraries Projects" + "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-25--5-clock" }, "id": "bd7158d8c442eddfaeb5bd0f", "title": "Build a 25 + 5 Clock" @@ -6303,8 +5778,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine", - "blockName": "Front End Development Libraries Projects" + "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine" }, "id": "587d7dbc367417b2b2512bae", "title": "Build a Drum Machine" @@ -6315,8 +5789,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator", - "blockName": "Front End Development Libraries Projects" + "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator" }, "id": "bd7158d8c442eddfaeb5bd17", "title": "Build a JavaScript Calculator" @@ -6327,8 +5800,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer", - "blockName": "Front End Development Libraries Projects" + "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer" }, "id": "bd7157d8c242eddfaeb5bd13", "title": "Build a Markdown Previewer" @@ -6339,8 +5811,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine", - "blockName": "Front End Development Libraries Projects" + "slug": "/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine" }, "id": "bd7158d8c442eddfaeb5bd13", "title": "Build a Random Quote Machine" @@ -6351,8 +5822,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery" }, "id": "564944c91be2204b269d51e3", "title": "Change Text Inside an Element Using jQuery" @@ -6363,8 +5833,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/change-the-css-of-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/change-the-css-of-an-element-using-jquery" }, "id": "bad87fee1348bd9aed908826", "title": "Change the CSS of an Element Using jQuery" @@ -6375,8 +5844,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/clone-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/clone-an-element-using-jquery" }, "id": "bad87fee1348bd9aed508826", "title": "Clone an Element Using jQuery" @@ -6387,8 +5855,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/delete-your-jquery-functions", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/delete-your-jquery-functions" }, "id": "bad87fee1348bd9aeda08726", "title": "Delete Your jQuery Functions" @@ -6399,8 +5866,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/disable-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/disable-an-element-using-jquery" }, "id": "bad87fee1348bd9aed808826", "title": "Disable an Element Using jQuery" @@ -6411,8 +5877,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/learn-how-script-tags-and-document-ready-work", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/learn-how-script-tags-and-document-ready-work" }, "id": "bad87fee1348bd9acdd08826", "title": "Learn How Script Tags and Document Ready Work" @@ -6423,8 +5888,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/remove-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/remove-an-element-using-jquery" }, "id": "bad87fee1348bd9aed708826", "title": "Remove an Element Using jQuery" @@ -6435,8 +5899,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/remove-classes-from-an-element-with-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/remove-classes-from-an-element-with-jquery" }, "id": "bad87fee1348bd9aed918626", "title": "Remove Classes from an Element with jQuery" @@ -6447,8 +5910,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-a-specific-child-of-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-a-specific-child-of-an-element-using-jquery" }, "id": "bad87fee1348bd9aed108826", "title": "Target a Specific Child of an Element Using jQuery" @@ -6459,8 +5921,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-elements-by-class-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-elements-by-class-using-jquery" }, "id": "bad87fee1348bd9aedc08826", "title": "Target Elements by Class Using jQuery" @@ -6471,8 +5932,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-elements-by-id-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-elements-by-id-using-jquery" }, "id": "bad87fee1348bd9aeda08826", "title": "Target Elements by id Using jQuery" @@ -6483,8 +5943,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-even-elements-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-even-elements-using-jquery" }, "id": "bad87fee1348bd9aed008826", "title": "Target Even Elements Using jQuery" @@ -6495,8 +5954,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery" }, "id": "bad87fee1348bd9bedc08826", "title": "Target HTML Elements with Selectors Using jQuery" @@ -6507,8 +5965,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-the-children-of-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-the-children-of-an-element-using-jquery" }, "id": "bad87fee1348bd9aed208826", "title": "Target the Children of an Element Using jQuery" @@ -6519,8 +5976,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery" }, "id": "bad87fee1348bd9aed308826", "title": "Target the Parent of an Element Using jQuery" @@ -6531,8 +5987,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/target-the-same-element-with-multiple-jquery-selectors", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/target-the-same-element-with-multiple-jquery-selectors" }, "id": "bad87fee1348bd9aed908626", "title": "Target the Same Element with Multiple jQuery Selectors" @@ -6543,8 +5998,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/use-appendto-to-move-elements-with-jquery", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/use-appendto-to-move-elements-with-jquery" }, "id": "bad87fee1348bd9aed608826", "title": "Use appendTo to Move Elements with jQuery" @@ -6555,8 +6009,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/jquery/use-jquery-to-modify-the-entire-page", - "blockName": "jQuery" + "slug": "/learn/front-end-development-libraries/jquery/use-jquery-to-modify-the-entire-page" }, "id": "bad87fee1348bd9aecb08826", "title": "Use jQuery to Modify the Entire Page" @@ -6567,8 +6020,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/access-props-using-this-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/access-props-using-this-props" }, "id": "5a24c314108439a4d403616e", "title": "Access Props Using this.props" @@ -6579,8 +6031,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/add-comments-in-jsx", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/add-comments-in-jsx" }, "id": "5a24bbe0dba28a8d3cbd4c5e", "title": "Add Comments in JSX" @@ -6591,8 +6042,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/add-event-listeners", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/add-event-listeners" }, "id": "5a24c314108439a4d403617e", "title": "Add Event Listeners" @@ -6603,8 +6053,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/add-inline-styles-in-react", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/add-inline-styles-in-react" }, "id": "5a24c314108439a4d4036182", "title": "Add Inline Styles in React" @@ -6615,8 +6064,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/bind-this-to-a-class-method", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/bind-this-to-a-class-method" }, "id": "5a24c314108439a4d4036174", "title": "Bind 'this' to a Class Method" @@ -6627,8 +6075,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state" }, "id": "5a24c314108439a4d4036189", "title": "Change Inline CSS Conditionally Based on Component State" @@ -6639,8 +6086,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/compose-react-components", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/compose-react-components" }, "id": "5a24c314108439a4d4036166", "title": "Compose React Components" @@ -6651,8 +6097,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-complex-jsx-element", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-complex-jsx-element" }, "id": "5a24bbe0dba28a8d3cbd4c5d", "title": "Create a Complex JSX Element" @@ -6663,8 +6108,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-component-with-composition", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-component-with-composition" }, "id": "5a24c314108439a4d4036164", "title": "Create a Component with Composition" @@ -6675,8 +6119,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-controlled-form", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-controlled-form" }, "id": "5a24c314108439a4d4036179", "title": "Create a Controlled Form" @@ -6687,8 +6130,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-controlled-input", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-controlled-input" }, "id": "5a24c314108439a4d4036178", "title": "Create a Controlled Input" @@ -6699,8 +6141,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-react-component", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-react-component" }, "id": "5a24c314108439a4d4036163", "title": "Create a React Component" @@ -6711,8 +6152,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-simple-jsx-element", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-simple-jsx-element" }, "id": "587d7dbc367417b2b2512bb1", "title": "Create a Simple JSX Element" @@ -6723,8 +6163,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-stateful-component", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-stateful-component" }, "id": "5a24c314108439a4d4036170", "title": "Create a Stateful Component" @@ -6735,8 +6174,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/create-a-stateless-functional-component", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/create-a-stateless-functional-component" }, "id": "5a24c314108439a4d4036162", "title": "Create a Stateless Functional Component" @@ -6747,8 +6185,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/define-an-html-class-in-jsx", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/define-an-html-class-in-jsx" }, "id": "5a24c314108439a4d4036160", "title": "Define an HTML Class in JSX" @@ -6759,8 +6196,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/give-sibling-elements-a-unique-key-attribute", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/give-sibling-elements-a-unique-key-attribute" }, "id": "5a24c314108439a4d403618b", "title": "Give Sibling Elements a Unique Key Attribute" @@ -6771,8 +6207,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/introducing-inline-styles", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/introducing-inline-styles" }, "id": "5a24c314108439a4d4036181", "title": "Introducing Inline Styles" @@ -6783,8 +6218,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/learn-about-self-closing-jsx-tags", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/learn-about-self-closing-jsx-tags" }, "id": "5a24c314108439a4d4036161", "title": "Learn About Self-Closing JSX Tags" @@ -6795,8 +6229,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate" }, "id": "5a24c314108439a4d4036180", "title": "Optimize Re-Renders with shouldComponentUpdate" @@ -6807,8 +6240,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/override-default-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/override-default-props" }, "id": "5a24c314108439a4d403616c", "title": "Override Default Props" @@ -6819,8 +6251,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/pass-a-callback-as-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/pass-a-callback-as-props" }, "id": "5a24c314108439a4d403617b", "title": "Pass a Callback as Props" @@ -6831,8 +6262,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/pass-an-array-as-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/pass-an-array-as-props" }, "id": "5a24c314108439a4d403616a", "title": "Pass an Array as Props" @@ -6843,8 +6273,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/pass-props-to-a-stateless-functional-component", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/pass-props-to-a-stateless-functional-component" }, "id": "5a24c314108439a4d4036169", "title": "Pass Props to a Stateless Functional Component" @@ -6855,8 +6284,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/pass-state-as-props-to-child-components", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/pass-state-as-props-to-child-components" }, "id": "5a24c314108439a4d403617a", "title": "Pass State as Props to Child Components" @@ -6867,8 +6295,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-a-class-component-to-the-dom", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-a-class-component-to-the-dom" }, "id": "5a24c314108439a4d4036167", "title": "Render a Class Component to the DOM" @@ -6879,8 +6306,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-conditionally-from-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-conditionally-from-props" }, "id": "5a24c314108439a4d4036188", "title": "Render Conditionally from Props" @@ -6891,8 +6317,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-html-elements-to-the-dom", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-html-elements-to-the-dom" }, "id": "5a24bbe0dba28a8d3cbd4c5f", "title": "Render HTML Elements to the DOM" @@ -6903,8 +6328,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-react-on-the-server-with-rendertostring", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-react-on-the-server-with-rendertostring" }, "id": "5a24c314108439a4d403618d", "title": "Render React on the Server with renderToString" @@ -6915,8 +6339,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-state-in-the-user-interface-another-way", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-state-in-the-user-interface-another-way" }, "id": "5a24c314108439a4d4036172", "title": "Render State in the User Interface Another Way" @@ -6927,8 +6350,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-state-in-the-user-interface", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-state-in-the-user-interface" }, "id": "5a24c314108439a4d4036171", "title": "Render State in the User Interface" @@ -6939,8 +6361,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/render-with-an-if-else-condition", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/render-with-an-if-else-condition" }, "id": "5a24c314108439a4d4036184", "title": "Render with an If-Else Condition" @@ -6951,8 +6372,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/review-using-props-with-stateless-functional-components", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/review-using-props-with-stateless-functional-components" }, "id": "5a24c314108439a4d403616f", "title": "Review Using Props with Stateless Functional Components" @@ -6963,8 +6383,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/set-state-with-this-setstate", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/set-state-with-this-setstate" }, "id": "5a24c314108439a4d4036173", "title": "Set State with this.setState" @@ -6975,8 +6394,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use--for-a-more-concise-conditional", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use--for-a-more-concise-conditional" }, "id": "5a24c314108439a4d4036185", "title": "Use && for a More Concise Conditional" @@ -6987,8 +6405,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering" }, "id": "5a24c314108439a4d4036187", "title": "Use a Ternary Expression for Conditional Rendering" @@ -6999,8 +6416,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-advanced-javascript-in-react-render-method", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-advanced-javascript-in-react-render-method" }, "id": "5a24c314108439a4d4036183", "title": "Use Advanced JavaScript in React Render Method" @@ -7011,8 +6427,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-array-filter-to-dynamically-filter-an-array", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-array-filter-to-dynamically-filter-an-array" }, "id": "5a24c314108439a4d403618c", "title": "Use Array.filter() to Dynamically Filter an Array" @@ -7023,8 +6438,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-array-map-to-dynamically-render-elements", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-array-map-to-dynamically-render-elements" }, "id": "5a24c314108439a4d403618a", "title": "Use Array.map() to Dynamically Render Elements" @@ -7035,8 +6449,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-default-props", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-default-props" }, "id": "5a24c314108439a4d403616b", "title": "Use Default Props" @@ -7047,8 +6460,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect" }, "id": "5a24c314108439a4d403616d", "title": "Use PropTypes to Define the Props You Expect" @@ -7059,8 +6471,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-react-to-render-nested-components", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-react-to-render-nested-components" }, "id": "5a24c314108439a4d4036165", "title": "Use React to Render Nested Components" @@ -7071,8 +6482,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-state-to-toggle-an-element", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-state-to-toggle-an-element" }, "id": "5a24c314108439a4d4036176", "title": "Use State to Toggle an Element" @@ -7083,8 +6493,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-the-lifecycle-method-componentdidmount", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-the-lifecycle-method-componentdidmount" }, "id": "5a24c314108439a4d403617d", "title": "Use the Lifecycle Method componentDidMount" @@ -7095,8 +6504,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount" }, "id": "5a24c314108439a4d403617c", "title": "Use the Lifecycle Method componentWillMount" @@ -7107,8 +6515,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/write-a-react-component-from-scratch", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/write-a-react-component-from-scratch" }, "id": "5a24c314108439a4d4036168", "title": "Write a React Component from Scratch" @@ -7119,8 +6526,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react/write-a-simple-counter", - "blockName": "React" + "slug": "/learn/front-end-development-libraries/react/write-a-simple-counter" }, "id": "5a24c314108439a4d4036177", "title": "Write a Simple Counter" @@ -7131,8 +6537,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/connect-redux-to-react", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/connect-redux-to-react" }, "id": "5a24c314108439a4d4036147", "title": "Connect Redux to React" @@ -7143,8 +6548,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app" }, "id": "5a24c314108439a4d4036148", "title": "Connect Redux to the Messages App" @@ -7155,8 +6559,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/extract-local-state-into-redux", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/extract-local-state-into-redux" }, "id": "5a24c314108439a4d4036149", "title": "Extract Local State into Redux" @@ -7167,8 +6570,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/extract-state-logic-to-redux", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/extract-state-logic-to-redux" }, "id": "5a24c314108439a4d4036143", "title": "Extract State Logic to Redux" @@ -7179,8 +6581,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/getting-started-with-react-redux", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/getting-started-with-react-redux" }, "id": "5a24c314108439a4d4036141", "title": "Getting Started with React Redux" @@ -7191,8 +6592,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/manage-state-locally-first", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/manage-state-locally-first" }, "id": "5a24c314108439a4d4036142", "title": "Manage State Locally First" @@ -7203,8 +6603,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/map-dispatch-to-props", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/map-dispatch-to-props" }, "id": "5a24c314108439a4d4036146", "title": "Map Dispatch to Props" @@ -7215,8 +6614,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/map-state-to-props", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/map-state-to-props" }, "id": "5a24c314108439a4d4036145", "title": "Map State to Props" @@ -7227,8 +6625,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/moving-forward-from-here", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/moving-forward-from-here" }, "id": "5a24c314108439a4d403614a", "title": "Moving Forward From Here" @@ -7239,8 +6636,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/react-and-redux/use-provider-to-connect-redux-to-react", - "blockName": "React and Redux" + "slug": "/learn/front-end-development-libraries/react-and-redux/use-provider-to-connect-redux-to-react" }, "id": "5a24c314108439a4d4036144", "title": "Use Provider to Connect Redux to React" @@ -7251,8 +6647,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/combine-multiple-reducers", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/combine-multiple-reducers" }, "id": "5a24c314108439a4d4036154", "title": "Combine Multiple Reducers" @@ -7263,8 +6658,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/copy-an-object-with-object-assign", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/copy-an-object-with-object-assign" }, "id": "5a24c314108439a4d403615b", "title": "Copy an Object with Object.assign" @@ -7275,8 +6669,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/create-a-redux-store", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/create-a-redux-store" }, "id": "5a24c314108439a4d403614b", "title": "Create a Redux Store" @@ -7287,8 +6680,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/define-a-redux-action", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/define-a-redux-action" }, "id": "5a24c314108439a4d403614d", "title": "Define a Redux Action" @@ -7299,8 +6691,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/define-an-action-creator", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/define-an-action-creator" }, "id": "5a24c314108439a4d403614e", "title": "Define an Action Creator" @@ -7311,8 +6702,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/dispatch-an-action-event", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/dispatch-an-action-event" }, "id": "5a24c314108439a4d403614f", "title": "Dispatch an Action Event" @@ -7323,8 +6713,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/get-state-from-the-redux-store", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/get-state-from-the-redux-store" }, "id": "5a24c314108439a4d403614c", "title": "Get State from the Redux Store" @@ -7335,8 +6724,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/handle-an-action-in-the-store", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/handle-an-action-in-the-store" }, "id": "5a24c314108439a4d4036150", "title": "Handle an Action in the Store" @@ -7347,8 +6735,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/never-mutate-state", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/never-mutate-state" }, "id": "5a24c314108439a4d4036158", "title": "Never Mutate State" @@ -7359,8 +6746,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/register-a-store-listener", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/register-a-store-listener" }, "id": "5a24c314108439a4d4036153", "title": "Register a Store Listener" @@ -7371,8 +6757,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/remove-an-item-from-an-array", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/remove-an-item-from-an-array" }, "id": "5a24c314108439a4d403615a", "title": "Remove an Item from an Array" @@ -7383,8 +6768,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/send-action-data-to-the-store", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/send-action-data-to-the-store" }, "id": "5a24c314108439a4d4036155", "title": "Send Action Data to the Store" @@ -7395,8 +6779,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions" }, "id": "5a24c314108439a4d4036151", "title": "Use a Switch Statement to Handle Multiple Actions" @@ -7407,8 +6790,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/use-const-for-action-types", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/use-const-for-action-types" }, "id": "5a24c314108439a4d4036152", "title": "Use const for Action Types" @@ -7419,8 +6801,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions" }, "id": "5a24c314108439a4d4036156", "title": "Use Middleware to Handle Asynchronous Actions" @@ -7431,8 +6812,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/use-the-spread-operator-on-arrays", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/use-the-spread-operator-on-arrays" }, "id": "5a24c314108439a4d4036159", "title": "Use the Spread Operator on Arrays" @@ -7443,8 +6823,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/redux/write-a-counter-with-redux", - "blockName": "Redux" + "slug": "/learn/front-end-development-libraries/redux/write-a-counter-with-redux" }, "id": "5a24c314108439a4d4036157", "title": "Write a Counter with Redux" @@ -7455,8 +6834,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/apply-a-style-until-a-condition-is-met-with-while", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/apply-a-style-until-a-condition-is-met-with-while" }, "id": "587d7dbf367417b2b2512bbb", "title": "Apply a Style Until a Condition is Met with @while" @@ -7467,8 +6845,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/create-reusable-css-with-mixins", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/create-reusable-css-with-mixins" }, "id": "587d7dbd367417b2b2512bb6", "title": "Create Reusable CSS with Mixins" @@ -7479,8 +6856,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element" }, "id": "587d7fa5367417b2b2512bbd", "title": "Extend One Set of CSS Styles to Another Element" @@ -7491,8 +6867,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/nest-css-with-sass", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/nest-css-with-sass" }, "id": "587d7dbd367417b2b2512bb5", "title": "Nest CSS with Sass" @@ -7503,8 +6878,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/split-your-styles-into-smaller-chunks-with-partials", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/split-your-styles-into-smaller-chunks-with-partials" }, "id": "587d7dbf367417b2b2512bbc", "title": "Split Your Styles into Smaller Chunks with Partials" @@ -7515,8 +6889,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/store-data-with-sass-variables", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/store-data-with-sass-variables" }, "id": "587d7dbd367417b2b2512bb4", "title": "Store Data with Sass Variables" @@ -7527,8 +6900,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list" }, "id": "587d7dbf367417b2b2512bba", "title": "Use @each to Map Over Items in a List" @@ -7539,8 +6911,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/use-for-to-create-a-sass-loop", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/use-for-to-create-a-sass-loop" }, "id": "587d7dbe367417b2b2512bb9", "title": "Use @for to Create a Sass Loop" @@ -7551,8 +6922,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles", - "blockName": "Sass" + "slug": "/learn/front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles" }, "id": "587d7dbe367417b2b2512bb8", "title": "Use @if and @else to Add Logic To Your Styles" @@ -7563,8 +6933,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart", - "blockName": "Data Visualization Projects" + "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart" }, "id": "bd7168d8c242eddfaeb5bd13", "title": "Visualize Data with a Bar Chart" @@ -7575,8 +6944,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map", - "blockName": "Data Visualization Projects" + "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map" }, "id": "587d7fa6367417b2b2512bbf", "title": "Visualize Data with a Choropleth Map" @@ -7587,8 +6955,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-heat-map", - "blockName": "Data Visualization Projects" + "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-heat-map" }, "id": "bd7188d8c242eddfaeb5bd13", "title": "Visualize Data with a Heat Map" @@ -7599,8 +6966,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph", - "blockName": "Data Visualization Projects" + "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph" }, "id": "bd7178d8c242eddfaeb5bd13", "title": "Visualize Data with a Scatterplot Graph" @@ -7611,8 +6977,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram", - "blockName": "Data Visualization Projects" + "slug": "/learn/data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram" }, "id": "587d7fa6367417b2b2512bc0", "title": "Visualize Data with a Treemap Diagram" @@ -7623,8 +6988,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-a-hover-effect-to-a-d3-element", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-a-hover-effect-to-a-d3-element" }, "id": "587d7faa367417b2b2512bd4", "title": "Add a Hover Effect to a D3 Element" @@ -7635,8 +6999,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-a-tooltip-to-a-d3-element", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-a-tooltip-to-a-d3-element" }, "id": "587d7faa367417b2b2512bd6", "title": "Add a Tooltip to a D3 Element" @@ -7647,8 +7010,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-attributes-to-the-circle-elements", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-attributes-to-the-circle-elements" }, "id": "587d7fab367417b2b2512bd8", "title": "Add Attributes to the Circle Elements" @@ -7659,8 +7021,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-axes-to-a-visualization", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-axes-to-a-visualization" }, "id": "587d7fad367417b2b2512bdf", "title": "Add Axes to a Visualization" @@ -7671,8 +7032,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-classes-with-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-classes-with-d3" }, "id": "587d7fa7367417b2b2512bc8", "title": "Add Classes with D3" @@ -7683,8 +7043,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-document-elements-with-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-document-elements-with-d3" }, "id": "587d7fa6367417b2b2512bc2", "title": "Add Document Elements with D3" @@ -7695,8 +7054,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-inline-styling-to-elements", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-inline-styling-to-elements" }, "id": "587d7fa7367417b2b2512bc6", "title": "Add Inline Styling to Elements" @@ -7707,8 +7065,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-labels-to-d3-elements", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-labels-to-d3-elements" }, "id": "587d7faa367417b2b2512bd2", "title": "Add Labels to D3 Elements" @@ -7719,8 +7076,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/add-labels-to-scatter-plot-circles", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/add-labels-to-scatter-plot-circles" }, "id": "587d7fab367417b2b2512bd9", "title": "Add Labels to Scatter Plot Circles" @@ -7731,8 +7087,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/change-styles-based-on-data", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/change-styles-based-on-data" }, "id": "587d7fa7367417b2b2512bc7", "title": "Change Styles Based on Data" @@ -7743,8 +7098,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/change-the-color-of-an-svg-element", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/change-the-color-of-an-svg-element" }, "id": "587d7fa9367417b2b2512bd1", "title": "Change the Color of an SVG Element" @@ -7755,8 +7109,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/change-the-presentation-of-a-bar-chart", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/change-the-presentation-of-a-bar-chart" }, "id": "587d7fa8367417b2b2512bca", "title": "Change the Presentation of a Bar Chart" @@ -7767,8 +7120,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-bar-for-each-data-point-in-the-set", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-bar-for-each-data-point-in-the-set" }, "id": "587d7fa8367417b2b2512bcd", "title": "Create a Bar for Each Data Point in the Set" @@ -7779,8 +7131,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-linear-scale-with-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-linear-scale-with-d3" }, "id": "587d7fab367417b2b2512bda", "title": "Create a Linear Scale with D3" @@ -7791,8 +7142,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-scatterplot-with-svg-circles", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/create-a-scatterplot-with-svg-circles" }, "id": "587d7fab367417b2b2512bd7", "title": "Create a Scatterplot with SVG Circles" @@ -7803,8 +7153,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/display-shapes-with-svg", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/display-shapes-with-svg" }, "id": "587d7fa8367417b2b2512bcc", "title": "Display Shapes with SVG" @@ -7815,8 +7164,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/dynamically-change-the-height-of-each-bar", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/dynamically-change-the-height-of-each-bar" }, "id": "587d7fa9367417b2b2512bcf", "title": "Dynamically Change the Height of Each Bar" @@ -7827,8 +7175,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/dynamically-set-the-coordinates-for-each-bar", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/dynamically-set-the-coordinates-for-each-bar" }, "id": "587d7fa9367417b2b2512bce", "title": "Dynamically Set the Coordinates for Each Bar" @@ -7839,8 +7186,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/invert-svg-elements", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/invert-svg-elements" }, "id": "587d7fa9367417b2b2512bd0", "title": "Invert SVG Elements" @@ -7851,8 +7197,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/learn-about-svg-in-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/learn-about-svg-in-d3" }, "id": "587d7fa8367417b2b2512bcb", "title": "Learn About SVG in D3" @@ -7863,8 +7208,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/select-a-group-of-elements-with-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/select-a-group-of-elements-with-d3" }, "id": "587d7fa6367417b2b2512bc3", "title": "Select a Group of Elements with D3" @@ -7875,8 +7219,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/set-a-domain-and-a-range-on-a-scale", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/set-a-domain-and-a-range-on-a-scale" }, "id": "587d7fac367417b2b2512bdb", "title": "Set a Domain and a Range on a Scale" @@ -7887,8 +7230,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/style-d3-labels", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/style-d3-labels" }, "id": "587d7faa367417b2b2512bd3", "title": "Style D3 Labels" @@ -7899,8 +7241,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/update-the-height-of-an-element-dynamically", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/update-the-height-of-an-element-dynamically" }, "id": "587d7fa8367417b2b2512bc9", "title": "Update the Height of an Element Dynamically" @@ -7911,8 +7252,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/use-a-pre-defined-scale-to-place-elements", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/use-a-pre-defined-scale-to-place-elements" }, "id": "587d7fac367417b2b2512bde", "title": "Use a Pre-Defined Scale to Place Elements" @@ -7923,8 +7263,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/use-dynamic-scales", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/use-dynamic-scales" }, "id": "587d7fac367417b2b2512bdd", "title": "Use Dynamic Scales" @@ -7935,8 +7274,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/use-the-d3-max-and-d3-min-functions-to-find-minimum-and-maximum-values-in-a-dataset", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/use-the-d3-max-and-d3-min-functions-to-find-minimum-and-maximum-values-in-a-dataset" }, "id": "587d7fac367417b2b2512bdc", "title": "Use the d3.max and d3.min Functions to Find Minimum and Maximum Values in a Dataset" @@ -7947,8 +7285,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/work-with-data-in-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/work-with-data-in-d3" }, "id": "587d7fa7367417b2b2512bc4", "title": "Work with Data in D3" @@ -7959,8 +7296,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/data-visualization-with-d3/work-with-dynamic-data-in-d3", - "blockName": "Data Visualization with D3" + "slug": "/learn/data-visualization/data-visualization-with-d3/work-with-dynamic-data-in-d3" }, "id": "587d7fa7367417b2b2512bc5", "title": "Work with Dynamic Data in D3" @@ -7971,8 +7307,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/access-the-json-data-from-an-api", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/access-the-json-data-from-an-api" }, "id": "587d7fae367417b2b2512be4", "title": "Access the JSON Data from an API" @@ -7983,8 +7318,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/change-text-with-click-events", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/change-text-with-click-events" }, "id": "587d7fad367417b2b2512be2", "title": "Change Text with click Events" @@ -7995,8 +7329,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/convert-json-data-to-html", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/convert-json-data-to-html" }, "id": "587d7fae367417b2b2512be5", "title": "Convert JSON Data to HTML" @@ -8007,8 +7340,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/get-geolocation-data-to-find-a-users-gps-coordinates", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/get-geolocation-data-to-find-a-users-gps-coordinates" }, "id": "587d7faf367417b2b2512be8", "title": "Get Geolocation Data to Find A User's GPS Coordinates" @@ -8019,8 +7351,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/get-json-with-the-javascript-fetch-method", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/get-json-with-the-javascript-fetch-method" }, "id": "5ccfad82bb2dc6c965a848e5", "title": "Get JSON with the JavaScript fetch method" @@ -8031,8 +7362,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/get-json-with-the-javascript-xmlhttprequest-method", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/get-json-with-the-javascript-xmlhttprequest-method" }, "id": "587d7fae367417b2b2512be3", "title": "Get JSON with the JavaScript XMLHttpRequest Method" @@ -8043,8 +7373,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/handle-click-events-with-javascript-using-the-onclick-property", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/handle-click-events-with-javascript-using-the-onclick-property" }, "id": "587d7fad367417b2b2512be1", "title": "Handle Click Events with JavaScript using the onclick property" @@ -8055,8 +7384,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/post-data-with-the-javascript-xmlhttprequest-method", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/post-data-with-the-javascript-xmlhttprequest-method" }, "id": "587d7faf367417b2b2512be9", "title": "Post Data with the JavaScript XMLHttpRequest Method" @@ -8067,8 +7395,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/pre-filter-json-to-get-the-data-you-need", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/pre-filter-json-to-get-the-data-you-need" }, "id": "587d7fae367417b2b2512be7", "title": "Pre-filter JSON to Get the Data You Need" @@ -8079,8 +7406,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-visualization/json-apis-and-ajax/render-images-from-data-sources", - "blockName": "JSON APIs and Ajax" + "slug": "/learn/data-visualization/json-apis-and-ajax/render-images-from-data-sources" }, "id": "587d7fae367417b2b2512be6", "title": "Render Images from Data Sources" @@ -8091,8 +7417,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker", - "blockName": "Back End Development and APIs Projects" + "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker" }, "id": "5a8b073d06fa14fcfde687aa", "title": "Exercise Tracker" @@ -8103,8 +7428,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice", - "blockName": "Back End Development and APIs Projects" + "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice" }, "id": "bd7158d8c443edefaeb5bd0f", "title": "File Metadata Microservice" @@ -8115,8 +7439,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice", - "blockName": "Back End Development and APIs Projects" + "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice" }, "id": "bd7158d8c443edefaeb5bdff", "title": "Request Header Parser Microservice" @@ -8127,8 +7450,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice", - "blockName": "Back End Development and APIs Projects" + "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice" }, "id": "bd7158d8c443edefaeb5bdef", "title": "Timestamp Microservice" @@ -8139,8 +7461,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice", - "blockName": "Back End Development and APIs Projects" + "slug": "/learn/back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice" }, "id": "bd7158d8c443edefaeb5bd0e", "title": "URL Shortener Microservice" @@ -8151,8 +7472,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/chain-middleware-to-create-a-time-server", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/chain-middleware-to-create-a-time-server" }, "id": "587d7fb1367417b2b2512bf4", "title": "Chain Middleware to Create a Time Server" @@ -8163,8 +7483,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-data-from-post-requests", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-data-from-post-requests" }, "id": "587d7fb2367417b2b2512bf8", "title": "Get Data from POST Requests" @@ -8175,8 +7494,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-query-parameter-input-from-the-client", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-query-parameter-input-from-the-client" }, "id": "587d7fb2367417b2b2512bf6", "title": "Get Query Parameter Input from the Client" @@ -8187,8 +7505,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-route-parameter-input-from-the-client", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/get-route-parameter-input-from-the-client" }, "id": "587d7fb2367417b2b2512bf5", "title": "Get Route Parameter Input from the Client" @@ -8199,8 +7516,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/implement-a-root-level-request-logger-middleware", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/implement-a-root-level-request-logger-middleware" }, "id": "587d7fb1367417b2b2512bf3", "title": "Implement a Root-Level Request Logger Middleware" @@ -8211,8 +7527,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/meet-the-node-console", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/meet-the-node-console" }, "id": "587d7fb0367417b2b2512bed", "title": "Meet the Node console" @@ -8223,8 +7538,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-an-html-file", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-an-html-file" }, "id": "587d7fb0367417b2b2512bef", "title": "Serve an HTML File" @@ -8235,8 +7549,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-json-on-a-specific-route", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-json-on-a-specific-route" }, "id": "587d7fb1367417b2b2512bf1", "title": "Serve JSON on a Specific Route" @@ -8247,8 +7560,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-static-assets", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/serve-static-assets" }, "id": "587d7fb0367417b2b2512bf0", "title": "Serve Static Assets" @@ -8259,8 +7571,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/start-a-working-express-server", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/start-a-working-express-server" }, "id": "587d7fb0367417b2b2512bee", "title": "Start a Working Express Server" @@ -8271,8 +7582,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/use-body-parser-to-parse-post-requests", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/use-body-parser-to-parse-post-requests" }, "id": "587d7fb2367417b2b2512bf7", "title": "Use body-parser to Parse POST Requests" @@ -8283,8 +7593,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/basic-node-and-express/use-the--env-file", - "blockName": "Basic Node and Express" + "slug": "/learn/back-end-development-and-apis/basic-node-and-express/use-the--env-file" }, "id": "587d7fb1367417b2b2512bf2", "title": "Use the .env File" @@ -8295,8 +7604,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-description-to-your-package-json", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-description-to-your-package-json" }, "id": "587d7fb3367417b2b2512bfc", "title": "Add a Description to Your package.json" @@ -8307,8 +7615,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-license-to-your-package-json", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-license-to-your-package-json" }, "id": "587d7fb4367417b2b2512bfe", "title": "Add a License to Your package.json" @@ -8319,8 +7626,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-version-to-your-package-json", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-a-version-to-your-package-json" }, "id": "587d7fb4367417b2b2512bff", "title": "Add a Version to Your package.json" @@ -8331,8 +7637,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-keywords-to-your-package-json", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/add-keywords-to-your-package-json" }, "id": "587d7fb4367417b2b2512bfd", "title": "Add Keywords to Your package.json" @@ -8343,8 +7648,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm" }, "id": "587d7fb4367417b2b2512c00", "title": "Expand Your Project with External Packages from npm" @@ -8355,8 +7659,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/how-to-use-package-json-the-core-of-any-node-js-project-or-npm-package", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/how-to-use-package-json-the-core-of-any-node-js-project-or-npm-package" }, "id": "587d7fb3367417b2b2512bfb", "title": "How to Use package.json, the Core of Any Node.js Project or npm Package" @@ -8367,8 +7670,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning" }, "id": "587d7fb5367417b2b2512c01", "title": "Manage npm Dependencies By Understanding Semantic Versioning" @@ -8379,8 +7681,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/remove-a-package-from-your-dependencies", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/remove-a-package-from-your-dependencies" }, "id": "587d7fb5367417b2b2512c04", "title": "Remove a Package from Your Dependencies" @@ -8391,8 +7692,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency" }, "id": "587d7fb5367417b2b2512c03", "title": "Use the Caret-Character to Use the Latest Minor Version of a Dependency" @@ -8403,8 +7703,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency", - "blockName": "Managing Packages with Npm" + "slug": "/learn/back-end-development-and-apis/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency" }, "id": "587d7fb5367417b2b2512c02", "title": "Use the Tilde-Character to Always Use the Latest Patch Version of a Dependency" @@ -8415,8 +7714,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results" }, "id": "587d7fb9367417b2b2512c12", "title": "Chain Search Query Helpers to Narrow Search Results" @@ -8427,8 +7725,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-a-model", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-a-model" }, "id": "587d7fb6367417b2b2512c07", "title": "Create a Model" @@ -8439,8 +7736,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-and-save-a-record-of-a-model", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-and-save-a-record-of-a-model" }, "id": "587d7fb6367417b2b2512c09", "title": "Create and Save a Record of a Model" @@ -8451,8 +7747,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-many-records-with-model-create", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/create-many-records-with-model-create" }, "id": "587d7fb7367417b2b2512c0a", "title": "Create Many Records with model.create()" @@ -8463,8 +7758,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/delete-many-documents-with-model-remove", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/delete-many-documents-with-model-remove" }, "id": "587d7fb8367417b2b2512c11", "title": "Delete Many Documents with model.remove()" @@ -8475,8 +7769,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/delete-one-document-using-model-findbyidandremove", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/delete-one-document-using-model-findbyidandremove" }, "id": "587d7fb8367417b2b2512c10", "title": "Delete One Document Using model.findByIdAndRemove" @@ -8487,8 +7780,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose" }, "id": "587d7fb6367417b2b2512c06", "title": "Install and Set Up Mongoose" @@ -8499,8 +7791,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save" }, "id": "587d7fb8367417b2b2512c0e", "title": "Perform Classic Updates by Running Find, Edit, then Save" @@ -8511,8 +7802,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model-findoneandupdate", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model-findoneandupdate" }, "id": "587d7fb8367417b2b2512c0f", "title": "Perform New Updates on a Document Using model.findOneAndUpdate()" @@ -8523,8 +7813,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-find-to-search-your-database", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-find-to-search-your-database" }, "id": "587d7fb7367417b2b2512c0b", "title": "Use model.find() to Search Your Database" @@ -8535,8 +7824,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-findbyid-to-search-your-database-by-id", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-findbyid-to-search-your-database-by-id" }, "id": "587d7fb7367417b2b2512c0d", "title": "Use model.findById() to Search Your Database By _id" @@ -8547,8 +7835,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-findone-to-return-a-single-matching-document-from-your-database", - "blockName": "MongoDB and Mongoose" + "slug": "/learn/back-end-development-and-apis/mongodb-and-mongoose/use-model-findone-to-return-a-single-matching-document-from-your-database" }, "id": "587d7fb7367417b2b2512c0c", "title": "Use model.findOne() to Return a Single Matching Document from Your Database" @@ -8559,8 +7846,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/announce-new-users", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/announce-new-users" }, "id": "589fc832f9fc0f352b528e78", "title": "Announce New Users" @@ -8571,8 +7857,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/authentication-strategies", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/authentication-strategies" }, "id": "5895f70df9fc0f352b528e68", "title": "Authentication Strategies" @@ -8583,8 +7868,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/authentication-with-socket-io", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/authentication-with-socket-io" }, "id": "589fc831f9fc0f352b528e77", "title": "Authentication with Socket.IO" @@ -8595,8 +7879,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules" }, "id": "589690e6f9fc0f352b528e6e", "title": "Clean Up Your Project with Modules" @@ -8607,8 +7890,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/communicate-by-emitting", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/communicate-by-emitting" }, "id": "589fc831f9fc0f352b528e75", "title": "Communicate by Emitting" @@ -8619,8 +7901,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/create-new-middleware", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/create-new-middleware" }, "id": "5895f70df9fc0f352b528e6a", "title": "Create New Middleware" @@ -8631,8 +7912,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/handle-a-disconnect", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/handle-a-disconnect" }, "id": "589fc831f9fc0f352b528e76", "title": "Handle a Disconnect" @@ -8643,8 +7923,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/hashing-your-passwords", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/hashing-your-passwords" }, "id": "58a25c98f9fc0f352b528e7f", "title": "Hashing Your Passwords" @@ -8655,8 +7934,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/how-to-put-a-profile-together", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/how-to-put-a-profile-together" }, "id": "5895f70ef9fc0f352b528e6b", "title": "How to Put a Profile Together" @@ -8667,8 +7945,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/how-to-use-passport-strategies", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/how-to-use-passport-strategies" }, "id": "5895f70df9fc0f352b528e69", "title": "How to Use Passport Strategies" @@ -8679,8 +7956,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user" }, "id": "5895f70cf9fc0f352b528e67", "title": "Implement the Serialization of a Passport User" @@ -8691,8 +7967,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii" }, "id": "589a69f5f9fc0f352b528e71", "title": "Implementation of Social Authentication II" @@ -8703,8 +7978,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii" }, "id": "589a8eb3f9fc0f352b528e72", "title": "Implementation of Social Authentication III" @@ -8715,8 +7989,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/implementation-of-social-authentication" }, "id": "589a69f5f9fc0f352b528e70", "title": "Implementation of Social Authentication" @@ -8727,8 +8000,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/logging-a-user-out", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/logging-a-user-out" }, "id": "58965611f9fc0f352b528e6c", "title": "Logging a User Out" @@ -8739,8 +8011,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/registration-of-new-users", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/registration-of-new-users" }, "id": "58966a17f9fc0f352b528e6d", "title": "Registration of New Users" @@ -8751,8 +8022,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/send-and-display-chat-messages", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/send-and-display-chat-messages" }, "id": "589fc832f9fc0f352b528e79", "title": "Send and Display Chat Messages" @@ -8763,8 +8033,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/serialization-of-a-user-object", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/serialization-of-a-user-object" }, "id": "5895f70cf9fc0f352b528e66", "title": "Serialization of a User Object" @@ -8775,8 +8044,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-a-template-engine", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-a-template-engine" }, "id": "5895f700f9fc0f352b528e63", "title": "Set up a Template Engine" @@ -8787,8 +8055,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-passport", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-passport" }, "id": "5895f70cf9fc0f352b528e65", "title": "Set up Passport" @@ -8799,8 +8066,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-the-environment", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/set-up-the-environment" }, "id": "589fc830f9fc0f352b528e74", "title": "Set up the Environment" @@ -8811,8 +8077,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/advanced-node-and-express/use-a-template-engines-powers", - "blockName": "Advanced Node and Express" + "slug": "/learn/quality-assurance/advanced-node-and-express/use-a-template-engines-powers" }, "id": "5895f70bf9fc0f352b528e64", "title": "Use a Template Engine's Powers" @@ -8823,8 +8088,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with--deepequal-and--notdeepequal", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with--deepequal-and--notdeepequal" }, "id": "587d824c367417b2b2512c4c", "title": "Assert Deep Equality with .deepEqual and .notDeepEqual" @@ -8835,8 +8099,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements" }, "id": "587d824c367417b2b2512c4d", "title": "Compare the Properties of Two Elements" @@ -8847,8 +8110,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work" }, "id": "587d824a367417b2b2512c46", "title": "Learn How JavaScript Assertions Work" @@ -8859,8 +8121,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method" }, "id": "587d824f367417b2b2512c5a", "title": "Run Functional Tests on an API Response using Chai-HTTP III - PUT method" @@ -8871,8 +8132,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method" }, "id": "587d824f367417b2b2512c5b", "title": "Run Functional Tests on an API Response using Chai-HTTP IV - PUT method" @@ -8883,8 +8143,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii" }, "id": "587d824f367417b2b2512c59", "title": "Run Functional Tests on API Endpoints using Chai-HTTP II" @@ -8895,8 +8154,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http" }, "id": "587d824e367417b2b2512c58", "title": "Run Functional Tests on API Endpoints using Chai-HTTP" @@ -8907,8 +8165,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii" }, "id": "5f8884f4c46685731aabfc41", "title": "Run Functional Tests Using a Headless Browser II" @@ -8919,8 +8176,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser" }, "id": "587d8250367417b2b2512c5d", "title": "Run Functional Tests Using a Headless Browser" @@ -8931,8 +8187,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser" }, "id": "587d824f367417b2b2512c5c", "title": "Simulate Actions Using a Headless Browser" @@ -8943,8 +8198,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness" }, "id": "587d824b367417b2b2512c49", "title": "Test for Truthiness" @@ -8955,8 +8209,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring" }, "id": "587d824d367417b2b2512c53", "title": "Test if a String Contains a Substring" @@ -8967,8 +8220,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range" }, "id": "587d824c367417b2b2512c4f", "title": "Test if a Value Falls within a Specific Range" @@ -8979,8 +8231,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string" }, "id": "587d824d367417b2b2512c52", "title": "Test if a Value is a String" @@ -8991,8 +8242,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array" }, "id": "587d824d367417b2b2512c50", "title": "Test if a Value is an Array" @@ -9003,8 +8253,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type" }, "id": "587d824e367417b2b2512c56", "title": "Test if a Value is of a Specific Data Structure Type" @@ -9015,8 +8264,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined" }, "id": "587d824b367417b2b2512c47", "title": "Test if a Variable or Function is Defined" @@ -9027,8 +8275,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item" }, "id": "587d824d367417b2b2512c51", "title": "Test if an Array Contains an Item" @@ -9039,8 +8286,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property" }, "id": "587d824e367417b2b2512c55", "title": "Test if an Object has a Property" @@ -9051,8 +8297,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor" }, "id": "587d824e367417b2b2512c57", "title": "Test if an Object is an Instance of a Constructor" @@ -9063,8 +8308,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another" }, "id": "587d824c367417b2b2512c4e", "title": "Test if One Value is Below or At Least as Large as Another" @@ -9075,8 +8319,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-assert-isok-and-assert-isnotok", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-assert-isok-and-assert-isnotok" }, "id": "587d824b367417b2b2512c48", "title": "Use Assert.isOK and Assert.isNotOK" @@ -9087,8 +8330,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string" }, "id": "587d824d367417b2b2512c54", "title": "Use Regular Expressions to Test a String" @@ -9099,8 +8341,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality" }, "id": "587d824b367417b2b2512c4a", "title": "Use the Double Equals to Assert Equality" @@ -9111,8 +8352,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality", - "blockName": "Quality Assurance and Testing with Chai" + "slug": "/learn/quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality" }, "id": "587d824b367417b2b2512c4b", "title": "Use the Triple Equals to Assert Strict Equality" @@ -9123,8 +8363,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-projects/american-british-translator", - "blockName": "Quality Assurance Projects" + "slug": "/learn/quality-assurance/quality-assurance-projects/american-british-translator" }, "id": "5e601c0d5ac9d0ecd8b94afe", "title": "American British Translator" @@ -9135,8 +8374,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-projects/issue-tracker", - "blockName": "Quality Assurance Projects" + "slug": "/learn/quality-assurance/quality-assurance-projects/issue-tracker" }, "id": "587d8249367417b2b2512c42", "title": "Issue Tracker" @@ -9147,8 +8385,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-projects/metric-imperial-converter", - "blockName": "Quality Assurance Projects" + "slug": "/learn/quality-assurance/quality-assurance-projects/metric-imperial-converter" }, "id": "587d8249367417b2b2512c41", "title": "Metric-Imperial Converter" @@ -9159,8 +8396,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-projects/personal-library", - "blockName": "Quality Assurance Projects" + "slug": "/learn/quality-assurance/quality-assurance-projects/personal-library" }, "id": "587d824a367417b2b2512c43", "title": "Personal Library" @@ -9171,8 +8407,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/quality-assurance/quality-assurance-projects/sudoku-solver", - "blockName": "Quality Assurance Projects" + "slug": "/learn/quality-assurance/quality-assurance-projects/sudoku-solver" }, "id": "5e601bf95ac9d0ecd8b94afd", "title": "Sudoku Solver" @@ -9183,8 +8418,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/build-your-own-functions", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/build-your-own-functions" }, "id": "5e7b9f060b6c005b0e76f05b", "title": "Build your own Functions" @@ -9195,8 +8429,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples" }, "id": "5e7b9f0b0b6c005b0e76f06d", "title": "Comparing and Sorting Tuples" @@ -9207,8 +8440,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/conditional-execution", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/conditional-execution" }, "id": "5e7b9f050b6c005b0e76f058", "title": "Conditional Execution" @@ -9219,8 +8451,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists" }, "id": "5e7b9f6a0b6c005b0e76f097", "title": "Data Visualization: Mailing Lists" @@ -9231,8 +8462,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/data-visualization-page-rank", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/data-visualization-page-rank" }, "id": "5e7b9f6a0b6c005b0e76f096", "title": "Data Visualization: Page Rank" @@ -9243,8 +8473,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/dictionaries-and-loops", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/dictionaries-and-loops" }, "id": "5e7b9f0a0b6c005b0e76f069", "title": "Dictionaries and Loops" @@ -9255,8 +8484,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/dictionaries-common-applications", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/dictionaries-common-applications" }, "id": "5e7b9f090b6c005b0e76f068", "title": "Dictionaries: Common Applications" @@ -9267,8 +8495,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/files-as-a-sequence", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/files-as-a-sequence" }, "id": "5e7b9f080b6c005b0e76f063", "title": "Files as a Sequence" @@ -9279,8 +8506,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/intermediate-expressions", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/intermediate-expressions" }, "id": "5e7b9f050b6c005b0e76f057", "title": "Intermediate Expressions" @@ -9291,8 +8517,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/intermediate-strings", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/intermediate-strings" }, "id": "5e7b9f070b6c005b0e76f061", "title": "Intermediate Strings" @@ -9303,8 +8528,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-elements-of-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-elements-of-python" }, "id": "5e6a54c358d3af90110a60a3", "title": "Introduction: Elements of Python" @@ -9315,8 +8539,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-hardware-architecture", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-hardware-architecture" }, "id": "5e6a54af58d3af90110a60a1", "title": "Introduction: Hardware Architecture" @@ -9327,8 +8550,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-python-as-a-language", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-python-as-a-language" }, "id": "5e6a54ba58d3af90110a60a2", "title": "Introduction: Python as a Language" @@ -9339,8 +8561,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-why-program", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/introduction-why-program" }, "id": "5e6a54a558d3af90110a60a0", "title": "Introduction: Why Program?" @@ -9351,8 +8572,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-definite-loops", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-definite-loops" }, "id": "5e7b9f070b6c005b0e76f05d", "title": "Iterations: Definite Loops" @@ -9363,8 +8583,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-loop-idioms", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-loop-idioms" }, "id": "5e7b9f070b6c005b0e76f05e", "title": "Iterations: Loop Idioms" @@ -9375,8 +8594,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-more-patterns", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/iterations-more-patterns" }, "id": "5e7b9f070b6c005b0e76f05f", "title": "Iterations: More Patterns" @@ -9387,8 +8605,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/loops-and-iterations", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/loops-and-iterations" }, "id": "5e7b9f060b6c005b0e76f05c", "title": "Loops and Iterations" @@ -9399,8 +8616,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/make-a-relational-database", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/make-a-relational-database" }, "id": "5e7b9f170b6c005b0e76f08b", "title": "Make a Relational Database" @@ -9411,8 +8627,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/more-conditional-structures", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/more-conditional-structures" }, "id": "5e7b9f060b6c005b0e76f059", "title": "More Conditional Structures" @@ -9423,8 +8638,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-protocol", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-protocol" }, "id": "5e7b9f0c0b6c005b0e76f072", "title": "Networking Protocol" @@ -9435,8 +8649,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-text-processing", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-text-processing" }, "id": "5e7b9f0c0b6c005b0e76f074", "title": "Networking: Text Processing" @@ -9447,8 +8660,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-using-urllib-in-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-using-urllib-in-python" }, "id": "5e7b9f0d0b6c005b0e76f075", "title": "Networking: Using urllib in Python" @@ -9459,8 +8671,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python" }, "id": "5e7b9f0d0b6c005b0e76f076", "title": "Networking: Web Scraping with Python" @@ -9471,8 +8682,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-with-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-with-python" }, "id": "5e7b9f0c0b6c005b0e76f071", "title": "Networking with Python" @@ -9483,8 +8693,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-write-a-web-browser", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/networking-write-a-web-browser" }, "id": "5e7b9f0c0b6c005b0e76f073", "title": "Networking: Write a Web Browser" @@ -9495,8 +8704,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/object-lifecycle", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/object-lifecycle" }, "id": "5e7b9f170b6c005b0e76f087", "title": "Object Lifecycle" @@ -9507,8 +8715,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/objects-a-sample-class", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/objects-a-sample-class" }, "id": "5e7b9f160b6c005b0e76f086", "title": "Objects: A Sample Class" @@ -9519,8 +8726,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/objects-inheritance", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/objects-inheritance" }, "id": "5e7b9f170b6c005b0e76f088", "title": "Objects: Inheritance" @@ -9531,8 +8737,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-dictionaries", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-dictionaries" }, "id": "5e7b9f090b6c005b0e76f067", "title": "Python Dictionaries" @@ -9543,8 +8748,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-functions", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-functions" }, "id": "5e7b9f060b6c005b0e76f05a", "title": "Python Functions" @@ -9555,8 +8759,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-lists", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-lists" }, "id": "5e7b9f080b6c005b0e76f064", "title": "Python Lists" @@ -9567,8 +8770,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-objects", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/python-objects" }, "id": "5e7b9f160b6c005b0e76f085", "title": "Python Objects" @@ -9579,8 +8781,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/reading-files", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/reading-files" }, "id": "5e7b9f080b6c005b0e76f062", "title": "Reading Files" @@ -9591,8 +8792,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions-matching-and-extracting-data", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions-matching-and-extracting-data" }, "id": "5e7b9f0b0b6c005b0e76f06f", "title": "Regular Expressions: Matching and Extracting Data" @@ -9603,8 +8803,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions-practical-applications", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions-practical-applications" }, "id": "5e7b9f0b0b6c005b0e76f070", "title": "Regular Expressions: Practical Applications" @@ -9615,8 +8814,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/regular-expressions" }, "id": "5e7b9f0b0b6c005b0e76f06e", "title": "Regular Expressions" @@ -9627,8 +8825,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-database-design", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-database-design" }, "id": "5e7b9f180b6c005b0e76f08c", "title": "Relational Database Design" @@ -9639,8 +8836,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite" }, "id": "5e7b9f170b6c005b0e76f08a", "title": "Relational Databases and SQLite" @@ -9651,8 +8847,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-join-operation", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-join-operation" }, "id": "5e7b9f180b6c005b0e76f08f", "title": "Relational Databases: Join Operation" @@ -9663,8 +8858,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships" }, "id": "5e7b9f190b6c005b0e76f090", "title": "Relational Databases: Many-to-many Relationships" @@ -9675,8 +8869,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-relationship-building", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/relational-databases-relationship-building" }, "id": "5e7b9f180b6c005b0e76f08e", "title": "Relational Databases: Relationship Building" @@ -9687,8 +8880,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/representing-relationships-in-a-relational-database", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/representing-relationships-in-a-relational-database" }, "id": "5e7b9f180b6c005b0e76f08d", "title": "Representing Relationships in a Relational Database" @@ -9699,8 +8891,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/strings-and-lists", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/strings-and-lists" }, "id": "5e7b9f090b6c005b0e76f066", "title": "Strings and Lists" @@ -9711,8 +8902,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/strings-in-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/strings-in-python" }, "id": "5e7b9f070b6c005b0e76f060", "title": "Strings in Python" @@ -9723,8 +8913,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/the-tuples-collection", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/the-tuples-collection" }, "id": "5e7b9f0a0b6c005b0e76f06c", "title": "The Tuples Collection" @@ -9735,8 +8924,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/using-web-services", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/using-web-services" }, "id": "5e7b9f0e0b6c005b0e76f07a", "title": "Using Web Services" @@ -9747,8 +8935,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/variables-expressions-and-statements", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/variables-expressions-and-statements" }, "id": "5e7b9f050b6c005b0e76f056", "title": "Variables, Expressions, and Statements" @@ -9759,8 +8946,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/visualizing-data-with-python", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/visualizing-data-with-python" }, "id": "5e7b9f690b6c005b0e76f095", "title": "Visualizing Data with Python" @@ -9771,8 +8957,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security" }, "id": "5e7b9f150b6c005b0e76f080", "title": "Web Services: API Rate Limiting and Security" @@ -9783,8 +8968,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-apis", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-apis" }, "id": "5e7b9f150b6c005b0e76f07f", "title": "Web Services: APIs" @@ -9795,8 +8979,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-json", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-json" }, "id": "5e7b9f140b6c005b0e76f07d", "title": "Web Services: JSON" @@ -9807,8 +8990,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-service-oriented-approach", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-service-oriented-approach" }, "id": "5e7b9f140b6c005b0e76f07e", "title": "Web Services: Service Oriented Approach" @@ -9819,8 +9001,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-xml-schema", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-xml-schema" }, "id": "5e7b9f0e0b6c005b0e76f07c", "title": "Web Services: XML Schema" @@ -9831,8 +9012,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-xml", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/web-services-xml" }, "id": "5e7b9f0e0b6c005b0e76f07b", "title": "Web Services: XML" @@ -9843,8 +9023,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/python-for-everybody/working-with-lists", - "blockName": "Python for Everybody" + "slug": "/learn/scientific-computing-with-python/python-for-everybody/working-with-lists" }, "id": "5e7b9f090b6c005b0e76f065", "title": "Working with Lists" @@ -9855,8 +9034,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter", - "blockName": "Scientific Computing with Python Projects" + "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter" }, "id": "5e44412c903586ffb414c94c", "title": "Arithmetic Formatter" @@ -9867,8 +9045,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/budget-app", - "blockName": "Scientific Computing with Python Projects" + "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/budget-app" }, "id": "5e44413e903586ffb414c94e", "title": "Budget App" @@ -9879,8 +9056,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator", - "blockName": "Scientific Computing with Python Projects" + "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator" }, "id": "5e444147903586ffb414c94f", "title": "Polygon Area Calculator" @@ -9891,8 +9067,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator", - "blockName": "Scientific Computing with Python Projects" + "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator" }, "id": "5e44414f903586ffb414c950", "title": "Probability Calculator" @@ -9903,8 +9078,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator", - "blockName": "Scientific Computing with Python Projects" + "slug": "/learn/scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator" }, "id": "5e444136903586ffb414c94d", "title": "Time Calculator" @@ -9915,8 +9089,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a" }, "id": "5e9a093a74c4063ca6f7c14d", "title": "Data Analysis Example A" @@ -9927,8 +9100,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b" }, "id": "5e9a093a74c4063ca6f7c14e", "title": "Data Analysis Example B" @@ -9939,8 +9111,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations" }, "id": "5e9a093a74c4063ca6f7c160", "title": "Data Cleaning and Visualizations" @@ -9951,8 +9122,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates" }, "id": "5e9a093a74c4063ca6f7c15f", "title": "Data Cleaning Duplicates" @@ -9963,8 +9133,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction" }, "id": "5e9a093a74c4063ca6f7c15d", "title": "Data Cleaning Introduction" @@ -9975,8 +9144,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-with-dataframes", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/data-cleaning-with-dataframes" }, "id": "5e9a093a74c4063ca6f7c15e", "title": "Data Cleaning with DataFrames" @@ -9987,8 +9155,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro" }, "id": "5e9a093a74c4063ca6f7c14f", "title": "How to use Jupyter Notebooks Intro" @@ -9999,8 +9166,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis" }, "id": "5e9a093a74c4063ca6f7c14c", "title": "Introduction to Data Analysis" @@ -10011,8 +9177,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells" }, "id": "5e9a093a74c4063ca6f7c150", "title": "Jupyter Notebooks Cells" @@ -10023,8 +9188,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data" }, "id": "5e9a093a74c4063ca6f7c151", "title": "Jupyter Notebooks Importing and Exporting Data" @@ -10035,8 +9199,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-algebra-and-size", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-algebra-and-size" }, "id": "5e9a093a74c4063ca6f7c157", "title": "Numpy Algebra and Size" @@ -10047,8 +9210,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-arrays", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-arrays" }, "id": "5e9a093a74c4063ca6f7c154", "title": "Numpy Arrays" @@ -10059,8 +9221,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-boolean-arrays", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-boolean-arrays" }, "id": "5e9a093a74c4063ca6f7c156", "title": "Numpy Boolean Arrays" @@ -10071,8 +9232,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-introduction-a", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-introduction-a" }, "id": "5e9a093a74c4063ca6f7c152", "title": "Numpy Introduction A" @@ -10083,8 +9243,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-introduction-b", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-introduction-b" }, "id": "5e9a093a74c4063ca6f7c153", "title": "Numpy Introduction B" @@ -10095,8 +9254,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-operations", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/numpy-operations" }, "id": "5e9a093a74c4063ca6f7c155", "title": "Numpy Operations" @@ -10107,8 +9265,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-conditional-selection-and-modifying-dataframes", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-conditional-selection-and-modifying-dataframes" }, "id": "5e9a093a74c4063ca6f7c15b", "title": "Pandas Conditional Selection and Modifying DataFrames" @@ -10119,8 +9276,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-creating-columns", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-creating-columns" }, "id": "5e9a093a74c4063ca6f7c15c", "title": "Pandas Creating Columns" @@ -10131,8 +9287,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-dataframes", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-dataframes" }, "id": "5e9a093a74c4063ca6f7c15a", "title": "Pandas DataFrames" @@ -10143,8 +9298,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-indexing-and-conditional-selection", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-indexing-and-conditional-selection" }, "id": "5e9a093a74c4063ca6f7c159", "title": "Pandas Indexing and Conditional Selection" @@ -10155,8 +9309,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-introduction", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/pandas-introduction" }, "id": "5e9a093a74c4063ca6f7c158", "title": "Pandas Introduction" @@ -10167,8 +9320,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data" }, "id": "5e9a093a74c4063ca6f7c164", "title": "Parsing HTML and Saving Data" @@ -10179,8 +9331,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections" }, "id": "5e9a093a74c4063ca6f7c166", "title": "Python Functions and Collections" @@ -10191,8 +9342,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-introduction", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-introduction" }, "id": "5e9a093a74c4063ca6f7c165", "title": "Python Introduction" @@ -10203,8 +9353,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules" }, "id": "5e9a093a74c4063ca6f7c167", "title": "Python Iteration and Modules" @@ -10215,8 +9364,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-csv-and-txt", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-csv-and-txt" }, "id": "5e9a093a74c4063ca6f7c162", "title": "Reading Data CSV and TXT" @@ -10227,8 +9375,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-from-databases", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-from-databases" }, "id": "5e9a093a74c4063ca6f7c163", "title": "Reading Data from Databases" @@ -10239,8 +9386,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction", - "blockName": "Data Analysis with Python Course" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction" }, "id": "5e9a093a74c4063ca6f7c161", "title": "Reading Data Introduction" @@ -10251,8 +9397,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer", - "blockName": "Data Analysis with Python Projects" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer" }, "id": "5e46f7e5ac417301a38fb929", "title": "Demographic Data Analyzer" @@ -10263,8 +9408,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator", - "blockName": "Data Analysis with Python Projects" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator" }, "id": "5e46f7e5ac417301a38fb928", "title": "Mean-Variance-Standard Deviation Calculator" @@ -10275,8 +9419,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer", - "blockName": "Data Analysis with Python Projects" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer" }, "id": "5e46f7f8ac417301a38fb92a", "title": "Medical Data Visualizer" @@ -10287,8 +9430,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer", - "blockName": "Data Analysis with Python Projects" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer" }, "id": "5e46f802ac417301a38fb92b", "title": "Page View Time Series Visualizer" @@ -10299,8 +9441,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor", - "blockName": "Data Analysis with Python Projects" + "slug": "/learn/data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor" }, "id": "5e4f5c4b570f7e3a4949899f", "title": "Sea Level Predictor" @@ -10311,8 +9452,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/accessing-and-changing-elements-rows-columns", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/accessing-and-changing-elements-rows-columns" }, "id": "5e9a0a8e09c5df3cc3600ed4", "title": "Accessing and Changing Elements, Rows, Columns" @@ -10323,8 +9463,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/basics-of-numpy", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/basics-of-numpy" }, "id": "5e9a0a8e09c5df3cc3600ed3", "title": "Basics of Numpy" @@ -10335,8 +9474,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/copying-arrays-warning", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/copying-arrays-warning" }, "id": "5e9a0a8e09c5df3cc3600ed7", "title": "Copying Arrays Warning" @@ -10347,8 +9485,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/initialize-array-problem", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/initialize-array-problem" }, "id": "5e9a0a8e09c5df3cc3600ed6", "title": "Initialize Array Problem" @@ -10359,8 +9496,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/initializing-different-arrays", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/initializing-different-arrays" }, "id": "5e9a0a8e09c5df3cc3600ed5", "title": "Initializing Different Arrays" @@ -10371,8 +9507,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/loading-data-and-advanced-indexing", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/loading-data-and-advanced-indexing" }, "id": "5e9a0a8e09c5df3cc3600eda", "title": "Loading Data and Advanced Indexing" @@ -10383,8 +9518,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/mathematics", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/mathematics" }, "id": "5e9a0a8e09c5df3cc3600ed8", "title": "Mathematics" @@ -10395,8 +9529,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/reorganizing-arrays", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/reorganizing-arrays" }, "id": "5e9a0a8e09c5df3cc3600ed9", "title": "Reorganizing Arrays" @@ -10407,8 +9540,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/data-analysis-with-python/numpy/what-is-numpy", - "blockName": "Numpy" + "slug": "/learn/data-analysis-with-python/numpy/what-is-numpy" }, "id": "5e9a0a8e09c5df3cc3600ed2", "title": "What is NumPy" @@ -10419,8 +9551,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-projects/anonymous-message-board", - "blockName": "Information Security Projects" + "slug": "/learn/information-security/information-security-projects/anonymous-message-board" }, "id": "587d824a367417b2b2512c45", "title": "Anonymous Message Board" @@ -10431,8 +9562,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-projects/port-scanner", - "blockName": "Information Security Projects" + "slug": "/learn/information-security/information-security-projects/port-scanner" }, "id": "5e46f979ac417301a38fb932", "title": "Port Scanner" @@ -10443,8 +9573,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-projects/secure-real-time-multiplayer-game", - "blockName": "Information Security Projects" + "slug": "/learn/information-security/information-security-projects/secure-real-time-multiplayer-game" }, "id": "5e601c775ac9d0ecd8b94aff", "title": "Secure Real Time Multiplayer Game" @@ -10455,8 +9584,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-projects/sha-1-password-cracker", - "blockName": "Information Security Projects" + "slug": "/learn/information-security/information-security-projects/sha-1-password-cracker" }, "id": "5e46f983ac417301a38fb933", "title": "SHA-1 Password Cracker" @@ -10467,8 +9595,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-projects/stock-price-checker", - "blockName": "Information Security Projects" + "slug": "/learn/information-security/information-security-projects/stock-price-checker" }, "id": "587d824a367417b2b2512c44", "title": "Stock Price Checker" @@ -10479,8 +9606,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts" }, "id": "587d8248367417b2b2512c3c", "title": "Ask Browsers to Access Your Site via HTTPS Only with helmet.hsts()" @@ -10491,8 +9617,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet-nosniff", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet-nosniff" }, "id": "587d8248367417b2b2512c3a", "title": "Avoid Inferring the Response MIME Type with helmet.noSniff()" @@ -10503,8 +9628,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware" }, "id": "587d8249367417b2b2512c40", "title": "Configure Helmet Using the ‘parent’ helmet() Middleware" @@ -10515,8 +9639,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet-nocache", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet-nocache" }, "id": "587d8249367417b2b2512c3e", "title": "Disable Client-Side Caching with helmet.noCache()" @@ -10527,8 +9650,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet-dnsprefetchcontrol", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet-dnsprefetchcontrol" }, "id": "587d8248367417b2b2512c3d", "title": "Disable DNS Prefetching with helmet.dnsPrefetchControl()" @@ -10539,8 +9661,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously" }, "id": "58a25bcff9fc0f352b528e7d", "title": "Hash and Compare Passwords Asynchronously" @@ -10551,8 +9672,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously" }, "id": "58a25bcff9fc0f352b528e7e", "title": "Hash and Compare Passwords Synchronously" @@ -10563,8 +9683,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet-hidepoweredby", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet-hidepoweredby" }, "id": "587d8247367417b2b2512c37", "title": "Hide Potentially Dangerous Information Using helmet.hidePoweredBy()" @@ -10575,8 +9694,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/install-and-require-helmet", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/install-and-require-helmet" }, "id": "587d8247367417b2b2512c36", "title": "Install and Require Helmet" @@ -10587,8 +9705,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet-frameguard", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet-frameguard" }, "id": "587d8247367417b2b2512c38", "title": "Mitigate the Risk of Clickjacking with helmet.frameguard()" @@ -10599,8 +9716,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/mitigate-the-risk-of-cross-site-scripting-xss-attacks-with-helmet-xssfilter", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/mitigate-the-risk-of-cross-site-scripting-xss-attacks-with-helmet-xssfilter" }, "id": "587d8247367417b2b2512c39", "title": "Mitigate the Risk of Cross Site Scripting (XSS) Attacks with helmet.xssFilter()" @@ -10611,8 +9727,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/prevent-ie-from-opening-untrusted-html-with-helmet-ienoopen", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/prevent-ie-from-opening-untrusted-html-with-helmet-ienoopen" }, "id": "587d8248367417b2b2512c3b", "title": "Prevent IE from Opening Untrusted HTML with helmet.ieNoOpen()" @@ -10623,8 +9738,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/set-a-content-security-policy-with-helmet-contentsecuritypolicy", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/set-a-content-security-policy-with-helmet-contentsecuritypolicy" }, "id": "587d8249367417b2b2512c3f", "title": "Set a Content Security Policy with helmet.contentSecurityPolicy()" @@ -10635,8 +9749,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/information-security-with-helmetjs/understand-bcrypt-hashes", - "blockName": "Information Security with HelmetJS" + "slug": "/learn/information-security/information-security-with-helmetjs/understand-bcrypt-hashes" }, "id": "58a25bcef9fc0f352b528e7c", "title": "Understand BCrypt Hashes" @@ -10647,8 +9760,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/creating-a-tcp-client", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/creating-a-tcp-client" }, "id": "5ea9997bbec2e9bc47e94db0", "title": "Creating a TCP Client" @@ -10659,8 +9771,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/developing-a-banner-grabber", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/developing-a-banner-grabber" }, "id": "5ea9997bbec2e9bc47e94db3", "title": "Developing a Banner Grabber" @@ -10671,8 +9782,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/developing-a-port-scanner", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/developing-a-port-scanner" }, "id": "5ea9997bbec2e9bc47e94db4", "title": "Developing a Port Scanner" @@ -10683,8 +9793,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/developing-an-nmap-scanner-part-1", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/developing-an-nmap-scanner-part-1" }, "id": "5ea9997bbec2e9bc47e94db1", "title": "Developing an Nmap Scanner part 1" @@ -10695,8 +9804,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/developing-an-nmap-scanner-part-2", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/developing-an-nmap-scanner-part-2" }, "id": "5ea9997bbec2e9bc47e94db2", "title": "Developing an Nmap Scanner part 2" @@ -10707,8 +9815,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/introduction-and-setup", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/introduction-and-setup" }, "id": "5ea9997bbec2e9bc47e94dae", "title": "Introduction and Setup" @@ -10719,8 +9826,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/information-security/python-for-penetration-testing/understanding-sockets-and-creating-a-tcp-server", - "blockName": "Python for Penetration Testing" + "slug": "/learn/information-security/python-for-penetration-testing/understanding-sockets-and-creating-a-tcp-server" }, "id": "5ea9997bbec2e9bc47e94daf", "title": "Understanding Sockets and Creating a TCP Server" @@ -10731,8 +9837,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/find-the-symmetric-difference", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/find-the-symmetric-difference" }, "id": "a3f503de51cf954ede28891d", "title": "Find the Symmetric Difference" @@ -10743,8 +9848,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-binary-search", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-binary-search" }, "id": "61abc7ebf3029b56226de5b6", "title": "Implement Binary Search" @@ -10755,8 +9859,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-bubble-sort", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-bubble-sort" }, "id": "8d5123c8c441eddfaeb5bdef", "title": "Implement Bubble Sort" @@ -10767,8 +9870,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-insertion-sort", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-insertion-sort" }, "id": "587d8259367417b2b2512c86", "title": "Implement Insertion Sort" @@ -10779,8 +9881,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-merge-sort", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-merge-sort" }, "id": "587d825c367417b2b2512c8f", "title": "Implement Merge Sort" @@ -10791,8 +9892,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-quick-sort", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-quick-sort" }, "id": "587d825a367417b2b2512c89", "title": "Implement Quick Sort" @@ -10803,8 +9903,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/implement-selection-sort", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/implement-selection-sort" }, "id": "587d8259367417b2b2512c85", "title": "Implement Selection Sort" @@ -10815,8 +9914,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/inventory-update", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/inventory-update" }, "id": "a56138aff60341a09ed6c480", "title": "Inventory Update" @@ -10827,8 +9925,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/no-repeats-please", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/no-repeats-please" }, "id": "a7bf700cd123b9a54eef01d5", "title": "No Repeats Please" @@ -10839,8 +9936,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/algorithms/pairwise", - "blockName": "Algorithms" + "slug": "/learn/coding-interview-prep/algorithms/pairwise" }, "id": "a3f503de51cfab748ff001aa", "title": "Pairwise" @@ -10851,8 +9947,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/add-a-new-element-to-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/add-a-new-element-to-a-binary-search-tree" }, "id": "587d8257367417b2b2512c7b", "title": "Add a New Element to a Binary Search Tree" @@ -10863,8 +9958,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/add-elements-at-a-specific-index-in-a-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/add-elements-at-a-specific-index-in-a-linked-list" }, "id": "587d8252367417b2b2512c67", "title": "Add Elements at a Specific Index in a Linked List" @@ -10875,8 +9969,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/adjacency-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/adjacency-list" }, "id": "587d8256367417b2b2512c77", "title": "Adjacency List" @@ -10887,8 +9980,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/adjacency-matrix", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/adjacency-matrix" }, "id": "587d8256367417b2b2512c78", "title": "Adjacency Matrix" @@ -10899,8 +9991,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/breadth-first-search", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/breadth-first-search" }, "id": "587d825c367417b2b2512c90", "title": "Breadth-First Search" @@ -10911,8 +10002,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/check-if-an-element-is-present-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/check-if-an-element-is-present-in-a-binary-search-tree" }, "id": "587d8257367417b2b2512c7c", "title": "Check if an Element is Present in a Binary Search Tree" @@ -10923,8 +10013,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/check-if-tree-is-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/check-if-tree-is-binary-search-tree" }, "id": "5cc0c1b32479e176caf3b422", "title": "Check if Tree is Binary Search Tree" @@ -10935,8 +10024,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-circular-queue", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-circular-queue" }, "id": "587d8255367417b2b2512c75", "title": "Create a Circular Queue" @@ -10947,8 +10035,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-doubly-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-doubly-linked-list" }, "id": "587d825a367417b2b2512c87", "title": "Create a Doubly Linked List" @@ -10959,8 +10046,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-hash-table", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-hash-table" }, "id": "587d825b367417b2b2512c8e", "title": "Create a Hash Table" @@ -10971,8 +10057,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-linked-list-class", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-linked-list-class" }, "id": "587d8251367417b2b2512c62", "title": "Create a Linked List Class" @@ -10983,8 +10068,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-map-data-structure", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-map-data-structure" }, "id": "8d5823c8c441eddfaeb5bdef", "title": "Create a Map Data Structure" @@ -10995,8 +10079,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-priority-queue-class", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-priority-queue-class" }, "id": "587d8255367417b2b2512c74", "title": "Create a Priority Queue Class" @@ -11007,8 +10090,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-queue-class", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-queue-class" }, "id": "587d8250367417b2b2512c60", "title": "Create a Queue Class" @@ -11019,8 +10101,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-set-class", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-set-class" }, "id": "8d1323c8c441eddfaeb5bdef", "title": "Create a Set Class" @@ -11031,8 +10112,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-stack-class", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-stack-class" }, "id": "587d8250367417b2b2512c5f", "title": "Create a Stack Class" @@ -11043,8 +10123,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-a-trie-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-a-trie-search-tree" }, "id": "587d8259367417b2b2512c84", "title": "Create a Trie Search Tree" @@ -11055,8 +10134,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-an-es6-javascript-map", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-an-es6-javascript-map" }, "id": "587d825b367417b2b2512c8d", "title": "Create an ES6 JavaScript Map" @@ -11067,8 +10145,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/create-and-add-to-sets-in-es6", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/create-and-add-to-sets-in-es6" }, "id": "587d8254367417b2b2512c70", "title": "Create and Add to Sets in ES6" @@ -11079,8 +10156,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/delete-a-leaf-node-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/delete-a-leaf-node-in-a-binary-search-tree" }, "id": "587d8258367417b2b2512c80", "title": "Delete a Leaf Node in a Binary Search Tree" @@ -11091,8 +10167,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/delete-a-node-with-one-child-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/delete-a-node-with-one-child-in-a-binary-search-tree" }, "id": "587d8258367417b2b2512c81", "title": "Delete a Node with One Child in a Binary Search Tree" @@ -11103,8 +10178,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/delete-a-node-with-two-children-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/delete-a-node-with-two-children-in-a-binary-search-tree" }, "id": "587d8258367417b2b2512c82", "title": "Delete a Node with Two Children in a Binary Search Tree" @@ -11115,8 +10189,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/depth-first-search", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/depth-first-search" }, "id": "587d825d367417b2b2512c96", "title": "Depth-First Search" @@ -11127,8 +10200,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/find-the-minimum-and-maximum-height-of-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/find-the-minimum-and-maximum-height-of-a-binary-search-tree" }, "id": "587d8257367417b2b2512c7d", "title": "Find the Minimum and Maximum Height of a Binary Search Tree" @@ -11139,8 +10211,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/find-the-minimum-and-maximum-value-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/find-the-minimum-and-maximum-value-in-a-binary-search-tree" }, "id": "587d8256367417b2b2512c7a", "title": "Find the Minimum and Maximum Value in a Binary Search Tree" @@ -11151,8 +10222,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/implement-heap-sort-with-a-min-heap", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/implement-heap-sort-with-a-min-heap" }, "id": "587d825b367417b2b2512c8c", "title": "Implement Heap Sort with a Min Heap" @@ -11163,8 +10233,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/incidence-matrix", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/incidence-matrix" }, "id": "587d8256367417b2b2512c79", "title": "Incidence Matrix" @@ -11175,8 +10244,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/insert-an-element-into-a-max-heap", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/insert-an-element-into-a-max-heap" }, "id": "587d825a367417b2b2512c8a", "title": "Insert an Element into a Max Heap" @@ -11187,8 +10255,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/invert-a-binary-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/invert-a-binary-tree" }, "id": "587d8259367417b2b2512c83", "title": "Invert a Binary Tree" @@ -11199,8 +10266,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/learn-how-a-stack-works", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/learn-how-a-stack-works" }, "id": "587d8250367417b2b2512c5e", "title": "Learn how a Stack Works" @@ -11211,8 +10277,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/perform-a-difference-on-two-sets-of-data", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/perform-a-difference-on-two-sets-of-data" }, "id": "587d8254367417b2b2512c6e", "title": "Perform a Difference on Two Sets of Data" @@ -11223,8 +10288,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/perform-a-subset-check-on-two-sets-of-data", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/perform-a-subset-check-on-two-sets-of-data" }, "id": "587d8254367417b2b2512c6f", "title": "Perform a Subset Check on Two Sets of Data" @@ -11235,8 +10299,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/perform-a-union-on-two-sets", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/perform-a-union-on-two-sets" }, "id": "587d8253367417b2b2512c6c", "title": "Perform a Union on Two Sets" @@ -11247,8 +10310,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/perform-an-intersection-on-two-sets-of-data", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/perform-an-intersection-on-two-sets-of-data" }, "id": "587d8253367417b2b2512c6d", "title": "Perform an Intersection on Two Sets of Data" @@ -11259,8 +10321,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/remove-an-element-from-a-max-heap", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/remove-an-element-from-a-max-heap" }, "id": "587d825b367417b2b2512c8b", "title": "Remove an Element from a Max Heap" @@ -11271,8 +10332,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/remove-elements-from-a-linked-list-by-index", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/remove-elements-from-a-linked-list-by-index" }, "id": "587d8251367417b2b2512c65", "title": "Remove Elements from a Linked List by Index" @@ -11283,8 +10343,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/remove-elements-from-a-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/remove-elements-from-a-linked-list" }, "id": "587d8251367417b2b2512c63", "title": "Remove Elements from a Linked List" @@ -11295,8 +10354,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/remove-items-from-a-set-in-es6", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/remove-items-from-a-set-in-es6" }, "id": "587d8254367417b2b2512c71", "title": "Remove items from a set in ES6" @@ -11307,8 +10365,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/reverse-a-doubly-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/reverse-a-doubly-linked-list" }, "id": "587d825a367417b2b2512c88", "title": "Reverse a Doubly Linked List" @@ -11319,8 +10376,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/search-within-a-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/search-within-a-linked-list" }, "id": "587d8251367417b2b2512c64", "title": "Search within a Linked List" @@ -11331,8 +10387,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/typed-arrays", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/typed-arrays" }, "id": "587d8253367417b2b2512c6a", "title": "Typed Arrays" @@ -11343,8 +10398,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/use--has-and--size-on-an-es6-set", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/use--has-and--size-on-an-es6-set" }, "id": "587d8255367417b2b2512c72", "title": "Use .has and .size on an ES6 Set" @@ -11355,8 +10409,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/use-breadth-first-search-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/use-breadth-first-search-in-a-binary-search-tree" }, "id": "587d8258367417b2b2512c7f", "title": "Use Breadth First Search in a Binary Search Tree" @@ -11367,8 +10420,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/use-depth-first-search-in-a-binary-search-tree", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/use-depth-first-search-in-a-binary-search-tree" }, "id": "587d8257367417b2b2512c7e", "title": "Use Depth First Search in a Binary Search Tree" @@ -11379,8 +10431,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/use-spread-and-notes-for-es5-set-integration", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/use-spread-and-notes-for-es5-set-integration" }, "id": "587d8255367417b2b2512c73", "title": "Use Spread and Notes for ES5 Set() Integration" @@ -11391,8 +10442,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/data-structures/work-with-nodes-in-a-linked-list", - "blockName": "Data Structures" + "slug": "/learn/coding-interview-prep/data-structures/work-with-nodes-in-a-linked-list" }, "id": "587d8251367417b2b2512c61", "title": "Work with Nodes in a Linked List" @@ -11403,8 +10453,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-1-multiples-of-3-and-5", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-1-multiples-of-3-and-5" }, "id": "5900f36e1000cf542c50fe80", "title": "Problem 1: Multiples of 3 and 5" @@ -11415,8 +10464,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-10-summation-of-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-10-summation-of-primes" }, "id": "5900f3761000cf542c50fe89", "title": "Problem 10: Summation of primes" @@ -11427,8 +10475,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-100-arranged-probability", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-100-arranged-probability" }, "id": "5900f3d01000cf542c50fee3", "title": "Problem 100: Arranged probability" @@ -11439,8 +10486,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-101-optimum-polynomial", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-101-optimum-polynomial" }, "id": "5900f3d21000cf542c50fee4", "title": "Problem 101: Optimum polynomial" @@ -11451,8 +10497,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-102-triangle-containment", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-102-triangle-containment" }, "id": "5900f3d21000cf542c50fee5", "title": "Problem 102: Triangle containment" @@ -11463,8 +10508,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum" }, "id": "5900f3d61000cf542c50fee7", "title": "Problem 103: Special subset sums: optimum" @@ -11475,8 +10519,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-104-pandigital-fibonacci-ends", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-104-pandigital-fibonacci-ends" }, "id": "5900f3d51000cf542c50fee6", "title": "Problem 104: Pandigital Fibonacci ends" @@ -11487,8 +10530,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-105-special-subset-sums-testing", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-105-special-subset-sums-testing" }, "id": "5900f3d61000cf542c50fee8", "title": "Problem 105: Special subset sums: testing" @@ -11499,8 +10541,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-106-special-subset-sums-meta-testing", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-106-special-subset-sums-meta-testing" }, "id": "5900f3d71000cf542c50fee9", "title": "Problem 106: Special subset sums: meta-testing" @@ -11511,8 +10552,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-107-minimal-network", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-107-minimal-network" }, "id": "5900f3d91000cf542c50feea", "title": "Problem 107: Minimal network" @@ -11523,8 +10563,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-108-diophantine-reciprocals-i", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-108-diophantine-reciprocals-i" }, "id": "5900f3d91000cf542c50feeb", "title": "Problem 108: Diophantine Reciprocals I" @@ -11535,8 +10574,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-109-darts", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-109-darts" }, "id": "5900f3db1000cf542c50feec", "title": "Problem 109: Darts" @@ -11547,8 +10585,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-11-largest-product-in-a-grid", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-11-largest-product-in-a-grid" }, "id": "5900f3781000cf542c50fe8a", "title": "Problem 11: Largest product in a grid" @@ -11559,8 +10596,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-110-diophantine-reciprocals-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-110-diophantine-reciprocals-ii" }, "id": "5900f3db1000cf542c50feed", "title": "Problem 110: Diophantine Reciprocals II" @@ -11571,8 +10607,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-111-primes-with-runs", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-111-primes-with-runs" }, "id": "5900f3db1000cf542c50feee", "title": "Problem 111: Primes with runs" @@ -11583,8 +10618,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-112-bouncy-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-112-bouncy-numbers" }, "id": "5900f3dd1000cf542c50feef", "title": "Problem 112: Bouncy numbers" @@ -11595,8 +10629,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-113-non-bouncy-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-113-non-bouncy-numbers" }, "id": "5900f3dd1000cf542c50fef0", "title": "Problem 113: Non-bouncy numbers" @@ -11607,8 +10640,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-114-counting-block-combinations-i", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-114-counting-block-combinations-i" }, "id": "5900f3e01000cf542c50fef2", "title": "Problem 114: Counting block combinations I" @@ -11619,8 +10651,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-115-counting-block-combinations-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-115-counting-block-combinations-ii" }, "id": "5900f3df1000cf542c50fef1", "title": "Problem 115: Counting block combinations II" @@ -11631,8 +10662,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-116-red-green-or-blue-tiles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-116-red-green-or-blue-tiles" }, "id": "5900f3e01000cf542c50fef3", "title": "Problem 116: Red, green or blue tiles" @@ -11643,8 +10673,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-117-red-green-and-blue-tiles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-117-red-green-and-blue-tiles" }, "id": "5900f3e21000cf542c50fef4", "title": "Problem 117: Red, green, and blue tiles" @@ -11655,8 +10684,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-118-pandigital-prime-sets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-118-pandigital-prime-sets" }, "id": "5900f3e21000cf542c50fef5", "title": "Problem 118: Pandigital prime sets" @@ -11667,8 +10695,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-119-digit-power-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-119-digit-power-sum" }, "id": "5900f3e41000cf542c50fef6", "title": "Problem 119: Digit power sum" @@ -11679,8 +10706,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-12-highly-divisible-triangular-number", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-12-highly-divisible-triangular-number" }, "id": "5900f3781000cf542c50fe8b", "title": "Problem 12: Highly divisible triangular number" @@ -11691,8 +10717,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-120-square-remainders", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-120-square-remainders" }, "id": "5900f3e41000cf542c50fef7", "title": "Problem 120: Square remainders" @@ -11703,8 +10728,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-121-disc-game-prize-fund", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-121-disc-game-prize-fund" }, "id": "5900f3e51000cf542c50fef8", "title": "Problem 121: Disc game prize fund" @@ -11715,8 +10739,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-122-efficient-exponentiation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-122-efficient-exponentiation" }, "id": "5900f3e61000cf542c50fef9", "title": "Problem 122: Efficient exponentiation" @@ -11727,8 +10750,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-123-prime-square-remainders", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-123-prime-square-remainders" }, "id": "5900f3e71000cf542c50fefa", "title": "Problem 123: Prime square remainders" @@ -11739,8 +10761,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-124-ordered-radicals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-124-ordered-radicals" }, "id": "5900f3e81000cf542c50fefb", "title": "Problem 124: Ordered radicals" @@ -11751,8 +10772,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-125-palindromic-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-125-palindromic-sums" }, "id": "5900f3e91000cf542c50fefc", "title": "Problem 125: Palindromic sums" @@ -11763,8 +10783,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-126-cuboid-layers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-126-cuboid-layers" }, "id": "5900f3ea1000cf542c50fefd", "title": "Problem 126: Cuboid layers" @@ -11775,8 +10794,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-127-abc-hits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-127-abc-hits" }, "id": "5900f3ec1000cf542c50fefe", "title": "Problem 127: abc-hits" @@ -11787,8 +10805,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences" }, "id": "5900f3ec1000cf542c50feff", "title": "Problem 128: Hexagonal tile differences" @@ -11799,8 +10816,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-129-repunit-divisibility", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-129-repunit-divisibility" }, "id": "5900f3ef1000cf542c50ff01", "title": "Problem 129: Repunit divisibility" @@ -11811,8 +10827,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-13-large-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-13-large-sum" }, "id": "5900f37a1000cf542c50fe8c", "title": "Problem 13: Large sum" @@ -11823,8 +10838,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-130-composites-with-prime-repunit-property", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-130-composites-with-prime-repunit-property" }, "id": "5900f3ee1000cf542c50ff00", "title": "Problem 130: Composites with prime repunit property" @@ -11835,8 +10849,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-131-prime-cube-partnership", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-131-prime-cube-partnership" }, "id": "5900f3ef1000cf542c50ff02", "title": "Problem 131: Prime cube partnership" @@ -11847,8 +10860,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-132-large-repunit-factors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-132-large-repunit-factors" }, "id": "5900f3f11000cf542c50ff03", "title": "Problem 132: Large repunit factors" @@ -11859,8 +10871,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-133-repunit-nonfactors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-133-repunit-nonfactors" }, "id": "5900f3f21000cf542c50ff04", "title": "Problem 133: Repunit nonfactors" @@ -11871,8 +10882,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-134-prime-pair-connection", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-134-prime-pair-connection" }, "id": "5900f3f21000cf542c50ff05", "title": "Problem 134: Prime pair connection" @@ -11883,8 +10893,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-135-same-differences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-135-same-differences" }, "id": "5900f3f31000cf542c50ff06", "title": "Problem 135: Same differences" @@ -11895,8 +10904,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-136-singleton-difference", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-136-singleton-difference" }, "id": "5900f3f51000cf542c50ff07", "title": "Problem 136: Singleton difference" @@ -11907,8 +10915,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-137-fibonacci-golden-nuggets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-137-fibonacci-golden-nuggets" }, "id": "5900f3f51000cf542c50ff08", "title": "Problem 137: Fibonacci golden nuggets" @@ -11919,8 +10926,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-138-special-isosceles-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-138-special-isosceles-triangles" }, "id": "5900f3f61000cf542c50ff09", "title": "Problem 138: Special isosceles triangles" @@ -11931,8 +10937,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-139-pythagorean-tiles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-139-pythagorean-tiles" }, "id": "5900f3f71000cf542c50ff0a", "title": "Problem 139: Pythagorean tiles" @@ -11943,8 +10948,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-14-longest-collatz-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-14-longest-collatz-sequence" }, "id": "5900f37a1000cf542c50fe8d", "title": "Problem 14: Longest Collatz sequence" @@ -11955,8 +10959,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-140-modified-fibonacci-golden-nuggets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-140-modified-fibonacci-golden-nuggets" }, "id": "5900f3fa1000cf542c50ff0c", "title": "Problem 140: Modified Fibonacci golden nuggets" @@ -11967,8 +10970,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-141-investigating-progressive-numbers-n-which-are-also-square", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-141-investigating-progressive-numbers-n-which-are-also-square" }, "id": "5900f3f91000cf542c50ff0b", "title": "Problem 141: Investigating progressive numbers, n, which are also square" @@ -11979,8 +10981,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-142-perfect-square-collection", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-142-perfect-square-collection" }, "id": "5900f3fa1000cf542c50ff0d", "title": "Problem 142: Perfect Square Collection" @@ -11991,8 +10992,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-143-investigating-the-torricelli-point-of-a-triangle", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-143-investigating-the-torricelli-point-of-a-triangle" }, "id": "5900f3fc1000cf542c50ff0e", "title": "Problem 143: Investigating the Torricelli point of a triangle" @@ -12003,8 +11003,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-144-investigating-multiple-reflections-of-a-laser-beam", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-144-investigating-multiple-reflections-of-a-laser-beam" }, "id": "5900f3fc1000cf542c50ff0f", "title": "Problem 144: Investigating multiple reflections of a laser beam" @@ -12015,8 +11014,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-145-how-many-reversible-numbers-are-there-below-one-billion", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-145-how-many-reversible-numbers-are-there-below-one-billion" }, "id": "5900f3fd1000cf542c50ff10", "title": "Problem 145: How many reversible numbers are there below one-billion?" @@ -12027,8 +11025,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-146-investigating-a-prime-pattern", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-146-investigating-a-prime-pattern" }, "id": "5900f3fe1000cf542c50ff11", "title": "Problem 146: Investigating a Prime Pattern" @@ -12039,8 +11036,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-147-rectangles-in-cross-hatched-grids", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-147-rectangles-in-cross-hatched-grids" }, "id": "5900f3ff1000cf542c50ff12", "title": "Problem 147: Rectangles in cross-hatched grids" @@ -12051,8 +11047,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-148-exploring-pascals-triangle", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-148-exploring-pascals-triangle" }, "id": "5900f4021000cf542c50ff14", "title": "Problem 148: Exploring Pascal's triangle" @@ -12063,8 +11058,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-149-searching-for-a-maximum-sum-subsequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-149-searching-for-a-maximum-sum-subsequence" }, "id": "5900f4021000cf542c50ff13", "title": "Problem 149: Searching for a maximum-sum subsequence" @@ -12075,8 +11069,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-15-lattice-paths", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-15-lattice-paths" }, "id": "5900f37b1000cf542c50fe8e", "title": "Problem 15: Lattice paths" @@ -12087,8 +11080,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum" }, "id": "5900f4031000cf542c50ff15", "title": "Problem 150: Searching a triangular array for a sub-triangle having minimum-sum" @@ -12099,8 +11091,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-151-paper-sheets-of-standard-sizes-an-expected-value-problem", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-151-paper-sheets-of-standard-sizes-an-expected-value-problem" }, "id": "5900f4031000cf542c50ff16", "title": "Problem 151: Paper sheets of standard sizes: an expected-value problem" @@ -12111,8 +11102,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-152-writing-one-half-as-a-sum-of-inverse-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-152-writing-one-half-as-a-sum-of-inverse-squares" }, "id": "5900f4041000cf542c50ff17", "title": "Problem 152: Writing one half as a sum of inverse squares" @@ -12123,8 +11113,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-153-investigating-gaussian-integers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-153-investigating-gaussian-integers" }, "id": "5900f4051000cf542c50ff18", "title": "Problem 153: Investigating Gaussian Integers" @@ -12135,8 +11124,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-154-exploring-pascals-pyramid", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-154-exploring-pascals-pyramid" }, "id": "5900f4071000cf542c50ff19", "title": "Problem 154: Exploring Pascal's pyramid" @@ -12147,8 +11135,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-155-counting-capacitor-circuits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-155-counting-capacitor-circuits" }, "id": "5900f4081000cf542c50ff1a", "title": "Problem 155: Counting Capacitor Circuits" @@ -12159,8 +11146,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-156-counting-digits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-156-counting-digits" }, "id": "5900f4091000cf542c50ff1b", "title": "Problem 156: Counting Digits" @@ -12171,8 +11157,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-157-solving-the-diophantine-equation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-157-solving-the-diophantine-equation" }, "id": "5900f4091000cf542c50ff1c", "title": "Problem 157: Solving the diophantine equation" @@ -12183,8 +11168,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-158-exploring-strings-for-which-only-one-character-comes-lexicographically-after-its-neighbour-to-the-left", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-158-exploring-strings-for-which-only-one-character-comes-lexicographically-after-its-neighbour-to-the-left" }, "id": "5900f40a1000cf542c50ff1d", "title": "Problem 158: Exploring strings for which only one character comes lexicographically after its neighbour to the left" @@ -12195,8 +11179,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-159-digital-root-sums-of-factorisations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-159-digital-root-sums-of-factorisations" }, "id": "5900f40c1000cf542c50ff1e", "title": "Problem 159: Digital root sums of factorisations" @@ -12207,8 +11190,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-16-power-digit-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-16-power-digit-sum" }, "id": "5900f37d1000cf542c50fe8f", "title": "Problem 16: Power digit sum" @@ -12219,8 +11201,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-160-factorial-trailing-digits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-160-factorial-trailing-digits" }, "id": "5900f40d1000cf542c50ff1f", "title": "Problem 160: Factorial trailing digits" @@ -12231,8 +11212,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-161-triominoes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-161-triominoes" }, "id": "5900f40d1000cf542c50ff20", "title": "Problem 161: Triominoes" @@ -12243,8 +11223,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-162-hexadecimal-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-162-hexadecimal-numbers" }, "id": "5900f40e1000cf542c50ff21", "title": "Problem 162: Hexadecimal numbers" @@ -12255,8 +11234,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-163-cross-hatched-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-163-cross-hatched-triangles" }, "id": "5900f40f1000cf542c50ff22", "title": "Problem 163: Cross-hatched triangles" @@ -12267,8 +11245,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value" }, "id": "5900f4111000cf542c50ff23", "title": "Problem 164: Numbers for which no three consecutive digits have a sum greater than a given value" @@ -12279,8 +11256,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-165-intersections", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-165-intersections" }, "id": "5900f4111000cf542c50ff24", "title": "Problem 165: Intersections" @@ -12291,8 +11267,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-166-criss-cross", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-166-criss-cross" }, "id": "5900f4131000cf542c50ff25", "title": "Problem 166: Criss Cross" @@ -12303,8 +11278,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-167-investigating-ulam-sequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-167-investigating-ulam-sequences" }, "id": "5900f4141000cf542c50ff26", "title": "Problem 167: Investigating Ulam sequences" @@ -12315,8 +11289,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-168-number-rotations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-168-number-rotations" }, "id": "5900f4151000cf542c50ff27", "title": "Problem 168: Number Rotations" @@ -12327,8 +11300,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2" }, "id": "5900f4151000cf542c50ff28", "title": "Problem 169: Exploring the number of different ways a number can be expressed as a sum of powers of 2" @@ -12339,8 +11311,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-17-number-letter-counts", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-17-number-letter-counts" }, "id": "5900f37d1000cf542c50fe90", "title": "Problem 17: Number letter counts" @@ -12351,8 +11322,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products" }, "id": "5900f4161000cf542c50ff29", "title": "Problem 170: Find the largest 0 to 9 pandigital that can be formed by concatenating products" @@ -12363,8 +11333,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square" }, "id": "5900f4181000cf542c50ff2a", "title": "Problem 171: Finding numbers for which the sum of the squares of the digits is a square" @@ -12375,8 +11344,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-172-investigating-numbers-with-few-repeated-digits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-172-investigating-numbers-with-few-repeated-digits" }, "id": "5900f4181000cf542c50ff2b", "title": "Problem 172: Investigating numbers with few repeated digits" @@ -12387,8 +11355,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-173-using-up-to-one-million-tiles-how-many-different-hollow-square-laminae-can-be-formed", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-173-using-up-to-one-million-tiles-how-many-different-hollow-square-laminae-can-be-formed" }, "id": "5900f41a1000cf542c50ff2c", "title": "Problem 173: Using up to one million tiles how many different \"hollow\" square laminae can be formed?" @@ -12399,8 +11366,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-----distinct-arrangements", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-----distinct-arrangements" }, "id": "5900f41a1000cf542c50ff2d", "title": "Problem 174: Counting the number of \"hollow\" square laminae that can form one, two, three, ... distinct arrangements" @@ -12411,8 +11377,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-175-fractions-involving-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-175-fractions-involving-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2" }, "id": "5900f41c1000cf542c50ff2e", "title": "Problem 175: Fractions involving the number of different ways a number can be expressed as a sum of powers of 2" @@ -12423,8 +11388,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-176-right-angled-triangles-that-share-a-cathetus", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-176-right-angled-triangles-that-share-a-cathetus" }, "id": "5900f41c1000cf542c50ff2f", "title": "Problem 176: Right-angled triangles that share a cathetus" @@ -12435,8 +11399,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-177-integer-angled-quadrilaterals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-177-integer-angled-quadrilaterals" }, "id": "5900f41e1000cf542c50ff30", "title": "Problem 177: Integer angled Quadrilaterals" @@ -12447,8 +11410,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-178-step-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-178-step-numbers" }, "id": "5900f41e1000cf542c50ff31", "title": "Problem 178: Step Numbers" @@ -12459,8 +11421,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-179-consecutive-positive-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-179-consecutive-positive-divisors" }, "id": "5900f41f1000cf542c50ff32", "title": "Problem 179: Consecutive positive divisors" @@ -12471,8 +11432,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-18-maximum-path-sum-i", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-18-maximum-path-sum-i" }, "id": "5900f37e1000cf542c50fe91", "title": "Problem 18: Maximum path sum I" @@ -12483,8 +11443,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-180-rational-zeros-of-a-function-of-three-variables", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-180-rational-zeros-of-a-function-of-three-variables" }, "id": "5900f4201000cf542c50ff33", "title": "Problem 180: Rational zeros of a function of three variables" @@ -12495,8 +11454,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped" }, "id": "5900f4231000cf542c50ff34", "title": "Problem 181: Investigating in how many ways objects of two different colours can be grouped" @@ -12507,8 +11465,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-182-rsa-encryption", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-182-rsa-encryption" }, "id": "5900f4231000cf542c50ff35", "title": "Problem 182: RSA encryption" @@ -12519,8 +11476,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-183-maximum-product-of-parts", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-183-maximum-product-of-parts" }, "id": "5900f4231000cf542c50ff36", "title": "Problem 183: Maximum product of parts" @@ -12531,8 +11487,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-184-triangles-containing-the-origin", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-184-triangles-containing-the-origin" }, "id": "5900f4241000cf542c50ff37", "title": "Problem 184: Triangles containing the origin" @@ -12543,8 +11498,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-185-number-mind", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-185-number-mind" }, "id": "5900f4251000cf542c50ff38", "title": "Problem 185: Number Mind" @@ -12555,8 +11509,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-186-connectedness-of-a-network", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-186-connectedness-of-a-network" }, "id": "5900f4281000cf542c50ff39", "title": "Problem 186: Connectedness of a network" @@ -12567,8 +11520,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-187-semiprimes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-187-semiprimes" }, "id": "5900f4291000cf542c50ff3a", "title": "Problem 187: Semiprimes" @@ -12579,8 +11531,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-188-the-hyperexponentiation-of-a-number", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-188-the-hyperexponentiation-of-a-number" }, "id": "5900f4291000cf542c50ff3b", "title": "Problem 188: The hyperexponentiation of a number" @@ -12591,8 +11542,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-189-tri-colouring-a-triangular-grid", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-189-tri-colouring-a-triangular-grid" }, "id": "5900f4291000cf542c50ff3c", "title": "Problem 189: Tri-colouring a triangular grid" @@ -12603,8 +11553,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-19-counting-sundays", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-19-counting-sundays" }, "id": "5900f37f1000cf542c50fe92", "title": "Problem 19: Counting Sundays" @@ -12615,8 +11564,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-190-maximising-a-weighted-product", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-190-maximising-a-weighted-product" }, "id": "5900f42b1000cf542c50ff3d", "title": "Problem 190: Maximising a weighted product" @@ -12627,8 +11575,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-191-prize-strings", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-191-prize-strings" }, "id": "5900f42b1000cf542c50ff3e", "title": "Problem 191: Prize Strings" @@ -12639,8 +11586,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-192-best-approximations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-192-best-approximations" }, "id": "5900f42c1000cf542c50ff3f", "title": "Problem 192: Best Approximations" @@ -12651,8 +11597,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-193-squarefree-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-193-squarefree-numbers" }, "id": "5900f42f1000cf542c50ff41", "title": "Problem 193: Squarefree Numbers" @@ -12663,8 +11608,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-194-coloured-configurations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-194-coloured-configurations" }, "id": "5900f42f1000cf542c50ff40", "title": "Problem 194: Coloured Configurations" @@ -12675,8 +11619,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-195-inscribed-circles-of-triangles-with-one-angle-of-60-degrees", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-195-inscribed-circles-of-triangles-with-one-angle-of-60-degrees" }, "id": "5900f4311000cf542c50ff43", "title": "Problem 195: Inscribed circles of triangles with one angle of 60 degrees" @@ -12687,8 +11630,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-196-prime-triplets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-196-prime-triplets" }, "id": "5900f4301000cf542c50ff42", "title": "Problem 196: Prime triplets" @@ -12699,8 +11641,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence" }, "id": "5900f4311000cf542c50ff44", "title": "Problem 197: Investigating the behaviour of a recursively defined sequence" @@ -12711,8 +11652,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-198-ambiguous-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-198-ambiguous-numbers" }, "id": "5900f4331000cf542c50ff45", "title": "Problem 198: Ambiguous Numbers" @@ -12723,8 +11663,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-199-iterative-circle-packing", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-199-iterative-circle-packing" }, "id": "5900f4341000cf542c50ff46", "title": "Problem 199: Iterative Circle Packing" @@ -12735,8 +11674,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-2-even-fibonacci-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-2-even-fibonacci-numbers" }, "id": "5900f36e1000cf542c50fe81", "title": "Problem 2: Even Fibonacci Numbers" @@ -12747,8 +11685,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-20-factorial-digit-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-20-factorial-digit-sum" }, "id": "5900f3801000cf542c50fe93", "title": "Problem 20: Factorial digit sum" @@ -12759,8 +11696,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200" }, "id": "5900f4351000cf542c50ff47", "title": "Problem 200: Find the 200th prime-proof sqube containing the contiguous sub-string \"200\"" @@ -12771,8 +11707,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-201-subsets-with-a-unique-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-201-subsets-with-a-unique-sum" }, "id": "5900f4361000cf542c50ff48", "title": "Problem 201: Subsets with a unique sum" @@ -12783,8 +11718,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-202-laserbeam", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-202-laserbeam" }, "id": "5900f4371000cf542c50ff49", "title": "Problem 202: Laserbeam" @@ -12795,8 +11729,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-203-squarefree-binomial-coefficients", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-203-squarefree-binomial-coefficients" }, "id": "5900f4381000cf542c50ff4a", "title": "Problem 203: Squarefree Binomial Coefficients" @@ -12807,8 +11740,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-204-generalised-hamming-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-204-generalised-hamming-numbers" }, "id": "5900f4381000cf542c50ff4b", "title": "Problem 204: Generalised Hamming Numbers" @@ -12819,8 +11751,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-205-dice-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-205-dice-game" }, "id": "5900f4391000cf542c50ff4c", "title": "Problem 205: Dice Game" @@ -12831,8 +11762,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-206-concealed-square", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-206-concealed-square" }, "id": "5900f43a1000cf542c50ff4d", "title": "Problem 206: Concealed Square" @@ -12843,8 +11773,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-207-integer-partition-equations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-207-integer-partition-equations" }, "id": "5900f43c1000cf542c50ff4e", "title": "Problem 207: Integer partition equations" @@ -12855,8 +11784,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-208-robot-walks", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-208-robot-walks" }, "id": "5900f43f1000cf542c50ff51", "title": "Problem 208: Robot Walks" @@ -12867,8 +11795,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-209-circular-logic", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-209-circular-logic" }, "id": "5900f43e1000cf542c50ff4f", "title": "Problem 209: Circular Logic" @@ -12879,8 +11806,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-21-amicable-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-21-amicable-numbers" }, "id": "5900f3811000cf542c50fe94", "title": "Problem 21: Amicable numbers" @@ -12891,8 +11817,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-210-obtuse-angled-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-210-obtuse-angled-triangles" }, "id": "5900f43e1000cf542c50ff50", "title": "Problem 210: Obtuse Angled Triangles" @@ -12903,8 +11828,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-211-divisor-square-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-211-divisor-square-sum" }, "id": "5900f43f1000cf542c50ff52", "title": "Problem 211: Divisor Square Sum" @@ -12915,8 +11839,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-212-combined-volume-of-cuboids", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-212-combined-volume-of-cuboids" }, "id": "5900f4411000cf542c50ff53", "title": "Problem 212: Combined Volume of Cuboids" @@ -12927,8 +11850,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-213-flea-circus", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-213-flea-circus" }, "id": "5900f4411000cf542c50ff54", "title": "Problem 213: Flea Circus" @@ -12939,8 +11861,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-214-totient-chains", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-214-totient-chains" }, "id": "5900f4421000cf542c50ff55", "title": "Problem 214: Totient Chains" @@ -12951,8 +11872,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-215-crack-free-walls", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-215-crack-free-walls" }, "id": "5900f4431000cf542c50ff56", "title": "Problem 215: Crack-free Walls" @@ -12963,8 +11883,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-216-investigating-the-primality-of-numbers-of-the-form-2n2-1", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-216-investigating-the-primality-of-numbers-of-the-form-2n2-1" }, "id": "5900f4451000cf542c50ff57", "title": "Problem 216: Investigating the primality of numbers of the form 2n2-1" @@ -12975,8 +11894,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-217-balanced-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-217-balanced-numbers" }, "id": "5900f4461000cf542c50ff58", "title": "Problem 217: Balanced Numbers" @@ -12987,8 +11905,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-218-perfect-right-angled-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-218-perfect-right-angled-triangles" }, "id": "5900f4461000cf542c50ff59", "title": "Problem 218: Perfect right-angled triangles" @@ -12999,8 +11916,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-219-skew-cost-coding", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-219-skew-cost-coding" }, "id": "5900f4481000cf542c50ff5a", "title": "Problem 219: Skew-cost coding" @@ -13011,8 +11927,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-22-names-scores", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-22-names-scores" }, "id": "5a51eabcad78bf416f316e2a", "title": "Problem 22: Names scores" @@ -13023,8 +11938,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-220-heighway-dragon", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-220-heighway-dragon" }, "id": "5900f4481000cf542c50ff5b", "title": "Problem 220: Heighway Dragon" @@ -13035,8 +11949,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-221-alexandrian-integers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-221-alexandrian-integers" }, "id": "5900f4491000cf542c50ff5c", "title": "Problem 221: Alexandrian Integers" @@ -13047,8 +11960,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-222-sphere-packing", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-222-sphere-packing" }, "id": "5900f44b1000cf542c50ff5d", "title": "Problem 222: Sphere Packing" @@ -13059,8 +11971,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-223-almost-right-angled-triangles-i", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-223-almost-right-angled-triangles-i" }, "id": "5900f44b1000cf542c50ff5e", "title": "Problem 223: Almost right-angled triangles I" @@ -13071,8 +11982,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-224-almost-right-angled-triangles-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-224-almost-right-angled-triangles-ii" }, "id": "5900f44e1000cf542c50ff5f", "title": "Problem 224: Almost right-angled triangles II" @@ -13083,8 +11993,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-225-tribonacci-non-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-225-tribonacci-non-divisors" }, "id": "5900f44e1000cf542c50ff60", "title": "Problem 225: Tribonacci non-divisors" @@ -13095,8 +12004,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-226-a-scoop-of-blancmange", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-226-a-scoop-of-blancmange" }, "id": "5900f4511000cf542c50ff62", "title": "Problem 226: A Scoop of Blancmange" @@ -13107,8 +12015,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-227-the-chase", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-227-the-chase" }, "id": "5900f44f1000cf542c50ff61", "title": "Problem 227: The Chase" @@ -13119,8 +12026,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-228-minkowski-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-228-minkowski-sums" }, "id": "5900f4511000cf542c50ff63", "title": "Problem 228: Minkowski Sums" @@ -13131,8 +12037,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-229-four-representations-using-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-229-four-representations-using-squares" }, "id": "5900f4521000cf542c50ff64", "title": "Problem 229: Four Representations using Squares" @@ -13143,8 +12048,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-23-non-abundant-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-23-non-abundant-sums" }, "id": "5900f3831000cf542c50fe96", "title": "Problem 23: Non-abundant sums" @@ -13155,8 +12059,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-230-fibonacci-words", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-230-fibonacci-words" }, "id": "5900f4531000cf542c50ff65", "title": "Problem 230: Fibonacci Words" @@ -13167,8 +12070,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-231-the-prime-factorisation-of-binomial-coefficients", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-231-the-prime-factorisation-of-binomial-coefficients" }, "id": "5900f4531000cf542c50ff66", "title": "Problem 231: The prime factorisation of binomial coefficients" @@ -13179,8 +12081,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-232-the-race", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-232-the-race" }, "id": "5900f4551000cf542c50ff67", "title": "Problem 232: The Race" @@ -13191,8 +12092,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-233-lattice-points-on-a-circle", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-233-lattice-points-on-a-circle" }, "id": "5900f4551000cf542c50ff68", "title": "Problem 233: Lattice points on a circle" @@ -13203,8 +12103,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-234-semidivisible-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-234-semidivisible-numbers" }, "id": "5900f4571000cf542c50ff69", "title": "Problem 234: Semidivisible numbers" @@ -13215,8 +12114,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-235-an-arithmetic-geometric-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-235-an-arithmetic-geometric-sequence" }, "id": "5900f4571000cf542c50ff6a", "title": "Problem 235: An Arithmetic Geometric sequence" @@ -13227,8 +12125,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-236-luxury-hampers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-236-luxury-hampers" }, "id": "5900f4591000cf542c50ff6b", "title": "Problem 236: Luxury Hampers" @@ -13239,8 +12136,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-237-tours-on-a-4-x-n-playing-board", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-237-tours-on-a-4-x-n-playing-board" }, "id": "5900f4591000cf542c50ff6c", "title": "Problem 237: Tours on a 4 x n playing board" @@ -13251,8 +12147,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-238-infinite-string-tour", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-238-infinite-string-tour" }, "id": "5900f45b1000cf542c50ff6d", "title": "Problem 238: Infinite string tour" @@ -13263,8 +12158,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-239-twenty-two-foolish-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-239-twenty-two-foolish-primes" }, "id": "5900f45c1000cf542c50ff6e", "title": "Problem 239: Twenty-two Foolish Primes" @@ -13275,8 +12169,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-24-lexicographic-permutations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-24-lexicographic-permutations" }, "id": "5900f3841000cf542c50fe97", "title": "Problem 24: Lexicographic permutations" @@ -13287,8 +12180,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-240-top-dice", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-240-top-dice" }, "id": "5900f45d1000cf542c50ff6f", "title": "Problem 240: Top Dice" @@ -13299,8 +12191,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-241-perfection-quotients", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-241-perfection-quotients" }, "id": "5900f45d1000cf542c50ff70", "title": "Problem 241: Perfection Quotients" @@ -13311,8 +12202,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-242-odd-triplets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-242-odd-triplets" }, "id": "5900f45f1000cf542c50ff71", "title": "Problem 242: Odd Triplets" @@ -13323,8 +12213,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-243-resilience", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-243-resilience" }, "id": "5900f4601000cf542c50ff73", "title": "Problem 243: Resilience" @@ -13335,8 +12224,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-244-sliders", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-244-sliders" }, "id": "5900f4601000cf542c50ff72", "title": "Problem 244: Sliders" @@ -13347,8 +12235,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-245-coresilience", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-245-coresilience" }, "id": "5900f4621000cf542c50ff74", "title": "Problem 245: Coresilience" @@ -13359,8 +12246,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-246-tangents-to-an-ellipse", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-246-tangents-to-an-ellipse" }, "id": "5900f4621000cf542c50ff75", "title": "Problem 246: Tangents to an ellipse" @@ -13371,8 +12257,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-247-squares-under-a-hyperbola", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-247-squares-under-a-hyperbola" }, "id": "5900f4641000cf542c50ff76", "title": "Problem 247: Squares under a hyperbola" @@ -13383,8 +12268,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-248-numbers-for-which-eulers-totient-function-equals-13", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-248-numbers-for-which-eulers-totient-function-equals-13" }, "id": "5900f4651000cf542c50ff77", "title": "Problem 248: Numbers for which Euler’s totient function equals 13!" @@ -13395,8 +12279,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-249-prime-subset-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-249-prime-subset-sums" }, "id": "5900f4671000cf542c50ff79", "title": "Problem 249: Prime Subset Sums" @@ -13407,8 +12290,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-25-1000-digit-fibonacci-number", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-25-1000-digit-fibonacci-number" }, "id": "5900f3851000cf542c50fe98", "title": "Problem 25: 1000-digit Fibonacci number" @@ -13419,8 +12301,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-250-250250", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-250-250250" }, "id": "5900f4661000cf542c50ff78", "title": "Problem 250: 250250" @@ -13431,8 +12312,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-251-cardano-triplets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-251-cardano-triplets" }, "id": "5900f4671000cf542c50ff7a", "title": "Problem 251: Cardano Triplets" @@ -13443,8 +12323,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-252-convex-holes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-252-convex-holes" }, "id": "5900f4691000cf542c50ff7b", "title": "Problem 252: Convex Holes" @@ -13455,8 +12334,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-253-tidying-up", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-253-tidying-up" }, "id": "5900f4691000cf542c50ff7c", "title": "Problem 253: Tidying up" @@ -13467,8 +12345,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-254-sums-of-digit-factorials", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-254-sums-of-digit-factorials" }, "id": "5900f46b1000cf542c50ff7d", "title": "Problem 254: Sums of Digit Factorials" @@ -13479,8 +12356,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-255-rounded-square-roots", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-255-rounded-square-roots" }, "id": "5900f46d1000cf542c50ff7f", "title": "Problem 255: Rounded Square Roots" @@ -13491,8 +12367,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-256-tatami-free-rooms", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-256-tatami-free-rooms" }, "id": "5900f46c1000cf542c50ff7e", "title": "Problem 256: Tatami-Free Rooms" @@ -13503,8 +12378,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-257-angular-bisectors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-257-angular-bisectors" }, "id": "5900f46e1000cf542c50ff80", "title": "Problem 257: Angular Bisectors" @@ -13515,8 +12389,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-258-a-lagged-fibonacci-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-258-a-lagged-fibonacci-sequence" }, "id": "5900f46e1000cf542c50ff81", "title": "Problem 258: A lagged Fibonacci sequence" @@ -13527,8 +12400,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-259-reachable-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-259-reachable-numbers" }, "id": "5900f4701000cf542c50ff82", "title": "Problem 259: Reachable Numbers" @@ -13539,8 +12411,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-26-reciprocal-cycles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-26-reciprocal-cycles" }, "id": "5900f3861000cf542c50fe99", "title": "Problem 26: Reciprocal cycles" @@ -13551,8 +12422,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-260-stone-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-260-stone-game" }, "id": "5900f4701000cf542c50ff83", "title": "Problem 260: Stone Game" @@ -13563,8 +12433,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-261-pivotal-square-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-261-pivotal-square-sums" }, "id": "5900f4711000cf542c50ff84", "title": "Problem 261: Pivotal Square Sums" @@ -13575,8 +12444,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-262-mountain-range", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-262-mountain-range" }, "id": "5900f4731000cf542c50ff85", "title": "Problem 262: Mountain Range" @@ -13587,8 +12455,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-263-an-engineers-dream-come-true", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-263-an-engineers-dream-come-true" }, "id": "5900f4741000cf542c50ff86", "title": "Problem 263: An engineers' dream come true" @@ -13599,8 +12466,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-264-triangle-centres", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-264-triangle-centres" }, "id": "5900f4751000cf542c50ff87", "title": "Problem 264: Triangle Centres" @@ -13611,8 +12477,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-265-binary-circles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-265-binary-circles" }, "id": "5900f4761000cf542c50ff88", "title": "Problem 265: Binary Circles" @@ -13623,8 +12488,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-266-pseudo-square-root", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-266-pseudo-square-root" }, "id": "5900f4771000cf542c50ff89", "title": "Problem 266: Pseudo Square Root" @@ -13635,8 +12499,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-267-billionaire", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-267-billionaire" }, "id": "5900f4771000cf542c50ff8a", "title": "Problem 267: Billionaire" @@ -13647,8 +12510,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-268-counting-numbers-with-at-least-four-distinct-prime-factors-less-than-100", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-268-counting-numbers-with-at-least-four-distinct-prime-factors-less-than-100" }, "id": "5900f4791000cf542c50ff8b", "title": "Problem 268: Counting numbers with at least four distinct prime factors less than 100" @@ -13659,8 +12521,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-269-polynomials-with-at-least-one-integer-root", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-269-polynomials-with-at-least-one-integer-root" }, "id": "5900f4791000cf542c50ff8c", "title": "Problem 269: Polynomials with at least one integer root" @@ -13671,8 +12532,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-27-quadratic-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-27-quadratic-primes" }, "id": "5900f3871000cf542c50fe9a", "title": "Problem 27: Quadratic primes" @@ -13683,8 +12543,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-270-cutting-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-270-cutting-squares" }, "id": "5900f47c1000cf542c50ff8e", "title": "Problem 270: Cutting Squares" @@ -13695,8 +12554,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-271-modular-cubes-part-1", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-271-modular-cubes-part-1" }, "id": "5900f47b1000cf542c50ff8d", "title": "Problem 271: Modular Cubes, part 1" @@ -13707,8 +12565,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-272-modular-cubes-part-2", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-272-modular-cubes-part-2" }, "id": "5900f47d1000cf542c50ff8f", "title": "Problem 272: Modular Cubes, part 2" @@ -13719,8 +12576,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-273-sum-of-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-273-sum-of-squares" }, "id": "5900f47e1000cf542c50ff90", "title": "Problem 273: Sum of Squares" @@ -13731,8 +12587,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-274-divisibility-multipliers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-274-divisibility-multipliers" }, "id": "5900f47f1000cf542c50ff91", "title": "Problem 274: Divisibility Multipliers" @@ -13743,8 +12598,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-275-balanced-sculptures", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-275-balanced-sculptures" }, "id": "5900f4801000cf542c50ff92", "title": "Problem 275: Balanced Sculptures" @@ -13755,8 +12609,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-276-primitive-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-276-primitive-triangles" }, "id": "5900f4801000cf542c50ff93", "title": "Problem 276: Primitive Triangles" @@ -13767,8 +12620,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-277-a-modified-collatz-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-277-a-modified-collatz-sequence" }, "id": "5900f4811000cf542c50ff94", "title": "Problem 277: A Modified Collatz sequence" @@ -13779,8 +12631,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-278-linear-combinations-of-semiprimes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-278-linear-combinations-of-semiprimes" }, "id": "5900f4831000cf542c50ff95", "title": "Problem 278: Linear Combinations of Semiprimes" @@ -13791,8 +12642,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-279-triangles-with-integral-sides-and-an-integral-angle", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-279-triangles-with-integral-sides-and-an-integral-angle" }, "id": "5900f4841000cf542c50ff96", "title": "Problem 279: Triangles with integral sides and an integral angle" @@ -13803,8 +12653,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-28-number-spiral-diagonals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-28-number-spiral-diagonals" }, "id": "5900f3881000cf542c50fe9b", "title": "Problem 28: Number spiral diagonals" @@ -13815,8 +12664,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-280-ant-and-seeds", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-280-ant-and-seeds" }, "id": "5900f4841000cf542c50ff97", "title": "Problem 280: Ant and seeds" @@ -13827,8 +12675,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-281-pizza-toppings", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-281-pizza-toppings" }, "id": "5900f4861000cf542c50ff98", "title": "Problem 281: Pizza Toppings" @@ -13839,8 +12686,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-282-the-ackermann-function", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-282-the-ackermann-function" }, "id": "5900f4861000cf542c50ff99", "title": "Problem 282: The Ackermann function" @@ -13851,8 +12697,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral" }, "id": "5900f4881000cf542c50ff9a", "title": "Problem 283: Integer sided triangles for which the area / perimeter ratio is integral" @@ -13863,8 +12708,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-284-steady-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-284-steady-squares" }, "id": "5900f4891000cf542c50ff9b", "title": "Problem 284: Steady Squares" @@ -13875,8 +12719,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-285-pythagorean-odds", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-285-pythagorean-odds" }, "id": "5900f48a1000cf542c50ff9c", "title": "Problem 285: Pythagorean odds" @@ -13887,8 +12730,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-286-scoring-probabilities", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-286-scoring-probabilities" }, "id": "5900f48a1000cf542c50ff9d", "title": "Problem 286: Scoring probabilities" @@ -13899,8 +12741,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-287-quadtree-encoding-a-simple-compression-algorithm", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-287-quadtree-encoding-a-simple-compression-algorithm" }, "id": "5900f48b1000cf542c50ff9e", "title": "Problem 287: Quadtree encoding (a simple compression algorithm)" @@ -13911,8 +12752,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-288-an-enormous-factorial", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-288-an-enormous-factorial" }, "id": "5900f48d1000cf542c50ff9f", "title": "Problem 288: An enormous factorial" @@ -13923,8 +12763,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-289-eulerian-cycles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-289-eulerian-cycles" }, "id": "5900f48d1000cf542c50ffa0", "title": "Problem 289: Eulerian Cycles" @@ -13935,8 +12774,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-29-distinct-powers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-29-distinct-powers" }, "id": "5900f3891000cf542c50fe9c", "title": "Problem 29: Distinct powers" @@ -13947,8 +12785,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-290-digital-signature", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-290-digital-signature" }, "id": "5900f48f1000cf542c50ffa1", "title": "Problem 290: Digital Signature" @@ -13959,8 +12796,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-291-panaitopol-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-291-panaitopol-primes" }, "id": "5900f48f1000cf542c50ffa2", "title": "Problem 291: Panaitopol Primes" @@ -13971,8 +12807,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-292-pythagorean-polygons", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-292-pythagorean-polygons" }, "id": "5900f4911000cf542c50ffa3", "title": "Problem 292: Pythagorean Polygons" @@ -13983,8 +12818,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-293-pseudo-fortunate-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-293-pseudo-fortunate-numbers" }, "id": "5900f4931000cf542c50ffa4", "title": "Problem 293: Pseudo-Fortunate Numbers" @@ -13995,8 +12829,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-294-sum-of-digits---experience-23", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-294-sum-of-digits---experience-23" }, "id": "5900f4931000cf542c50ffa5", "title": "Problem 294: Sum of digits - experience #23" @@ -14007,8 +12840,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-295-lenticular-holes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-295-lenticular-holes" }, "id": "5900f4931000cf542c50ffa6", "title": "Problem 295: Lenticular holes" @@ -14019,8 +12851,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-296-angular-bisector-and-tangent", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-296-angular-bisector-and-tangent" }, "id": "5900f4941000cf542c50ffa7", "title": "Problem 296: Angular Bisector and Tangent" @@ -14031,8 +12862,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-297-zeckendorf-representation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-297-zeckendorf-representation" }, "id": "5900f4951000cf542c50ffa8", "title": "Problem 297: Zeckendorf Representation" @@ -14043,8 +12873,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-298-selective-amnesia", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-298-selective-amnesia" }, "id": "5900f4971000cf542c50ffa9", "title": "Problem 298: Selective Amnesia" @@ -14055,8 +12884,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-299-three-similar-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-299-three-similar-triangles" }, "id": "5900f4971000cf542c50ffaa", "title": "Problem 299: Three similar triangles" @@ -14067,8 +12895,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-3-largest-prime-factor", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-3-largest-prime-factor" }, "id": "5900f36f1000cf542c50fe82", "title": "Problem 3: Largest prime factor" @@ -14079,8 +12906,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-30-digit-n-powers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-30-digit-n-powers" }, "id": "5900f38a1000cf542c50fe9d", "title": "Problem 30: Digit n powers" @@ -14091,8 +12917,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-300-protein-folding", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-300-protein-folding" }, "id": "5900f49a1000cf542c50ffac", "title": "Problem 300: Protein folding" @@ -14103,8 +12928,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-301-nim", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-301-nim" }, "id": "5900f4991000cf542c50ffab", "title": "Problem 301: Nim" @@ -14115,8 +12939,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-302-strong-achilles-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-302-strong-achilles-numbers" }, "id": "5900f49b1000cf542c50ffad", "title": "Problem 302: Strong Achilles Numbers" @@ -14127,8 +12950,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-303-multiples-with-small-digits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-303-multiples-with-small-digits" }, "id": "5900f49b1000cf542c50ffae", "title": "Problem 303: Multiples with small digits" @@ -14139,8 +12961,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-304-primonacci", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-304-primonacci" }, "id": "5900f49d1000cf542c50ffaf", "title": "Problem 304: Primonacci" @@ -14151,8 +12972,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-305-reflexive-position", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-305-reflexive-position" }, "id": "5900f49d1000cf542c50ffb0", "title": "Problem 305: Reflexive Position" @@ -14163,8 +12983,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-306-paper-strip-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-306-paper-strip-game" }, "id": "5900f49f1000cf542c50ffb1", "title": "Problem 306: Paper-strip Game" @@ -14175,8 +12994,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-307-chip-defects", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-307-chip-defects" }, "id": "5900f4a01000cf542c50ffb2", "title": "Problem 307: Chip Defects" @@ -14187,8 +13005,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-308-an-amazing-prime-generating-automaton", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-308-an-amazing-prime-generating-automaton" }, "id": "5900f4a11000cf542c50ffb3", "title": "Problem 308: An amazing Prime-generating Automaton" @@ -14199,8 +13016,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-309-integer-ladders", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-309-integer-ladders" }, "id": "5900f4a11000cf542c50ffb4", "title": "Problem 309: Integer Ladders" @@ -14211,8 +13027,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-31-coin-sums", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-31-coin-sums" }, "id": "5900f38b1000cf542c50fe9e", "title": "Problem 31: Coin sums" @@ -14223,8 +13038,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-310-nim-square", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-310-nim-square" }, "id": "5900f4a21000cf542c50ffb5", "title": "Problem 310: Nim Square" @@ -14235,8 +13049,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-311-biclinic-integral-quadrilaterals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-311-biclinic-integral-quadrilaterals" }, "id": "5900f4a31000cf542c50ffb6", "title": "Problem 311: Biclinic Integral Quadrilaterals" @@ -14247,8 +13060,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-312-cyclic-paths-on-sierpiski-graphs", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-312-cyclic-paths-on-sierpiski-graphs" }, "id": "5900f4a51000cf542c50ffb7", "title": "Problem 312: Cyclic paths on Sierpiński graphs" @@ -14259,8 +13071,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-313-sliding-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-313-sliding-game" }, "id": "5900f4a61000cf542c50ffb8", "title": "Problem 313: Sliding game" @@ -14271,8 +13082,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-314-the-mouse-on-the-moon", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-314-the-mouse-on-the-moon" }, "id": "5900f4a71000cf542c50ffb9", "title": "Problem 314: The Mouse on the Moon" @@ -14283,8 +13093,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-315-digital-root-clocks", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-315-digital-root-clocks" }, "id": "5900f4a71000cf542c50ffba", "title": "Problem 315: Digital root clocks" @@ -14295,8 +13104,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-316-numbers-in-decimal-expansions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-316-numbers-in-decimal-expansions" }, "id": "5900f4a81000cf542c50ffbb", "title": "Problem 316: Numbers in decimal expansions" @@ -14307,8 +13115,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-317-firecracker", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-317-firecracker" }, "id": "5900f4aa1000cf542c50ffbc", "title": "Problem 317: Firecracker" @@ -14319,8 +13126,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-318-2011-nines", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-318-2011-nines" }, "id": "5900f4ab1000cf542c50ffbd", "title": "Problem 318: 2011 nines" @@ -14331,8 +13137,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-319-bounded-sequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-319-bounded-sequences" }, "id": "5900f4ab1000cf542c50ffbe", "title": "Problem 319: Bounded Sequences" @@ -14343,8 +13148,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-32-pandigital-products", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-32-pandigital-products" }, "id": "5900f38c1000cf542c50fe9f", "title": "Problem 32: Pandigital products" @@ -14355,8 +13159,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-320-factorials-divisible-by-a-huge-integer", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-320-factorials-divisible-by-a-huge-integer" }, "id": "5900f4ae1000cf542c50ffbf", "title": "Problem 320: Factorials divisible by a huge integer" @@ -14367,8 +13170,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-321-swapping-counters", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-321-swapping-counters" }, "id": "5900f4ae1000cf542c50ffc0", "title": "Problem 321: Swapping Counters" @@ -14379,8 +13181,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-322-binomial-coefficients-divisible-by-10", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-322-binomial-coefficients-divisible-by-10" }, "id": "5900f4af1000cf542c50ffc1", "title": "Problem 322: Binomial coefficients divisible by 10" @@ -14391,8 +13192,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-323-bitwise-or-operations-on-random-integers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-323-bitwise-or-operations-on-random-integers" }, "id": "5900f4b01000cf542c50ffc2", "title": "Problem 323: Bitwise-OR operations on random integers" @@ -14403,8 +13203,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-324-building-a-tower", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-324-building-a-tower" }, "id": "5900f4b11000cf542c50ffc3", "title": "Problem 324: Building a tower" @@ -14415,8 +13214,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-325-stone-game-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-325-stone-game-ii" }, "id": "5900f4b11000cf542c50ffc4", "title": "Problem 325: Stone Game II" @@ -14427,8 +13225,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-326-modulo-summations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-326-modulo-summations" }, "id": "5900f4b21000cf542c50ffc5", "title": "Problem 326: Modulo Summations" @@ -14439,8 +13236,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-327-rooms-of-doom", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-327-rooms-of-doom" }, "id": "5900f4b31000cf542c50ffc6", "title": "Problem 327: Rooms of Doom" @@ -14451,8 +13247,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-328-lowest-cost-search", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-328-lowest-cost-search" }, "id": "5900f4b41000cf542c50ffc7", "title": "Problem 328: Lowest-cost Search" @@ -14463,8 +13258,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-329-prime-frog", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-329-prime-frog" }, "id": "5900f4b51000cf542c50ffc8", "title": "Problem 329: Prime Frog" @@ -14475,8 +13269,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions" }, "id": "5900f38d1000cf542c50fea0", "title": "Problem 33: Digit cancelling fractions" @@ -14487,8 +13280,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-330-eulers-number", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-330-eulers-number" }, "id": "5900f4b71000cf542c50ffc9", "title": "Problem 330: Euler's Number" @@ -14499,8 +13291,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-331-cross-flips", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-331-cross-flips" }, "id": "5900f4b71000cf542c50ffca", "title": "Problem 331: Cross flips" @@ -14511,8 +13302,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-332-spherical-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-332-spherical-triangles" }, "id": "5900f4b91000cf542c50ffcb", "title": "Problem 332: Spherical triangles" @@ -14523,8 +13313,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-333-special-partitions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-333-special-partitions" }, "id": "5900f4b91000cf542c50ffcc", "title": "Problem 333: Special partitions" @@ -14535,8 +13324,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-334-spilling-the-beans", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-334-spilling-the-beans" }, "id": "5900f4ba1000cf542c50ffcd", "title": "Problem 334: Spilling the beans" @@ -14547,8 +13335,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-335-gathering-the-beans", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-335-gathering-the-beans" }, "id": "5900f4bd1000cf542c50ffce", "title": "Problem 335: Gathering the beans" @@ -14559,8 +13346,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-336-maximix-arrangements", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-336-maximix-arrangements" }, "id": "5900f4bd1000cf542c50ffcf", "title": "Problem 336: Maximix Arrangements" @@ -14571,8 +13357,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-337-totient-stairstep-sequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-337-totient-stairstep-sequences" }, "id": "5900f4be1000cf542c50ffd0", "title": "Problem 337: Totient Stairstep Sequences" @@ -14583,8 +13368,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-338-cutting-rectangular-grid-paper", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-338-cutting-rectangular-grid-paper" }, "id": "5900f4be1000cf542c50ffd1", "title": "Problem 338: Cutting Rectangular Grid Paper" @@ -14595,8 +13379,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-339-peredur-fab-efrawg", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-339-peredur-fab-efrawg" }, "id": "5900f4c01000cf542c50ffd2", "title": "Problem 339: Peredur fab Efrawg" @@ -14607,8 +13390,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-34-digit-factorials", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-34-digit-factorials" }, "id": "5900f38e1000cf542c50fea1", "title": "Problem 34: Digit factorials" @@ -14619,8 +13401,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-340-crazy-function", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-340-crazy-function" }, "id": "5900f4c21000cf542c50ffd4", "title": "Problem 340: Crazy Function" @@ -14631,8 +13412,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-341-golombs-self-describing-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-341-golombs-self-describing-sequence" }, "id": "5900f4c11000cf542c50ffd3", "title": "Problem 341: Golomb's self-describing sequence" @@ -14643,8 +13423,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-342-the-totient-of-a-square-is-a-cube", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-342-the-totient-of-a-square-is-a-cube" }, "id": "5900f4c31000cf542c50ffd5", "title": "Problem 342: The totient of a square is a cube" @@ -14655,8 +13434,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-343-fractional-sequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-343-fractional-sequences" }, "id": "5900f4c41000cf542c50ffd6", "title": "Problem 343: Fractional Sequences" @@ -14667,8 +13445,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-344-silver-dollar-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-344-silver-dollar-game" }, "id": "5900f4c51000cf542c50ffd7", "title": "Problem 344: Silver dollar game" @@ -14679,8 +13456,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-345-matrix-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-345-matrix-sum" }, "id": "5900f4c81000cf542c50ffda", "title": "Problem 345: Matrix Sum" @@ -14691,8 +13467,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-346-strong-repunits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-346-strong-repunits" }, "id": "5900f4c71000cf542c50ffd8", "title": "Problem 346: Strong Repunits" @@ -14703,8 +13478,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-347-largest-integer-divisible-by-two-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-347-largest-integer-divisible-by-two-primes" }, "id": "5900f4c81000cf542c50ffd9", "title": "Problem 347: Largest integer divisible by two primes" @@ -14715,8 +13489,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-348-sum-of-a-square-and-a-cube", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-348-sum-of-a-square-and-a-cube" }, "id": "5900f4c81000cf542c50ffdb", "title": "Problem 348: Sum of a square and a cube" @@ -14727,8 +13500,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-349-langtons-ant", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-349-langtons-ant" }, "id": "5900f4ca1000cf542c50ffdc", "title": "Problem 349: Langton's ant" @@ -14739,8 +13511,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-35-circular-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-35-circular-primes" }, "id": "5900f38f1000cf542c50fea2", "title": "Problem 35: Circular primes" @@ -14751,8 +13522,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-350-constraining-the-least-greatest-and-the-greatest-least", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-350-constraining-the-least-greatest-and-the-greatest-least" }, "id": "5900f4cb1000cf542c50ffdd", "title": "Problem 350: Constraining the least greatest and the greatest least" @@ -14763,8 +13533,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-351-hexagonal-orchards", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-351-hexagonal-orchards" }, "id": "5900f4cb1000cf542c50ffde", "title": "Problem 351: Hexagonal orchards" @@ -14775,8 +13544,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-352-blood-tests", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-352-blood-tests" }, "id": "5900f4cd1000cf542c50ffdf", "title": "Problem 352: Blood tests" @@ -14787,8 +13555,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-353-risky-moon", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-353-risky-moon" }, "id": "5900f4cd1000cf542c50ffe0", "title": "Problem 353: Risky moon" @@ -14799,8 +13566,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-354-distances-in-a-bees-honeycomb", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-354-distances-in-a-bees-honeycomb" }, "id": "5900f4cf1000cf542c50ffe1", "title": "Problem 354: Distances in a bee's honeycomb" @@ -14811,8 +13577,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-355-maximal-coprime-subset", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-355-maximal-coprime-subset" }, "id": "5900f4d01000cf542c50ffe2", "title": "Problem 355: Maximal coprime subset" @@ -14823,8 +13588,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials" }, "id": "5900f4d01000cf542c50ffe3", "title": "Problem 356: Largest roots of cubic polynomials" @@ -14835,8 +13599,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-357-prime-generating-integers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-357-prime-generating-integers" }, "id": "5900f4d11000cf542c50ffe4", "title": "Problem 357: Prime generating integers" @@ -14847,8 +13610,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-358-cyclic-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-358-cyclic-numbers" }, "id": "5900f4d21000cf542c50ffe5", "title": "Problem 358: Cyclic numbers" @@ -14859,8 +13621,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-359-hilberts-new-hotel", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-359-hilberts-new-hotel" }, "id": "5900f4d31000cf542c50ffe6", "title": "Problem 359: Hilbert's New Hotel" @@ -14871,8 +13632,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-36-double-base-palindromes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-36-double-base-palindromes" }, "id": "5900f3901000cf542c50fea3", "title": "Problem 36: Double-base palindromes" @@ -14883,8 +13643,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-360-scary-sphere", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-360-scary-sphere" }, "id": "5900f4d41000cf542c50ffe7", "title": "Problem 360: Scary Sphere" @@ -14895,8 +13654,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-361-subsequence-of-thue-morse-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-361-subsequence-of-thue-morse-sequence" }, "id": "5900f4d51000cf542c50ffe8", "title": "Problem 361: Subsequence of Thue-Morse sequence" @@ -14907,8 +13665,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-362-squarefree-factors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-362-squarefree-factors" }, "id": "5900f4d61000cf542c50ffe9", "title": "Problem 362: Squarefree factors" @@ -14919,8 +13676,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-363-bzier-curves", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-363-bzier-curves" }, "id": "5900f4d91000cf542c50ffeb", "title": "Problem 363: Bézier Curves" @@ -14931,8 +13687,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-364-comfortable-distance", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-364-comfortable-distance" }, "id": "5900f4d91000cf542c50ffea", "title": "Problem 364: Comfortable distance" @@ -14943,8 +13698,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-365-a-huge-binomial-coefficient", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-365-a-huge-binomial-coefficient" }, "id": "5900f4da1000cf542c50ffec", "title": "Problem 365: A huge binomial coefficient" @@ -14955,8 +13709,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-366-stone-game-iii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-366-stone-game-iii" }, "id": "5900f4da1000cf542c50ffed", "title": "Problem 366: Stone Game III" @@ -14967,8 +13720,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-367-bozo-sort", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-367-bozo-sort" }, "id": "5900f4db1000cf542c50ffee", "title": "Problem 367: Bozo sort" @@ -14979,8 +13731,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-368-a-kempner-like-series", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-368-a-kempner-like-series" }, "id": "5900f4dd1000cf542c50ffef", "title": "Problem 368: A Kempner-like series" @@ -14991,8 +13742,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-369-badugi", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-369-badugi" }, "id": "5900f4de1000cf542c50fff0", "title": "Problem 369: Badugi" @@ -15003,8 +13753,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-37-truncatable-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-37-truncatable-primes" }, "id": "5900f3911000cf542c50fea4", "title": "Problem 37: Truncatable primes" @@ -15015,8 +13764,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-370-geometric-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-370-geometric-triangles" }, "id": "5900f4de1000cf542c50fff1", "title": "Problem 370: Geometric triangles" @@ -15027,8 +13775,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-371-licence-plates", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-371-licence-plates" }, "id": "5900f4e01000cf542c50fff2", "title": "Problem 371: Licence plates" @@ -15039,8 +13786,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-372-pencils-of-rays", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-372-pencils-of-rays" }, "id": "5900f4e11000cf542c50fff3", "title": "Problem 372: Pencils of rays" @@ -15051,8 +13797,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-373-circumscribed-circles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-373-circumscribed-circles" }, "id": "5900f4e11000cf542c50fff4", "title": "Problem 373: Circumscribed Circles" @@ -15063,8 +13808,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-374-maximum-integer-partition-product", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-374-maximum-integer-partition-product" }, "id": "5900f4e51000cf542c50fff6", "title": "Problem 374: Maximum Integer Partition Product" @@ -15075,8 +13819,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-375-minimum-of-subsequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-375-minimum-of-subsequences" }, "id": "5900f4e41000cf542c50fff5", "title": "Problem 375: Minimum of subsequences" @@ -15087,8 +13830,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-376-nontransitive-sets-of-dice", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-376-nontransitive-sets-of-dice" }, "id": "5900f4e51000cf542c50fff7", "title": "Problem 376: Nontransitive sets of dice" @@ -15099,8 +13841,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-377-sum-of-digits-experience-13", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-377-sum-of-digits-experience-13" }, "id": "5900f4e51000cf542c50fff8", "title": "Problem 377: Sum of digits, experience 13" @@ -15111,8 +13852,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-378-triangle-triples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-378-triangle-triples" }, "id": "5900f4e61000cf542c50fff9", "title": "Problem 378: Triangle Triples" @@ -15123,8 +13863,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-379-least-common-multiple-count", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-379-least-common-multiple-count" }, "id": "5900f4e81000cf542c50fffa", "title": "Problem 379: Least common multiple count" @@ -15135,8 +13874,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-38-pandigital-multiples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-38-pandigital-multiples" }, "id": "5900f3931000cf542c50fea5", "title": "Problem 38: Pandigital multiples" @@ -15147,8 +13885,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-380-amazing-mazes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-380-amazing-mazes" }, "id": "5900f4e81000cf542c50fffb", "title": "Problem 380: Amazing Mazes!" @@ -15159,8 +13896,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-381-prime-k-factorial", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-381-prime-k-factorial" }, "id": "5900f4ea1000cf542c50fffc", "title": "Problem 381: (prime-k) factorial" @@ -15171,8 +13907,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-382-generating-polygons", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-382-generating-polygons" }, "id": "5900f4eb1000cf542c50fffd", "title": "Problem 382: Generating polygons" @@ -15183,8 +13918,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-383-divisibility-comparison-between-factorials", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-383-divisibility-comparison-between-factorials" }, "id": "5900f4ed1000cf542c50ffff", "title": "Problem 383: Divisibility comparison between factorials" @@ -15195,8 +13929,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-384-rudin-shapiro-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-384-rudin-shapiro-sequence" }, "id": "5900f4ed1000cf542c50fffe", "title": "Problem 384: Rudin-Shapiro sequence" @@ -15207,8 +13940,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-385-ellipses-inside-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-385-ellipses-inside-triangles" }, "id": "5900f4ee1000cf542c510000", "title": "Problem 385: Ellipses inside triangles" @@ -15219,8 +13951,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-386-maximum-length-of-an-antichain", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-386-maximum-length-of-an-antichain" }, "id": "5900f4ef1000cf542c510001", "title": "Problem 386: Maximum length of an antichain" @@ -15231,8 +13962,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-387-harshad-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-387-harshad-numbers" }, "id": "5900f4f11000cf542c510003", "title": "Problem 387: Harshad Numbers" @@ -15243,8 +13973,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-388-distinct-lines", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-388-distinct-lines" }, "id": "5900f4f11000cf542c510002", "title": "Problem 388: Distinct Lines" @@ -15255,8 +13984,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-389-platonic-dice", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-389-platonic-dice" }, "id": "5900f4f21000cf542c510004", "title": "Problem 389: Platonic Dice" @@ -15267,8 +13995,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-39-integer-right-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-39-integer-right-triangles" }, "id": "5900f3931000cf542c50fea6", "title": "Problem 39: Integer right triangles" @@ -15279,8 +14006,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-390-triangles-with-non-rational-sides-and-integral-area", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-390-triangles-with-non-rational-sides-and-integral-area" }, "id": "5900f4f21000cf542c510005", "title": "Problem 390: Triangles with non rational sides and integral area" @@ -15291,8 +14017,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-391-hopping-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-391-hopping-game" }, "id": "5900f4f31000cf542c510006", "title": "Problem 391: Hopping Game" @@ -15303,8 +14028,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-392-enmeshed-unit-circle", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-392-enmeshed-unit-circle" }, "id": "5900f4f41000cf542c510007", "title": "Problem 392: Enmeshed unit circle" @@ -15315,8 +14039,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-393-migrating-ants", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-393-migrating-ants" }, "id": "5900f4f61000cf542c510008", "title": "Problem 393: Migrating ants" @@ -15327,8 +14050,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-394-eating-pie", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-394-eating-pie" }, "id": "5900f4f71000cf542c510009", "title": "Problem 394: Eating pie" @@ -15339,8 +14061,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-395-pythagorean-tree", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-395-pythagorean-tree" }, "id": "5900f4f71000cf542c51000a", "title": "Problem 395: Pythagorean tree" @@ -15351,8 +14072,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-396-weak-goodstein-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-396-weak-goodstein-sequence" }, "id": "5900f4f81000cf542c51000b", "title": "Problem 396: Weak Goodstein sequence" @@ -15363,8 +14083,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-397-triangle-on-parabola", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-397-triangle-on-parabola" }, "id": "5900f4f91000cf542c51000c", "title": "Problem 397: Triangle on parabola" @@ -15375,8 +14094,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-398-cutting-rope", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-398-cutting-rope" }, "id": "5900f4fa1000cf542c51000d", "title": "Problem 398: Cutting rope" @@ -15387,8 +14105,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-399-squarefree-fibonacci-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-399-squarefree-fibonacci-numbers" }, "id": "5900f4fc1000cf542c51000e", "title": "Problem 399: Squarefree Fibonacci Numbers" @@ -15399,8 +14116,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-4-largest-palindrome-product", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-4-largest-palindrome-product" }, "id": "5900f3701000cf542c50fe83", "title": "Problem 4: Largest palindrome product" @@ -15411,8 +14127,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-40-champernownes-constant", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-40-champernownes-constant" }, "id": "5900f3941000cf542c50fea7", "title": "Problem 40: Champernowne's constant" @@ -15423,8 +14138,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-400-fibonacci-tree-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-400-fibonacci-tree-game" }, "id": "5900f4fe1000cf542c510010", "title": "Problem 400: Fibonacci tree game" @@ -15435,8 +14149,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-401-sum-of-squares-of-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-401-sum-of-squares-of-divisors" }, "id": "5900f4fd1000cf542c51000f", "title": "Problem 401: Sum of squares of divisors" @@ -15447,8 +14160,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-402-integer-valued-polynomials", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-402-integer-valued-polynomials" }, "id": "5900f4ff1000cf542c510011", "title": "Problem 402: Integer-valued polynomials" @@ -15459,8 +14171,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-403-lattice-points-enclosed-by-parabola-and-line", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-403-lattice-points-enclosed-by-parabola-and-line" }, "id": "5900f5001000cf542c510013", "title": "Problem 403: Lattice points enclosed by parabola and line" @@ -15471,8 +14182,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-404-crisscross-ellipses", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-404-crisscross-ellipses" }, "id": "5900f5001000cf542c510012", "title": "Problem 404: Crisscross Ellipses" @@ -15483,8 +14193,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-405-a-rectangular-tiling", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-405-a-rectangular-tiling" }, "id": "5900f5021000cf542c510014", "title": "Problem 405: A rectangular tiling" @@ -15495,8 +14204,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-406-guessing-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-406-guessing-game" }, "id": "5900f5021000cf542c510015", "title": "Problem 406: Guessing Game" @@ -15507,8 +14215,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-407-idempotents", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-407-idempotents" }, "id": "5900f5041000cf542c510016", "title": "Problem 407: Idempotents" @@ -15519,8 +14226,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-408-admissible-paths-through-a-grid", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-408-admissible-paths-through-a-grid" }, "id": "5900f5091000cf542c51001b", "title": "Problem 408: Admissible paths through a grid" @@ -15531,8 +14237,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-409-nim-extreme", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-409-nim-extreme" }, "id": "5900f5061000cf542c510017", "title": "Problem 409: Nim Extreme" @@ -15543,8 +14248,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-41-pandigital-prime", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-41-pandigital-prime" }, "id": "5900f3951000cf542c50fea8", "title": "Problem 41: Pandigital prime" @@ -15555,8 +14259,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-410-circle-and-tangent-line", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-410-circle-and-tangent-line" }, "id": "5900f5071000cf542c510018", "title": "Problem 410: Circle and tangent line" @@ -15567,8 +14270,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-411-uphill-paths", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-411-uphill-paths" }, "id": "5900f5081000cf542c510019", "title": "Problem 411: Uphill paths" @@ -15579,8 +14281,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-412-gnomon-numbering", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-412-gnomon-numbering" }, "id": "5900f5081000cf542c51001a", "title": "Problem 412: Gnomon numbering" @@ -15591,8 +14292,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-413-one-child-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-413-one-child-numbers" }, "id": "5900f50a1000cf542c51001c", "title": "Problem 413: One-child Numbers" @@ -15603,8 +14303,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-414-kaprekar-constant", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-414-kaprekar-constant" }, "id": "5900f50b1000cf542c51001d", "title": "Problem 414: Kaprekar constant" @@ -15615,8 +14314,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-415-titanic-sets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-415-titanic-sets" }, "id": "5900f50c1000cf542c51001e", "title": "Problem 415: Titanic sets" @@ -15627,8 +14325,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-416-a-frogs-trip", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-416-a-frogs-trip" }, "id": "5900f50e1000cf542c510020", "title": "Problem 416: A frog's trip" @@ -15639,8 +14336,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii" }, "id": "5900f50d1000cf542c51001f", "title": "Problem 417: Reciprocal cycles II" @@ -15651,8 +14347,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-418-factorisation-triples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-418-factorisation-triples" }, "id": "5900f50f1000cf542c510021", "title": "Problem 418: Factorisation triples" @@ -15663,8 +14358,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-419-look-and-say-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-419-look-and-say-sequence" }, "id": "5900f5101000cf542c510022", "title": "Problem 419: Look and say sequence" @@ -15675,8 +14369,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-42-coded-triangle-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-42-coded-triangle-numbers" }, "id": "5900f3961000cf542c50fea9", "title": "Problem 42: Coded triangle numbers" @@ -15687,8 +14380,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-420-2x2-positive-integer-matrix", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-420-2x2-positive-integer-matrix" }, "id": "5900f5111000cf542c510023", "title": "Problem 420: 2x2 positive integer matrix" @@ -15699,8 +14391,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-421-prime-factors-of-n151", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-421-prime-factors-of-n151" }, "id": "5900f5131000cf542c510024", "title": "Problem 421: Prime factors of n^15+1" @@ -15711,8 +14402,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-422-sequence-of-points-on-a-hyperbola", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-422-sequence-of-points-on-a-hyperbola" }, "id": "5900f5131000cf542c510025", "title": "Problem 422: Sequence of points on a hyperbola" @@ -15723,8 +14413,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-423-consecutive-die-throws", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-423-consecutive-die-throws" }, "id": "5900f5141000cf542c510027", "title": "Problem 423: Consecutive die throws" @@ -15735,8 +14424,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-424-kakuro", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-424-kakuro" }, "id": "5900f5141000cf542c510026", "title": "Problem 424: Kakuro" @@ -15747,8 +14435,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-425-prime-connection", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-425-prime-connection" }, "id": "5900f5151000cf542c510028", "title": "Problem 425: Prime connection" @@ -15759,8 +14446,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-426-box-ball-system", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-426-box-ball-system" }, "id": "5900f5171000cf542c510029", "title": "Problem 426: Box-ball system" @@ -15771,8 +14457,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-427-n-sequences", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-427-n-sequences" }, "id": "5900f5181000cf542c51002a", "title": "Problem 427: n-sequences" @@ -15783,8 +14468,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-428-necklace-of-circles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-428-necklace-of-circles" }, "id": "5900f5191000cf542c51002b", "title": "Problem 428: Necklace of Circles" @@ -15795,8 +14479,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-429-sum-of-squares-of-unitary-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-429-sum-of-squares-of-unitary-divisors" }, "id": "5900f5191000cf542c51002c", "title": "Problem 429: Sum of squares of unitary divisors" @@ -15807,8 +14490,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-43-sub-string-divisibility", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-43-sub-string-divisibility" }, "id": "5900f3971000cf542c50feaa", "title": "Problem 43: Sub-string divisibility" @@ -15819,8 +14501,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-430-range-flips", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-430-range-flips" }, "id": "5900f51a1000cf542c51002d", "title": "Problem 430: Range flips" @@ -15831,8 +14512,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-431-square-space-silo", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-431-square-space-silo" }, "id": "5900f51b1000cf542c51002e", "title": "Problem 431: Square Space Silo" @@ -15843,8 +14523,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-432-totient-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-432-totient-sum" }, "id": "5900f51e1000cf542c510030", "title": "Problem 432: Totient sum" @@ -15855,8 +14534,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-433-steps-in-euclids-algorithm", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-433-steps-in-euclids-algorithm" }, "id": "5900f51d1000cf542c51002f", "title": "Problem 433: Steps in Euclid's algorithm" @@ -15867,8 +14545,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-434-rigid-graphs", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-434-rigid-graphs" }, "id": "5900f51f1000cf542c510031", "title": "Problem 434: Rigid graphs" @@ -15879,8 +14556,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-435-polynomials-of-fibonacci-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-435-polynomials-of-fibonacci-numbers" }, "id": "5900f5201000cf542c510032", "title": "Problem 435: Polynomials of Fibonacci numbers" @@ -15891,8 +14567,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-436-unfair-wager", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-436-unfair-wager" }, "id": "5900f5221000cf542c510033", "title": "Problem 436: Unfair wager" @@ -15903,8 +14578,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-437-fibonacci-primitive-roots", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-437-fibonacci-primitive-roots" }, "id": "5900f5241000cf542c510036", "title": "Problem 437: Fibonacci primitive roots" @@ -15915,8 +14589,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-438-integer-part-of-polynomial-equations-solutions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-438-integer-part-of-polynomial-equations-solutions" }, "id": "5900f5231000cf542c510034", "title": "Problem 438: Integer part of polynomial equation's solutions" @@ -15927,8 +14600,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-439-sum-of-sum-of-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-439-sum-of-sum-of-divisors" }, "id": "5900f5231000cf542c510035", "title": "Problem 439: Sum of sum of divisors" @@ -15939,8 +14611,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-44-pentagon-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-44-pentagon-numbers" }, "id": "5900f3981000cf542c50feab", "title": "Problem 44: Pentagon numbers" @@ -15951,8 +14622,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-440-gcd-and-tiling", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-440-gcd-and-tiling" }, "id": "5900f5241000cf542c510037", "title": "Problem 440: GCD and Tiling" @@ -15963,8 +14633,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-441-the-inverse-summation-of-coprime-couples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-441-the-inverse-summation-of-coprime-couples" }, "id": "5900f5261000cf542c510038", "title": "Problem 441: The inverse summation of coprime couples" @@ -15975,8 +14644,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-442-eleven-free-integers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-442-eleven-free-integers" }, "id": "5900f5271000cf542c510039", "title": "Problem 442: Eleven-free integers" @@ -15987,8 +14655,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-443-gcd-sequence", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-443-gcd-sequence" }, "id": "5900f5271000cf542c51003a", "title": "Problem 443: GCD sequence" @@ -15999,8 +14666,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-444-the-roundtable-lottery", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-444-the-roundtable-lottery" }, "id": "5900f52a1000cf542c51003b", "title": "Problem 444: The Roundtable Lottery" @@ -16011,8 +14677,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-445-retractions-a", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-445-retractions-a" }, "id": "5900f52a1000cf542c51003c", "title": "Problem 445: Retractions A" @@ -16023,8 +14688,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-446-retractions-b", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-446-retractions-b" }, "id": "5900f52c1000cf542c51003d", "title": "Problem 446: Retractions B" @@ -16035,8 +14699,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-447-retractions-c", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-447-retractions-c" }, "id": "5900f52c1000cf542c51003e", "title": "Problem 447: Retractions C" @@ -16047,8 +14710,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-448-average-least-common-multiple", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-448-average-least-common-multiple" }, "id": "5900f52c1000cf542c51003f", "title": "Problem 448: Average least common multiple" @@ -16059,8 +14721,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-449-chocolate-covered-candy", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-449-chocolate-covered-candy" }, "id": "5900f52d1000cf542c510040", "title": "Problem 449: Chocolate covered candy" @@ -16071,8 +14732,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-45-triangular-pentagonal-and-hexagonal", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-45-triangular-pentagonal-and-hexagonal" }, "id": "5900f3991000cf542c50feac", "title": "Problem 45: Triangular, pentagonal, and hexagonal" @@ -16083,8 +14743,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-450-hypocycloid-and-lattice-points", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-450-hypocycloid-and-lattice-points" }, "id": "5900f52e1000cf542c510041", "title": "Problem 450: Hypocycloid and Lattice points" @@ -16095,8 +14754,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-451-modular-inverses", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-451-modular-inverses" }, "id": "5900f5311000cf542c510042", "title": "Problem 451: Modular inverses" @@ -16107,8 +14765,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-452-long-products", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-452-long-products" }, "id": "5900f5311000cf542c510043", "title": "Problem 452: Long Products" @@ -16119,8 +14776,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-453-lattice-quadrilaterals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-453-lattice-quadrilaterals" }, "id": "5900f5311000cf542c510044", "title": "Problem 453: Lattice Quadrilaterals" @@ -16131,8 +14787,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-454-diophantine-reciprocals-iii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-454-diophantine-reciprocals-iii" }, "id": "5900f5331000cf542c510045", "title": "Problem 454: Diophantine reciprocals III" @@ -16143,8 +14798,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-455-powers-with-trailing-digits", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-455-powers-with-trailing-digits" }, "id": "5900f5331000cf542c510046", "title": "Problem 455: Powers With Trailing Digits" @@ -16155,8 +14809,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-456-triangles-containing-the-origin-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-456-triangles-containing-the-origin-ii" }, "id": "5900f5351000cf542c510047", "title": "Problem 456: Triangles containing the origin II" @@ -16167,8 +14820,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-457-a-polynomial-modulo-the-square-of-a-prime", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-457-a-polynomial-modulo-the-square-of-a-prime" }, "id": "5900f5361000cf542c510048", "title": "Problem 457: A polynomial modulo the square of a prime" @@ -16179,8 +14831,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-458-permutations-of-project", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-458-permutations-of-project" }, "id": "5900f5361000cf542c510049", "title": "Problem 458: Permutations of Project" @@ -16191,8 +14842,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-459-flipping-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-459-flipping-game" }, "id": "5900f5371000cf542c51004a", "title": "Problem 459: Flipping game" @@ -16203,8 +14853,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-46-goldbachs-other-conjecture", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-46-goldbachs-other-conjecture" }, "id": "5900f39a1000cf542c50fead", "title": "Problem 46: Goldbach's other conjecture" @@ -16215,8 +14864,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-460-an-ant-on-the-move", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-460-an-ant-on-the-move" }, "id": "5900f5381000cf542c51004b", "title": "Problem 460: An ant on the move" @@ -16227,8 +14875,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-461-almost-pi", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-461-almost-pi" }, "id": "5900f53a1000cf542c51004c", "title": "Problem 461: Almost Pi" @@ -16239,8 +14886,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-462-permutation-of-3-smooth-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-462-permutation-of-3-smooth-numbers" }, "id": "5900f53b1000cf542c51004d", "title": "Problem 462: Permutation of 3-smooth numbers" @@ -16251,8 +14897,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-463-a-weird-recurrence-relation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-463-a-weird-recurrence-relation" }, "id": "5900f53c1000cf542c51004e", "title": "Problem 463: A weird recurrence relation" @@ -16263,8 +14908,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-464-mbius-function-and-intervals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-464-mbius-function-and-intervals" }, "id": "5900f53d1000cf542c51004f", "title": "Problem 464: Möbius function and intervals" @@ -16275,8 +14919,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-465-polar-polygons", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-465-polar-polygons" }, "id": "5900f53d1000cf542c510050", "title": "Problem 465: Polar polygons" @@ -16287,8 +14930,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-466-distinct-terms-in-a-multiplication-table", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-466-distinct-terms-in-a-multiplication-table" }, "id": "5900f53e1000cf542c510051", "title": "Problem 466: Distinct terms in a multiplication table" @@ -16299,8 +14941,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-467-superinteger", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-467-superinteger" }, "id": "5900f5411000cf542c510052", "title": "Problem 467: Superinteger" @@ -16311,8 +14952,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-468-smooth-divisors-of-binomial-coefficients", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-468-smooth-divisors-of-binomial-coefficients" }, "id": "5900f5411000cf542c510054", "title": "Problem 468: Smooth divisors of binomial coefficients" @@ -16323,8 +14963,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-469-empty-chairs", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-469-empty-chairs" }, "id": "5900f5411000cf542c510053", "title": "Problem 469: Empty chairs" @@ -16335,8 +14974,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-47-distinct-primes-factors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-47-distinct-primes-factors" }, "id": "5900f39c1000cf542c50feae", "title": "Problem 47: Distinct primes factors" @@ -16347,8 +14985,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-470-super-ramvok", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-470-super-ramvok" }, "id": "5900f5431000cf542c510055", "title": "Problem 470: Super Ramvok" @@ -16359,8 +14996,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-471-triangle-inscribed-in-ellipse", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-471-triangle-inscribed-in-ellipse" }, "id": "5900f5431000cf542c510056", "title": "Problem 471: Triangle inscribed in ellipse" @@ -16371,8 +15007,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-472-comfortable-distance-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-472-comfortable-distance-ii" }, "id": "5900f5451000cf542c510057", "title": "Problem 472: Comfortable Distance II" @@ -16383,8 +15018,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-473-phigital-number-base", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-473-phigital-number-base" }, "id": "5900f5461000cf542c510058", "title": "Problem 473: Phigital number base" @@ -16395,8 +15029,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-474-last-digits-of-divisors", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-474-last-digits-of-divisors" }, "id": "5900f5471000cf542c510059", "title": "Problem 474: Last digits of divisors" @@ -16407,8 +15040,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-475-music-festival", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-475-music-festival" }, "id": "5900f5481000cf542c51005a", "title": "Problem 475: Music festival" @@ -16419,8 +15051,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-476-circle-packing-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-476-circle-packing-ii" }, "id": "5900f5481000cf542c51005b", "title": "Problem 476: Circle Packing II" @@ -16431,8 +15062,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-477-number-sequence-game", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-477-number-sequence-game" }, "id": "5900f54a1000cf542c51005c", "title": "Problem 477: Number Sequence Game" @@ -16443,8 +15073,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-478-mixtures", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-478-mixtures" }, "id": "5900f54c1000cf542c51005e", "title": "Problem 478: Mixtures" @@ -16455,8 +15084,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-479-roots-on-the-rise", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-479-roots-on-the-rise" }, "id": "5900f54b1000cf542c51005d", "title": "Problem 479: Roots on the Rise" @@ -16467,8 +15095,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-48-self-powers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-48-self-powers" }, "id": "5900f39c1000cf542c50feaf", "title": "Problem 48: Self powers" @@ -16479,8 +15106,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-480-the-last-question", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-480-the-last-question" }, "id": "5900f54c1000cf542c51005f", "title": "Problem 480: The Last Question" @@ -16491,8 +15117,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-49-prime-permutations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-49-prime-permutations" }, "id": "5900f39d1000cf542c50feb0", "title": "Problem 49: Prime permutations" @@ -16503,8 +15128,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-5-smallest-multiple", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-5-smallest-multiple" }, "id": "5900f3711000cf542c50fe84", "title": "Problem 5: Smallest multiple" @@ -16515,8 +15139,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-50-consecutive-prime-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-50-consecutive-prime-sum" }, "id": "5900f39e1000cf542c50feb1", "title": "Problem 50: Consecutive prime sum" @@ -16527,8 +15150,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-51-prime-digit-replacements", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-51-prime-digit-replacements" }, "id": "5900f39f1000cf542c50feb2", "title": "Problem 51: Prime digit replacements" @@ -16539,8 +15161,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-52-permuted-multiples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-52-permuted-multiples" }, "id": "5900f3a01000cf542c50feb3", "title": "Problem 52: Permuted multiples" @@ -16551,8 +15172,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-53-combinatoric-selections", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-53-combinatoric-selections" }, "id": "5900f3a11000cf542c50feb4", "title": "Problem 53: Combinatoric selections" @@ -16563,8 +15183,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-54-poker-hands", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-54-poker-hands" }, "id": "5900f3a21000cf542c50feb5", "title": "Problem 54: Poker hands" @@ -16575,8 +15194,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-55-lychrel-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-55-lychrel-numbers" }, "id": "5900f3a31000cf542c50feb6", "title": "Problem 55: Lychrel numbers" @@ -16587,8 +15205,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-56-powerful-digit-sum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-56-powerful-digit-sum" }, "id": "5900f3a41000cf542c50feb7", "title": "Problem 56: Powerful digit sum" @@ -16599,8 +15216,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-57-square-root-convergents", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-57-square-root-convergents" }, "id": "5900f3a51000cf542c50feb8", "title": "Problem 57: Square root convergents" @@ -16611,8 +15227,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-58-spiral-primes", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-58-spiral-primes" }, "id": "5900f3a61000cf542c50feb9", "title": "Problem 58: Spiral primes" @@ -16623,8 +15238,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-59-xor-decryption", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-59-xor-decryption" }, "id": "5900f3a81000cf542c50feba", "title": "Problem 59: XOR decryption" @@ -16635,8 +15249,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-6-sum-square-difference", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-6-sum-square-difference" }, "id": "5900f3721000cf542c50fe85", "title": "Problem 6: Sum square difference" @@ -16647,8 +15260,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-60-prime-pair-sets", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-60-prime-pair-sets" }, "id": "5900f3a81000cf542c50febb", "title": "Problem 60: Prime pair sets" @@ -16659,8 +15271,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-61-cyclical-figurate-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-61-cyclical-figurate-numbers" }, "id": "5900f3a91000cf542c50febc", "title": "Problem 61: Cyclical figurate numbers" @@ -16671,8 +15282,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-62-cubic-permutations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-62-cubic-permutations" }, "id": "5900f3aa1000cf542c50febd", "title": "Problem 62: Cubic permutations" @@ -16683,8 +15293,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-63-powerful-digit-counts", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-63-powerful-digit-counts" }, "id": "5900f3ab1000cf542c50febe", "title": "Problem 63: Powerful digit counts" @@ -16695,8 +15304,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-64-odd-period-square-roots", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-64-odd-period-square-roots" }, "id": "5900f3ac1000cf542c50febf", "title": "Problem 64: Odd period square roots" @@ -16707,8 +15315,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-65-convergents-of-e", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-65-convergents-of-e" }, "id": "5900f3ad1000cf542c50fec0", "title": "Problem 65: Convergents of e" @@ -16719,8 +15326,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-66-diophantine-equation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-66-diophantine-equation" }, "id": "5900f3ae1000cf542c50fec1", "title": "Problem 66: Diophantine equation" @@ -16731,8 +15337,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-67-maximum-path-sum-ii", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-67-maximum-path-sum-ii" }, "id": "5900f3b01000cf542c50fec2", "title": "Problem 67: Maximum path sum II" @@ -16743,8 +15348,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-68-magic-5-gon-ring", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-68-magic-5-gon-ring" }, "id": "5900f3b01000cf542c50fec3", "title": "Problem 68: Magic 5-gon ring" @@ -16755,8 +15359,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-69-totient-maximum", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-69-totient-maximum" }, "id": "5900f3b11000cf542c50fec4", "title": "Problem 69: Totient maximum" @@ -16767,8 +15370,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-7-10001st-prime", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-7-10001st-prime" }, "id": "5900f3731000cf542c50fe86", "title": "Problem 7: 10001st prime" @@ -16779,8 +15381,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-70-totient-permutation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-70-totient-permutation" }, "id": "5900f3b21000cf542c50fec5", "title": "Problem 70: Totient permutation" @@ -16791,8 +15392,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-71-ordered-fractions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-71-ordered-fractions" }, "id": "5900f3b31000cf542c50fec6", "title": "Problem 71: Ordered fractions" @@ -16803,8 +15403,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-72-counting-fractions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-72-counting-fractions" }, "id": "5900f3b41000cf542c50fec7", "title": "Problem 72: Counting fractions" @@ -16815,8 +15414,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-73-counting-fractions-in-a-range", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-73-counting-fractions-in-a-range" }, "id": "5900f3b61000cf542c50fec8", "title": "Problem 73: Counting fractions in a range" @@ -16827,8 +15425,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-74-digit-factorial-chains", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-74-digit-factorial-chains" }, "id": "5900f3b61000cf542c50fec9", "title": "Problem 74: Digit factorial chains" @@ -16839,8 +15436,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-75-singular-integer-right-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-75-singular-integer-right-triangles" }, "id": "5900f3b71000cf542c50feca", "title": "Problem 75: Singular integer right triangles" @@ -16851,8 +15447,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-76-counting-summations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-76-counting-summations" }, "id": "5900f3b81000cf542c50fecb", "title": "Problem 76: Counting summations" @@ -16863,8 +15458,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-77-prime-summations", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-77-prime-summations" }, "id": "5900f3b91000cf542c50fecc", "title": "Problem 77: Prime summations" @@ -16875,8 +15469,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-78-coin-partitions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-78-coin-partitions" }, "id": "5900f3ba1000cf542c50fecd", "title": "Problem 78: Coin partitions" @@ -16887,8 +15480,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-79-passcode-derivation", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-79-passcode-derivation" }, "id": "5900f3bb1000cf542c50fece", "title": "Problem 79: Passcode derivation" @@ -16899,8 +15491,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-8-largest-product-in-a-series", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-8-largest-product-in-a-series" }, "id": "5900f3741000cf542c50fe87", "title": "Problem 8: Largest product in a series" @@ -16911,8 +15502,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-80-square-root-digital-expansion", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-80-square-root-digital-expansion" }, "id": "5900f3bc1000cf542c50fecf", "title": "Problem 80: Square root digital expansion" @@ -16923,8 +15513,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-81-path-sum-two-ways", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-81-path-sum-two-ways" }, "id": "5900f3bd1000cf542c50fed0", "title": "Problem 81: Path sum: two ways" @@ -16935,8 +15524,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-82-path-sum-three-ways", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-82-path-sum-three-ways" }, "id": "5900f3be1000cf542c50fed1", "title": "Problem 82: Path sum: three ways" @@ -16947,8 +15535,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-83-path-sum-four-ways", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-83-path-sum-four-ways" }, "id": "5900f3bf1000cf542c50fed2", "title": "Problem 83: Path sum: four ways" @@ -16959,8 +15546,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-84-monopoly-odds", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-84-monopoly-odds" }, "id": "5900f3c11000cf542c50fed3", "title": "Problem 84: Monopoly odds" @@ -16971,8 +15557,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-85-counting-rectangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-85-counting-rectangles" }, "id": "5900f3c11000cf542c50fed4", "title": "Problem 85: Counting rectangles" @@ -16983,8 +15568,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-86-cuboid-route", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-86-cuboid-route" }, "id": "5900f3c31000cf542c50fed5", "title": "Problem 86: Cuboid route" @@ -16995,8 +15579,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-87-prime-power-triples", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-87-prime-power-triples" }, "id": "5900f3c51000cf542c50fed8", "title": "Problem 87: Prime power triples" @@ -17007,8 +15590,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-88-product-sum-numbers", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-88-product-sum-numbers" }, "id": "5900f3c51000cf542c50fed6", "title": "Problem 88: Product-sum numbers" @@ -17019,8 +15601,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-89-roman-numerals", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-89-roman-numerals" }, "id": "5900f3c51000cf542c50fed7", "title": "Problem 89: Roman numerals" @@ -17031,8 +15612,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-9-special-pythagorean-triplet", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-9-special-pythagorean-triplet" }, "id": "5900f3761000cf542c50fe88", "title": "Problem 9: Special Pythagorean triplet" @@ -17043,8 +15623,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-90-cube-digit-pairs", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-90-cube-digit-pairs" }, "id": "5900f3c61000cf542c50fed9", "title": "Problem 90: Cube digit pairs" @@ -17055,8 +15634,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-91-right-triangles-with-integer-coordinates", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-91-right-triangles-with-integer-coordinates" }, "id": "5900f3c71000cf542c50feda", "title": "Problem 91: Right triangles with integer coordinates" @@ -17067,8 +15645,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-92-square-digit-chains", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-92-square-digit-chains" }, "id": "5900f3c81000cf542c50fedb", "title": "Problem 92: Square digit chains" @@ -17079,8 +15656,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-93-arithmetic-expressions", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-93-arithmetic-expressions" }, "id": "5900f3ca1000cf542c50fedc", "title": "Problem 93: Arithmetic expressions" @@ -17091,8 +15667,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-94-almost-equilateral-triangles", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-94-almost-equilateral-triangles" }, "id": "5900f3ca1000cf542c50fedd", "title": "Problem 94: Almost equilateral triangles" @@ -17103,8 +15678,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-95-amicable-chains", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-95-amicable-chains" }, "id": "5900f3cc1000cf542c50fede", "title": "Problem 95: Amicable chains" @@ -17115,8 +15689,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-96-su-doku", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-96-su-doku" }, "id": "5900f3cc1000cf542c50fedf", "title": "Problem 96: Su Doku" @@ -17127,8 +15700,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-97-large-non-mersenne-prime", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-97-large-non-mersenne-prime" }, "id": "5900f3ce1000cf542c50fee0", "title": "Problem 97: Large non-Mersenne prime" @@ -17139,8 +15711,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-98-anagramic-squares", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-98-anagramic-squares" }, "id": "5900f3cf1000cf542c50fee1", "title": "Problem 98: Anagramic squares" @@ -17151,8 +15722,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/project-euler/problem-99-largest-exponential", - "blockName": "Project Euler" + "slug": "/learn/coding-interview-prep/project-euler/problem-99-largest-exponential" }, "id": "5900f3d01000cf542c50fee2", "title": "Problem 99: Largest exponential" @@ -17163,8 +15733,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/100-doors", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/100-doors" }, "id": "594810f028c0303b75339acb", "title": "100 doors" @@ -17175,8 +15744,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/24-game", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/24-game" }, "id": "5951e88f64ebf159166a1176", "title": "24 game" @@ -17187,8 +15755,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/9-billion-names-of-god-the-integer", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/9-billion-names-of-god-the-integer" }, "id": "5949b579404977fbaefcd736", "title": "9 billion names of God the integer" @@ -17199,8 +15766,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/abc-problem", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/abc-problem" }, "id": "594810f028c0303b75339acc", "title": "ABC Problem" @@ -17211,8 +15777,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/abundant-deficient-and-perfect-number-classifications", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/abundant-deficient-and-perfect-number-classifications" }, "id": "594810f028c0303b75339acd", "title": "Abundant, deficient and perfect number classifications" @@ -17223,8 +15788,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/accumulator-factory", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/accumulator-factory" }, "id": "594810f028c0303b75339ace", "title": "Accumulator factory" @@ -17235,8 +15799,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/ackermann-function", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/ackermann-function" }, "id": "594810f028c0303b75339acf", "title": "Ackermann function" @@ -17247,8 +15810,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/align-columns", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/align-columns" }, "id": "594810f028c0303b75339ad0", "title": "Align columns" @@ -17259,8 +15821,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/amicable-pairs", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/amicable-pairs" }, "id": "5949b579404977fbaefcd737", "title": "Amicable pairs" @@ -17271,8 +15832,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/averagesmode", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/averagesmode" }, "id": "594d8d0ab97724821379b1e6", "title": "Averages/Mode" @@ -17283,8 +15843,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/averagespythagorean-means", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/averagespythagorean-means" }, "id": "594d966a1467eb84194f0086", "title": "Averages/Pythagorean means" @@ -17295,8 +15854,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/averagesroot-mean-square", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/averagesroot-mean-square" }, "id": "594da033de4190850b893874", "title": "Averages/Root mean square" @@ -17307,8 +15865,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/babbage-problem", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/babbage-problem" }, "id": "594db4d0dedb4c06a2a4cefd", "title": "Babbage problem" @@ -17319,8 +15876,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/balanced-brackets", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/balanced-brackets" }, "id": "594dc6c729e5700999302b45", "title": "Balanced brackets" @@ -17331,8 +15887,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points" }, "id": "5951815dd895584b06884620", "title": "Circles of given radius through two points" @@ -17343,8 +15898,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/closest-pair-problem", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/closest-pair-problem" }, "id": "5951a53863c8a34f02bf1bdc", "title": "Closest-pair problem" @@ -17355,8 +15909,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/combinations", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/combinations" }, "id": "5958469238c0d8d2632f46db", "title": "Combinations" @@ -17367,8 +15920,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/comma-quibbling", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/comma-quibbling" }, "id": "596e414344c3b2872167f0fe", "title": "Comma quibbling" @@ -17379,8 +15931,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/compare-a-list-of-strings", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/compare-a-list-of-strings" }, "id": "596e457071c35c882915b3e4", "title": "Compare a list of strings" @@ -17391,8 +15942,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/convert-seconds-to-compound-duration", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/convert-seconds-to-compound-duration" }, "id": "596fd036dc1ab896c5db98b1", "title": "Convert seconds to compound duration" @@ -17403,8 +15953,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/count-occurrences-of-a-substring", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/count-occurrences-of-a-substring" }, "id": "596fda99c69f779975a1b67d", "title": "Count occurrences of a substring" @@ -17415,8 +15964,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/count-the-coins", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/count-the-coins" }, "id": "59713bd26bdeb8a594fb9413", "title": "Count the coins" @@ -17427,8 +15975,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/cramers-rule", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/cramers-rule" }, "id": "59713da0a428c1a62d7db430", "title": "Cramer's rule" @@ -17439,8 +15986,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/cumulative-standard-deviation", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/cumulative-standard-deviation" }, "id": "5a23c84252665b21eecc7e03", "title": "Cumulative standard deviation" @@ -17451,8 +15997,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/cusip", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/cusip" }, "id": "5a23c84252665b21eecc7e05", "title": "CUSIP" @@ -17463,8 +16008,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/cut-a-rectangle", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/cut-a-rectangle" }, "id": "5a23c84252665b21eecc7e06", "title": "Cut a rectangle" @@ -17475,8 +16019,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/date-format", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/date-format" }, "id": "59669d08d75b60482359409f", "title": "Date format" @@ -17487,8 +16030,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/date-manipulation", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/date-manipulation" }, "id": "5966c21cf732a95f1b67dd28", "title": "Date manipulation" @@ -17499,8 +16041,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/day-of-the-week", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/day-of-the-week" }, "id": "5966f99c45e8976909a85575", "title": "Day of the week" @@ -17511,8 +16052,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/deal-cards-for-freecell", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/deal-cards-for-freecell" }, "id": "59694356a6e7011f7f1c5f4e", "title": "Deal cards for FreeCell" @@ -17523,8 +16063,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/deepcopy", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/deepcopy" }, "id": "596a8888ab7c01048de257d5", "title": "Deepcopy" @@ -17535,8 +16074,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/define-a-primitive-data-type", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/define-a-primitive-data-type" }, "id": "597089c87eec450c68aa1643", "title": "Define a primitive data type" @@ -17547,8 +16085,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/department-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/department-numbers" }, "id": "59f40b17e79dbf1ab720ed7a", "title": "Department Numbers" @@ -17559,8 +16096,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/discordian-date", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/discordian-date" }, "id": "59f4eafba0343628bb682785", "title": "Discordian date" @@ -17571,8 +16107,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/dot-product", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/dot-product" }, "id": "5a23c84252665b21eecc7e1e", "title": "Dot product" @@ -17583,8 +16118,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/element-wise-operations", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/element-wise-operations" }, "id": "599c333915e0ea32d04d4bec", "title": "Element-wise operations" @@ -17595,8 +16129,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/emirp-primes", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/emirp-primes" }, "id": "599d0ba974141b0f508b37d5", "title": "Emirp primes" @@ -17607,8 +16140,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/entropy", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/entropy" }, "id": "599d15309e88c813a40baf58", "title": "Entropy" @@ -17619,8 +16151,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/equilibrium-index", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/equilibrium-index" }, "id": "5987fd532b954e0f21b5d3f6", "title": "Equilibrium index" @@ -17631,8 +16162,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/ethiopian-multiplication", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/ethiopian-multiplication" }, "id": "599d1566a02b571412643b84", "title": "Ethiopian multiplication" @@ -17643,8 +16173,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/euler-method", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/euler-method" }, "id": "59880443fb36441083c6c20e", "title": "Euler method" @@ -17655,8 +16184,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/evaluate-binomial-coefficients", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/evaluate-binomial-coefficients" }, "id": "598de241872ef8353c58a7a2", "title": "Evaluate binomial coefficients" @@ -17667,8 +16195,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/execute-a-markov-algorithm", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/execute-a-markov-algorithm" }, "id": "59e09e6d412c5939baa02d16", "title": "Execute a Markov algorithm" @@ -17679,8 +16206,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/execute-brain", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/execute-brain" }, "id": "59e0a8df964e4540d5abe599", "title": "Execute Brain****" @@ -17691,8 +16217,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/extensible-prime-generator", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/extensible-prime-generator" }, "id": "598ee8b91b410510ae82efef", "title": "Extensible prime generator" @@ -17703,8 +16228,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/factorial", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/factorial" }, "id": "597b2b2a2702b44414742771", "title": "Factorial" @@ -17715,8 +16239,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/factors-of-a-mersenne-number", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/factors-of-a-mersenne-number" }, "id": "598eea87e5cf4b116c3ff81a", "title": "Factors of a Mersenne number" @@ -17727,8 +16250,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/factors-of-an-integer", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/factors-of-an-integer" }, "id": "597f1e7fbc206f0e9ba95dc4", "title": "Factors of an integer" @@ -17739,8 +16261,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/farey-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/farey-sequence" }, "id": "59c3ec9f15068017c96eb8a3", "title": "Farey sequence" @@ -17751,8 +16272,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-n-step-number-sequences", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-n-step-number-sequences" }, "id": "598eef80ba501f1268170e1e", "title": "Fibonacci n-step number sequences" @@ -17763,8 +16283,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-sequence" }, "id": "597f24c1dda4e70f53c79c81", "title": "Fibonacci sequence" @@ -17775,8 +16294,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-word", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/fibonacci-word" }, "id": "5992e222d397f00d21122931", "title": "Fibonacci word" @@ -17787,8 +16305,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/fizzbuzz", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/fizzbuzz" }, "id": "5e9ddb06ec35240f39657419", "title": "FizzBuzz" @@ -17799,8 +16316,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/fractran", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/fractran" }, "id": "5a7dad05be01840e1778a0d1", "title": "Fractran" @@ -17811,8 +16327,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/gamma-function", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/gamma-function" }, "id": "5a23c84252665b21eecc7e76", "title": "Gamma function" @@ -17823,8 +16338,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/gaussian-elimination", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/gaussian-elimination" }, "id": "5a23c84252665b21eecc7e77", "title": "Gaussian elimination" @@ -17835,8 +16349,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/general-fizzbuzz", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/general-fizzbuzz" }, "id": "5a23c84252665b21eecc7e78", "title": "General FizzBuzz" @@ -17847,8 +16360,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/generate-lower-case-ascii-alphabet", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/generate-lower-case-ascii-alphabet" }, "id": "5a23c84252665b21eecc7e7a", "title": "Generate lower case ASCII alphabet" @@ -17859,8 +16371,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/generatorexponential", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/generatorexponential" }, "id": "5a23c84252665b21eecc7e7b", "title": "Generator/Exponential" @@ -17871,8 +16382,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/gray-code", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/gray-code" }, "id": "5a23c84252665b21eecc7e80", "title": "Gray code" @@ -17883,8 +16393,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/greatest-common-divisor", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/greatest-common-divisor" }, "id": "5a23c84252665b21eecc7e82", "title": "Greatest common divisor" @@ -17895,8 +16404,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/greatest-subsequential-sum", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/greatest-subsequential-sum" }, "id": "5a23c84252665b21eecc7e84", "title": "Greatest subsequential sum" @@ -17907,8 +16415,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/hailstone-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/hailstone-sequence" }, "id": "595608ff8bcd7a50bd490181", "title": "Hailstone sequence" @@ -17919,8 +16426,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/happy-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/happy-numbers" }, "id": "594810f028c0303b75339ad1", "title": "Happy numbers" @@ -17931,8 +16437,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/harshad-or-niven-series", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/harshad-or-niven-series" }, "id": "595668ca4cfe1af2fb9818d4", "title": "Harshad or Niven series" @@ -17943,8 +16448,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/hash-from-two-arrays", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/hash-from-two-arrays" }, "id": "595671d4d2cdc305f0d5b36f", "title": "Hash from two arrays" @@ -17955,8 +16459,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/hash-join", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/hash-join" }, "id": "5956795bc9e2c415eb244de1", "title": "Hash join" @@ -17967,8 +16470,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/heronian-triangles", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/heronian-triangles" }, "id": "595b98f8b5a2245e243aa831", "title": "Heronian triangles" @@ -17979,8 +16481,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences" }, "id": "59622f89e4e137560018a40e", "title": "Hofstadter Figure-Figure sequences" @@ -17991,8 +16492,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/hofstadter-q-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/hofstadter-q-sequence" }, "id": "59637c4d89f6786115efd814", "title": "Hofstadter Q sequence" @@ -18003,8 +16503,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/i-before-e-except-after-c", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/i-before-e-except-after-c" }, "id": "5a23c84252665b21eecc7eb0", "title": "I before E except after C" @@ -18015,8 +16514,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/iban", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/iban" }, "id": "5a23c84252665b21eecc7eaf", "title": "IBAN" @@ -18027,8 +16525,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/identity-matrix", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/identity-matrix" }, "id": "5a23c84252665b21eecc7eb1", "title": "Identity matrix" @@ -18039,8 +16536,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/iterated-digits-squaring", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/iterated-digits-squaring" }, "id": "5a23c84252665b21eecc7ec1", "title": "Iterated digits squaring" @@ -18051,8 +16547,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/jaro-distance", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/jaro-distance" }, "id": "5a23c84252665b21eecc7ec2", "title": "Jaro distance" @@ -18063,8 +16558,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/jortsort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/jortsort" }, "id": "5a23c84252665b21eecc7ec4", "title": "JortSort" @@ -18075,8 +16569,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/josephus-problem", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/josephus-problem" }, "id": "5a23c84252665b21eecc7ec5", "title": "Josephus problem" @@ -18087,8 +16580,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/k-d-tree", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/k-d-tree" }, "id": "5a23c84252665b21eecc7ecb", "title": "K-d tree" @@ -18099,8 +16591,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/kaprekar-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/kaprekar-numbers" }, "id": "5a23c84252665b21eecc7eca", "title": "Kaprekar numbers" @@ -18111,8 +16602,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problem0-1", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problem0-1" }, "id": "5a23c84252665b21eecc7ed1", "title": "Knapsack problem/0-1" @@ -18123,8 +16613,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problembounded", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problembounded" }, "id": "5a23c84252665b21eecc7ed2", "title": "Knapsack problem/Bounded" @@ -18135,8 +16624,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problemcontinuous", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problemcontinuous" }, "id": "5a23c84252665b21eecc7ed3", "title": "Knapsack problem/Continuous" @@ -18147,8 +16635,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problemunbounded", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/knapsack-problemunbounded" }, "id": "5a23c84252665b21eecc7ed4", "title": "Knapsack problem/Unbounded" @@ -18159,8 +16646,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/knights-tour", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/knights-tour" }, "id": "5a23c84252665b21eecc7ed5", "title": "Knight's tour" @@ -18171,8 +16657,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/largest-int-from-concatenated-ints", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/largest-int-from-concatenated-ints" }, "id": "5a23c84252665b21eecc7edb", "title": "Largest int from concatenated ints" @@ -18183,8 +16668,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/last-friday-of-each-month", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/last-friday-of-each-month" }, "id": "5a23c84252665b21eecc7edc", "title": "Last Friday of each month" @@ -18195,8 +16679,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/last-letter-first-letter", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/last-letter-first-letter" }, "id": "5e4ce2b6ac708cc68c1df25e", "title": "Last letter-first letter" @@ -18207,8 +16690,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/leap-year", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/leap-year" }, "id": "5a23c84252665b21eecc7ede", "title": "Leap year" @@ -18219,8 +16701,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/least-common-multiple", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/least-common-multiple" }, "id": "5a23c84252665b21eecc7edf", "title": "Least common multiple" @@ -18231,8 +16712,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/left-factorials", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/left-factorials" }, "id": "5a23c84252665b21eecc7ee0", "title": "Left factorials" @@ -18243,8 +16723,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/letter-frequency", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/letter-frequency" }, "id": "5e4ce2bbac708cc68c1df25f", "title": "Letter frequency" @@ -18255,8 +16734,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/levenshtein-distance", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/levenshtein-distance" }, "id": "5e4ce2eaac708cc68c1df260", "title": "Levenshtein distance" @@ -18267,8 +16745,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/linear-congruential-generator", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/linear-congruential-generator" }, "id": "5e4ce2f5ac708cc68c1df261", "title": "Linear congruential generator" @@ -18279,8 +16756,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/long-multiplication", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/long-multiplication" }, "id": "5e4ce2a1ac708cc68c1df25d", "title": "Long multiplication" @@ -18291,8 +16767,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/longest-common-subsequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/longest-common-subsequence" }, "id": "5e6dd1278e6ca105cde40ea9", "title": "Longest common subsequence" @@ -18303,8 +16778,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/longest-increasing-subsequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/longest-increasing-subsequence" }, "id": "5e6dd139859c290b6ab80292", "title": "Longest increasing subsequence" @@ -18315,8 +16789,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/longest-string-challenge", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/longest-string-challenge" }, "id": "5e6dd14192286d95fc43046e", "title": "Longest string challenge" @@ -18327,8 +16800,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/look-and-say-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/look-and-say-sequence" }, "id": "5e6dd14797f5ce267c2f19d0", "title": "Look-and-say sequence" @@ -18339,8 +16811,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/loop-over-multiple-arrays-simultaneously", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/loop-over-multiple-arrays-simultaneously" }, "id": "5e6dd15004c88cf00d2a78b3", "title": "Loop over multiple arrays simultaneously" @@ -18351,8 +16822,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/lu-decomposition", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/lu-decomposition" }, "id": "5e6decd8ec8d7db960950d1c", "title": "LU decomposition" @@ -18363,8 +16833,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/lucas-lehmer-test", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/lucas-lehmer-test" }, "id": "5e6dee7749a0b85a3f1fc7d5", "title": "Lucas-Lehmer test" @@ -18375,8 +16844,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/ludic-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/ludic-numbers" }, "id": "5ea281203167d2b0bdefca00", "title": "Ludic numbers" @@ -18387,8 +16855,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/luhn-test-of-credit-card-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/luhn-test-of-credit-card-numbers" }, "id": "5ea28156e79528a9ab248f27", "title": "Luhn test of credit card numbers" @@ -18399,8 +16866,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/lychrel-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/lychrel-numbers" }, "id": "5ea2815a8640bcc6cb7dab3c", "title": "Lychrel numbers" @@ -18411,8 +16877,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/lzw-compression", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/lzw-compression" }, "id": "5ea2815e364d9a2222ea55f8", "title": "LZW compression" @@ -18423,8 +16888,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/s-expressions", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/s-expressions" }, "id": "59667989bf71cf555dd5d2ff", "title": "S-Expressions" @@ -18435,8 +16899,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sailors-coconuts-and-a-monkey-problem", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sailors-coconuts-and-a-monkey-problem" }, "id": "59da22823d04c95919d46269", "title": "Sailors, coconuts and a monkey problem" @@ -18447,8 +16910,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/search-a-list-of-records", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/search-a-list-of-records" }, "id": "5eb3e497b8d6d7f63c5517ea", "title": "Search a list of records" @@ -18459,8 +16921,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sedols", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sedols" }, "id": "59d9c6bc214c613ba73ff012", "title": "SEDOLs" @@ -18471,8 +16932,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/self-describing-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/self-describing-numbers" }, "id": "5eaf48389ee512d4d103684b", "title": "Self Describing Numbers" @@ -18483,8 +16943,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/self-referential-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/self-referential-sequence" }, "id": "5eb3e4a21f462f409d656c73", "title": "Self-referential sequence" @@ -18495,8 +16954,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/semiprime", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/semiprime" }, "id": "5eb3e4aa847216613aa81983", "title": "Semiprime" @@ -18507,8 +16965,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/set-consolidation", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/set-consolidation" }, "id": "5eb3e4af7d0e7b760b46cedc", "title": "Set consolidation" @@ -18519,8 +16976,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/set-of-real-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/set-of-real-numbers" }, "id": "5eb3e4b20aa93c437f9e9717", "title": "Set of real numbers" @@ -18531,8 +16987,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sha-1", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sha-1" }, "id": "5eb3e4b5f629b9a07429a5d2", "title": "SHA-1" @@ -18543,8 +16998,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sha-256", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sha-256" }, "id": "5eb3e4c3a894c333d2811a3f", "title": "SHA-256" @@ -18555,8 +17009,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sort-an-array-of-composite-structures", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sort-an-array-of-composite-structures" }, "id": "5a23c84252665b21eecc7ffe", "title": "Sort an array of composite structures" @@ -18567,8 +17020,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sort-disjoint-sublist", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sort-disjoint-sublist" }, "id": "5a23c84252665b21eecc8000", "title": "Sort disjoint sublist" @@ -18579,8 +17031,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sort-stability", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sort-stability" }, "id": "5a23c84252665b21eecc8014", "title": "Sort stability" @@ -18591,8 +17042,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sort-using-a-custom-comparator", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sort-using-a-custom-comparator" }, "id": "5a23c84252665b21eecc8016", "title": "Sort using a custom comparator" @@ -18603,8 +17053,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsbead-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsbead-sort" }, "id": "5a23c84252665b21eecc8001", "title": "Sorting algorithms/Bead sort" @@ -18615,8 +17064,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsbogosort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsbogosort" }, "id": "5a23c84252665b21eecc8002", "title": "Sorting algorithms/Bogosort" @@ -18627,8 +17075,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmscocktail-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmscocktail-sort" }, "id": "5a23c84252665b21eecc8004", "title": "Sorting algorithms/Cocktail sort" @@ -18639,8 +17086,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmscomb-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmscomb-sort" }, "id": "5a23c84252665b21eecc8005", "title": "Sorting algorithms/Comb sort" @@ -18651,8 +17097,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsgnome-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsgnome-sort" }, "id": "5a23c84252665b21eecc8007", "title": "Sorting algorithms/Gnome sort" @@ -18663,8 +17108,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmspancake-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmspancake-sort" }, "id": "5a23c84252665b21eecc800b", "title": "Sorting algorithms/Pancake sort" @@ -18675,8 +17119,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmspermutation-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmspermutation-sort" }, "id": "5a23c84252665b21eecc800c", "title": "Sorting algorithms/Permutation sort" @@ -18687,8 +17130,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsshell-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsshell-sort" }, "id": "5a23c84252665b21eecc8010", "title": "Sorting algorithms/Shell sort" @@ -18699,8 +17141,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsstooge-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsstooge-sort" }, "id": "5a23c84252665b21eecc8012", "title": "Sorting algorithms/Stooge sort" @@ -18711,8 +17152,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsstrand-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sorting-algorithmsstrand-sort" }, "id": "5a23c84252665b21eecc8013", "title": "Sorting algorithms/Strand sort" @@ -18723,8 +17163,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/soundex", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/soundex" }, "id": "5a23c84252665b21eecc8017", "title": "Soundex" @@ -18735,8 +17174,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/spiral-matrix", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/spiral-matrix" }, "id": "5a23c84252665b21eecc801c", "title": "Spiral matrix" @@ -18747,8 +17185,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/split-a-character-string-based-on-change-of-character", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/split-a-character-string-based-on-change-of-character" }, "id": "5a23c84252665b21eecc801d", "title": "Split a character string based on change of character" @@ -18759,8 +17196,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/state-name-puzzle", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/state-name-puzzle" }, "id": "5a23c84252665b21eecc8024", "title": "State name puzzle" @@ -18771,8 +17207,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/stern-brocot-sequence", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/stern-brocot-sequence" }, "id": "5a23c84252665b21eecc8028", "title": "Stern-Brocot sequence" @@ -18783,8 +17218,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/straddling-checkerboard", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/straddling-checkerboard" }, "id": "5a23c84252665b21eecc8029", "title": "Straddling checkerboard" @@ -18795,8 +17229,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/stream-merge", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/stream-merge" }, "id": "5a23c84252665b21eecc802a", "title": "Stream Merge" @@ -18807,8 +17240,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/strip-control-codes-and-extended-characters-from-a-string", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/strip-control-codes-and-extended-characters-from-a-string" }, "id": "5a23c84252665b21eecc8036", "title": "Strip control codes and extended characters from a string" @@ -18819,8 +17251,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/subleq", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/subleq" }, "id": "5a23c84252665b21eecc8038", "title": "Subleq" @@ -18831,8 +17262,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sudoku", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sudoku" }, "id": "5a23c84252665b21eecc803c", "title": "Sudoku" @@ -18843,8 +17273,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sum-digits-of-an-integer", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sum-digits-of-an-integer" }, "id": "5a23c84252665b21eecc803f", "title": "Sum digits of an integer" @@ -18855,8 +17284,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sum-multiples-of-3-and-5", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sum-multiples-of-3-and-5" }, "id": "5a23c84252665b21eecc8040", "title": "Sum multiples of 3 and 5" @@ -18867,8 +17295,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sum-of-a-series", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sum-of-a-series" }, "id": "5a23c84252665b21eecc8041", "title": "Sum of a series" @@ -18879,8 +17306,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sum-of-squares", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sum-of-squares" }, "id": "5a23c84252665b21eecc8042", "title": "Sum of squares" @@ -18891,8 +17317,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sum-to-100", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sum-to-100" }, "id": "5a23c84252665b21eecc8043", "title": "Sum to 100" @@ -18903,8 +17328,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/sutherland-hodgman-polygon-clipping", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/sutherland-hodgman-polygon-clipping" }, "id": "5a23c84252665b21eecc8045", "title": "Sutherland-Hodgman polygon clipping" @@ -18915,8 +17339,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/symmetric-difference", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/symmetric-difference" }, "id": "5a23c84252665b21eecc8046", "title": "Symmetric difference" @@ -18927,8 +17350,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/taxicab-numbers", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/taxicab-numbers" }, "id": "594ecc0d9a8cf816e3340187", "title": "Taxicab numbers" @@ -18939,8 +17361,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/tokenize-a-string-with-escaping", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/tokenize-a-string-with-escaping" }, "id": "594faaab4e2a8626833e9c3d", "title": "Tokenize a string with escaping" @@ -18951,8 +17372,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/top-rank-per-group", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/top-rank-per-group" }, "id": "595011cba5a81735713873bd", "title": "Top rank per group" @@ -18963,8 +17383,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/topological-sort", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/topological-sort" }, "id": "594fa2746886f41f7d8bf225", "title": "Topological sort" @@ -18975,8 +17394,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/towers-of-hanoi", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/towers-of-hanoi" }, "id": "5951ed8945deab770972ae56", "title": "Towers of Hanoi" @@ -18987,8 +17405,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/vector-cross-product", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/vector-cross-product" }, "id": "594810f028c0303b75339ad2", "title": "Vector cross product" @@ -18999,8 +17416,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/vector-dot-product", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/vector-dot-product" }, "id": "594810f028c0303b75339ad3", "title": "Vector dot product" @@ -19011,8 +17427,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/word-frequency", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/word-frequency" }, "id": "5e94a54cc7b022105bf0fd2c", "title": "Word frequency" @@ -19023,8 +17438,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/word-wrap", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/word-wrap" }, "id": "594810f028c0303b75339ad4", "title": "Word wrap" @@ -19035,8 +17449,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/y-combinator", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/y-combinator" }, "id": "594810f028c0303b75339ad5", "title": "Y combinator" @@ -19047,8 +17460,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/zeckendorf-number-representation", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/zeckendorf-number-representation" }, "id": "594810f028c0303b75339ad6", "title": "Zeckendorf number representation" @@ -19059,8 +17471,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/zhang-suen-thinning-algorithm", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/zhang-suen-thinning-algorithm" }, "id": "594810f028c0303b75339ad7", "title": "Zhang-Suen thinning algorithm" @@ -19071,8 +17482,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/rosetta-code/zig-zag-matrix", - "blockName": "Rosetta Code" + "slug": "/learn/coding-interview-prep/rosetta-code/zig-zag-matrix" }, "id": "594810f028c0303b75339ad8", "title": "Zig-zag matrix" @@ -19083,8 +17493,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-freecodecamp-forum-homepage", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-freecodecamp-forum-homepage" }, "id": "bd7156d8c242eddfaeb5bd13", "title": "Build a freeCodeCamp Forum Homepage" @@ -19095,8 +17504,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-light-bright-app", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-light-bright-app" }, "id": "5a5d02bd919fcf9ca8cf46cb", "title": "Build a Light-Bright App" @@ -19107,8 +17515,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app" }, "id": "bd7158d8c443eddfaeb5bdff", "title": "Build a Nightlife Coordination App" @@ -19119,8 +17526,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-pinterest-clone", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-pinterest-clone" }, "id": "bd7158d8c443eddfaeb5bdee", "title": "Build a Pinterest Clone" @@ -19131,8 +17537,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-pong-game", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-pong-game" }, "id": "5a4b7fcdb66f799f199e11db", "title": "Build a Pong Game" @@ -19143,8 +17548,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-recipe-box", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-recipe-box" }, "id": "bd7155d8c242eddfaeb5bd13", "title": "Build a Recipe Box" @@ -19155,8 +17559,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game" }, "id": "bd7153d8c242eddfaeb5bd13", "title": "Build a Roguelike Dungeon Crawler Game" @@ -19167,8 +17570,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-memory-light-game", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-memory-light-game" }, "id": "bd7158d8c442eddfaeb5bd1c", "title": "Build a Memory Light Game" @@ -19179,8 +17581,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game" }, "id": "bd7158d8c442eedfaeb5bd1c", "title": "Build a Tic Tac Toe Game" @@ -19191,8 +17592,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-voting-app", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-voting-app" }, "id": "bd7158d8c443eddfaeb5bdef", "title": "Build a Voting App" @@ -19203,8 +17603,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-a-wikipedia-viewer", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-a-wikipedia-viewer" }, "id": "bd7158d8c442eddfaeb5bd19", "title": "Build a Wikipedia Viewer" @@ -19215,8 +17614,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer" }, "id": "bd7158d8c443edefaeb5bdee", "title": "Build an Image Search Abstraction Layer" @@ -19227,8 +17625,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/build-the-game-of-life", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/build-the-game-of-life" }, "id": "bd7154d8c242eddfaeb5bd13", "title": "Build the Game of Life" @@ -19239,8 +17636,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/chart-the-stock-market", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/chart-the-stock-market" }, "id": "bd7158d8c443eddfaeb5bd0e", "title": "Chart the Stock Market" @@ -19251,8 +17647,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/manage-a-book-trading-club", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/manage-a-book-trading-club" }, "id": "bd7158d8c443eddfaeb5bd0f", "title": "Manage a Book Trading Club" @@ -19263,8 +17658,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/map-data-across-the-globe", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/map-data-across-the-globe" }, "id": "bd7108d8c242eddfaeb5bd13", "title": "Map Data Across the Globe" @@ -19275,8 +17669,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/p2p-video-chat-application", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/p2p-video-chat-application" }, "id": "bd7150d8c442eddfafb5bd1c", "title": "P2P Video Chat Application" @@ -19287,8 +17680,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph" }, "id": "bd7198d8c242eddfaeb5bd13", "title": "Show National Contiguity with a Force Directed Graph" @@ -19299,8 +17691,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/show-the-local-weather", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/show-the-local-weather" }, "id": "bd7158d8c442eddfaeb5bd10", "title": "Show the Local Weather" @@ -19311,8 +17702,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/coding-interview-prep/take-home-projects/use-the-twitch-json-api", - "blockName": "Take Home Projects" + "slug": "/learn/coding-interview-prep/take-home-projects/use-the-twitch-json-api" }, "id": "bd7158d8c442eddfaeb5bd1f", "title": "Use the Twitch JSON API" @@ -19323,8 +17713,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/how-neural-networks-work/deep-learning-demystified", - "blockName": "How Neural Networks Work" + "slug": "/learn/machine-learning-with-python/how-neural-networks-work/deep-learning-demystified" }, "id": "5e9a0e9ef99a403d019610cc", "title": "Deep Learning Demystified" @@ -19335,8 +17724,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/how-neural-networks-work/how-convolutional-neural-networks-work", - "blockName": "How Neural Networks Work" + "slug": "/learn/machine-learning-with-python/how-neural-networks-work/how-convolutional-neural-networks-work" }, "id": "5e9a0e9ef99a403d019610cd", "title": "How Convolutional Neural Networks work" @@ -19347,8 +17735,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/how-neural-networks-work/how-deep-neural-networks-work", - "blockName": "How Neural Networks Work" + "slug": "/learn/machine-learning-with-python/how-neural-networks-work/how-deep-neural-networks-work" }, "id": "5e9a0e9ef99a403d019610ca", "title": "How Deep Neural Networks Work" @@ -19359,8 +17746,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/how-neural-networks-work/recurrent-neural-networks-rnn-and-long-short-term-memory-lstm", - "blockName": "How Neural Networks Work" + "slug": "/learn/machine-learning-with-python/how-neural-networks-work/recurrent-neural-networks-rnn-and-long-short-term-memory-lstm" }, "id": "5e9a0e9ef99a403d019610cb", "title": "Recurrent Neural Networks RNN and Long Short Term Memory LSTM" @@ -19371,8 +17757,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/book-recommendation-engine-using-knn", - "blockName": "Machine Learning with Python Projects" + "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/book-recommendation-engine-using-knn" }, "id": "5e46f8e3ac417301a38fb92f", "title": "Book Recommendation Engine using KNN" @@ -19383,8 +17768,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/cat-and-dog-image-classifier", - "blockName": "Machine Learning with Python Projects" + "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/cat-and-dog-image-classifier" }, "id": "5e46f8dcac417301a38fb92e", "title": "Cat and Dog Image Classifier" @@ -19395,8 +17779,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/linear-regression-health-costs-calculator", - "blockName": "Machine Learning with Python Projects" + "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/linear-regression-health-costs-calculator" }, "id": "5e46f8edac417301a38fb930", "title": "Linear Regression Health Costs Calculator" @@ -19407,8 +17790,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/neural-network-sms-text-classifier", - "blockName": "Machine Learning with Python Projects" + "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/neural-network-sms-text-classifier" }, "id": "5e46f8edac417301a38fb931", "title": "Neural Network SMS Text Classifier" @@ -19419,8 +17801,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/rock-paper-scissors", - "blockName": "Machine Learning with Python Projects" + "slug": "/learn/machine-learning-with-python/machine-learning-with-python-projects/rock-paper-scissors" }, "id": "5e46f8d6ac417301a38fb92d", "title": "Rock Paper Scissors" @@ -19431,8 +17812,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/conclusion", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/conclusion" }, "id": "5e8f2f13c4cdbe86b5c72da6", "title": "Conclusion" @@ -19443,8 +17823,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-evaluating-the-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-evaluating-the-model" }, "id": "5e8f2f13c4cdbe86b5c72d99", "title": "Convolutional Neural Networks: Evaluating the Model" @@ -19455,8 +17834,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-picking-a-pretrained-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-picking-a-pretrained-model" }, "id": "5e8f2f13c4cdbe86b5c72d9a", "title": "Convolutional Neural Networks: Picking a Pretrained Model" @@ -19467,8 +17845,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-the-convolutional-layer", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks-the-convolutional-layer" }, "id": "5e8f2f13c4cdbe86b5c72d97", "title": "Convolutional Neural Networks: The Convolutional Layer" @@ -19479,8 +17856,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/convolutional-neural-networks" }, "id": "5e8f2f13c4cdbe86b5c72d96", "title": "Convolutional Neural Networks" @@ -19491,8 +17867,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-building-the-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-building-the-model" }, "id": "5e8f2f13c4cdbe86b5c72d8e", "title": "Core Learning Algorithms: Building the Model" @@ -19503,8 +17878,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-classification", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-classification" }, "id": "5e8f2f13c4cdbe86b5c72d8d", "title": "Core Learning Algorithms: Classification" @@ -19515,8 +17889,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-clustering", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-clustering" }, "id": "5e8f2f13c4cdbe86b5c72d8f", "title": "Core Learning Algorithms: Clustering" @@ -19527,8 +17900,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-hidden-markov-models", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-hidden-markov-models" }, "id": "5e8f2f13c4cdbe86b5c72d90", "title": "Core Learning Algorithms: Hidden Markov Models" @@ -19539,8 +17911,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-the-training-process", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-the-training-process" }, "id": "5e8f2f13c4cdbe86b5c72d8c", "title": "Core Learning Algorithms: The Training Process" @@ -19551,8 +17922,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-training-and-testing-data", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-training-and-testing-data" }, "id": "5e8f2f13c4cdbe86b5c72d8b", "title": "Core Learning Algorithms: Training and Testing Data" @@ -19563,8 +17933,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-using-probabilities-to-make-predictions", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-using-probabilities-to-make-predictions" }, "id": "5e8f2f13c4cdbe86b5c72d91", "title": "Core Learning Algorithms: Using Probabilities to make Predictions" @@ -19575,8 +17944,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-working-with-data", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms-working-with-data" }, "id": "5e8f2f13c4cdbe86b5c72d8a", "title": "Core Learning Algorithms: Working with Data" @@ -19587,8 +17955,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/core-learning-algorithms" }, "id": "5e8f2f13c4cdbe86b5c72d89", "title": "Core Learning Algorithms" @@ -19599,8 +17966,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/creating-a-convolutional-neural-network", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/creating-a-convolutional-neural-network" }, "id": "5e8f2f13c4cdbe86b5c72d98", "title": "Creating a Convolutional Neural Network" @@ -19611,8 +17977,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/introduction-machine-learning-fundamentals", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/introduction-machine-learning-fundamentals" }, "id": "5e8f2f13c4cdbe86b5c72d87", "title": "Introduction: Machine Learning Fundamentals" @@ -19623,8 +17988,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/introduction-to-tensorflow", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/introduction-to-tensorflow" }, "id": "5e8f2f13c4cdbe86b5c72d88", "title": "Introduction to TensorFlow" @@ -19635,8 +17999,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-building-the-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-building-the-model" }, "id": "5e8f2f13c4cdbe86b5c72da1", "title": "Natural Language Processing With RNNs: Building the Model" @@ -19647,8 +18010,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-create-a-play-generator", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-create-a-play-generator" }, "id": "5e8f2f13c4cdbe86b5c72da0", "title": "Natural Language Processing With RNNs: Create a Play Generator" @@ -19659,8 +18021,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-making-predictions", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-making-predictions" }, "id": "5e8f2f13c4cdbe86b5c72d9f", "title": "Natural Language Processing With RNNs: Making Predictions" @@ -19671,8 +18032,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-part-2", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-part-2" }, "id": "5e8f2f13c4cdbe86b5c72d9c", "title": "Natural Language Processing With RNNs: Part 2" @@ -19683,8 +18043,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-recurring-neural-networks", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-recurring-neural-networks" }, "id": "5e8f2f13c4cdbe86b5c72d9d", "title": "Natural Language Processing With RNNs: Recurring Neural Networks" @@ -19695,8 +18054,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-sentiment-analysis", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-sentiment-analysis" }, "id": "5e8f2f13c4cdbe86b5c72d9e", "title": "Natural Language Processing With RNNs: Sentiment Analysis" @@ -19707,8 +18065,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-training-the-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns-training-the-model" }, "id": "5e8f2f13c4cdbe86b5c72da2", "title": "Natural Language Processing With RNNs: Training the Model" @@ -19719,8 +18076,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/natural-language-processing-with-rnns" }, "id": "5e8f2f13c4cdbe86b5c72d9b", "title": "Natural Language Processing With RNNs" @@ -19731,8 +18087,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-activation-functions", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-activation-functions" }, "id": "5e8f2f13c4cdbe86b5c72d93", "title": "Neural Networks: Activation Functions" @@ -19743,8 +18098,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-creating-a-model", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-creating-a-model" }, "id": "5e8f2f13c4cdbe86b5c72d95", "title": "Neural Networks: Creating a Model" @@ -19755,8 +18109,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-optimizers", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-optimizers" }, "id": "5e8f2f13c4cdbe86b5c72d94", "title": "Neural Networks: Optimizers" @@ -19767,8 +18120,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-with-tensorflow", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/neural-networks-with-tensorflow" }, "id": "5e8f2f13c4cdbe86b5c72d92", "title": "Neural Networks with TensorFlow" @@ -19779,8 +18131,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning-example", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning-example" }, "id": "5e8f2f13c4cdbe86b5c72da5", "title": "Reinforcement Learning With Q-Learning: Example" @@ -19791,8 +18142,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning-part-2", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning-part-2" }, "id": "5e8f2f13c4cdbe86b5c72da4", "title": "Reinforcement Learning With Q-Learning: Part 2" @@ -19803,8 +18153,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning", - "blockName": "TensorFlow" + "slug": "/learn/machine-learning-with-python/tensorflow/reinforcement-learning-with-q-learning" }, "id": "5e8f2f13c4cdbe86b5c72da3", "title": "Reinforcement Learning With Q-Learning" @@ -19815,8 +18164,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database", - "blockName": "Build A Celestial Bodies Database Project" + "slug": "/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database" }, "id": "5f1a4ef5d5d6b5ab580fc6ae", "title": "Build a Celestial Bodies Database" @@ -19827,8 +18175,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/build-a-number-guessing-game-project/build-a-number-guessing-game", - "blockName": "Build A Number Guessing Game Project" + "slug": "/learn/relational-database/build-a-number-guessing-game-project/build-a-number-guessing-game" }, "id": "602da04c22201c65d2a019f4", "title": "Build a Number Guessing Game" @@ -19839,8 +18186,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/build-a-periodic-table-database-project/build-a-periodic-table-database", - "blockName": "Build A Periodic Table Database Project" + "slug": "/learn/relational-database/build-a-periodic-table-database-project/build-a-periodic-table-database" }, "id": "602d9ff222201c65d2a019f2", "title": "Build a Periodic Table Database" @@ -19851,8 +18197,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/build-a-salon-appointment-scheduler-project/build-a-salon-appointment-scheduler", - "blockName": "Build A Salon Appointment Scheduler Project" + "slug": "/learn/relational-database/build-a-salon-appointment-scheduler-project/build-a-salon-appointment-scheduler" }, "id": "5f87ac112ae598023a42df1a", "title": "Build a Salon Appointment Scheduler" @@ -19863,8 +18208,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/build-a-world-cup-database-project/build-a-world-cup-database", - "blockName": "Build A World Cup Database Project" + "slug": "/learn/relational-database/build-a-world-cup-database-project/build-a-world-cup-database" }, "id": "5f9771307d4d22b9d2b75a94", "title": "Build a World Cup Database" @@ -19875,8 +18219,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-advanced-bash-by-building-a-kitty-ipsum-translator/build-a-kitty-ipsum-translator", - "blockName": "Learn Advanced Bash By Building A Kitty Ipsum Translator" + "slug": "/learn/relational-database/learn-advanced-bash-by-building-a-kitty-ipsum-translator/build-a-kitty-ipsum-translator" }, "id": "602da0de22201c65d2a019f6", "title": "Build a Kitty Ipsum Translator" @@ -19887,8 +18230,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop", - "blockName": "Learn Bash and Sql By Building A Bike Rental Shop" + "slug": "/learn/relational-database/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop" }, "id": "5f5b969a05380d2179fe6e18", "title": "Build a Bike Rental Shop" @@ -19899,8 +18241,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-bash-by-building-a-boilerplate/build-a-boilerplate", - "blockName": "Learn Bash By Building A Boilerplate" + "slug": "/learn/relational-database/learn-bash-by-building-a-boilerplate/build-a-boilerplate" }, "id": "5ea8adfab628f68d805bfc5e", "title": "Build a Boilerplate" @@ -19911,8 +18252,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-bash-scripting-by-building-five-programs/build-five-programs", - "blockName": "Learn Bash Scripting By Building Five Programs" + "slug": "/learn/relational-database/learn-bash-scripting-by-building-five-programs/build-five-programs" }, "id": "5f5904ac738bc2fa9efecf5a", "title": "Build Five Programs" @@ -19923,8 +18263,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-git-by-building-an-sql-reference-object/build-an-sql-reference-object", - "blockName": "Learn Git By Building An Sql Reference Object" + "slug": "/learn/relational-database/learn-git-by-building-an-sql-reference-object/build-an-sql-reference-object" }, "id": "5fa323cdaf6a73463d590659", "title": "Build an SQL Reference Object" @@ -19935,8 +18274,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-nano-by-building-a-castle/build-a-castle", - "blockName": "Learn Nano By Building A Castle" + "slug": "/learn/relational-database/learn-nano-by-building-a-castle/build-a-castle" }, "id": "5f32db63eb37f7e17323f459", "title": "Build a Castle" @@ -19947,8 +18285,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-relational-databases-by-building-a-mario-database/build-a-mario-database", - "blockName": "Learn Relational Databases By Building A Mario Database" + "slug": "/learn/relational-database/learn-relational-databases-by-building-a-mario-database/build-a-mario-database" }, "id": "5f2c289f164c29556da632fd", "title": "Build a Mario Database" @@ -19959,8 +18296,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-sql-by-building-a-student-database-part-1/build-a-student-database-part-1", - "blockName": "Learn Sql By Building A Student Database Part 1" + "slug": "/learn/relational-database/learn-sql-by-building-a-student-database-part-1/build-a-student-database-part-1" }, "id": "602da0c222201c65d2a019f5", "title": "Build a Student Database: Part 1" @@ -19971,8 +18307,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/relational-database/learn-sql-by-building-a-student-database-part-2/build-a-student-database-part-2", - "blockName": "Learn Sql By Building A Student Database Part 2" + "slug": "/learn/relational-database/learn-sql-by-building-a-student-database-part-2/build-a-student-database-part-2" }, "id": "618590adb0730ca724e37672", "title": "Build a Student Database: Part 2" @@ -19983,8 +18318,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage", - "blockName": "Build A Personal Portfolio Webpage Project" + "slug": "/learn/2022/responsive-web-design/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage" }, "id": "bd7158d8c242eddfaeb5bd13", "title": "Build a Personal Portfolio Webpage" @@ -19995,8 +18329,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/build-a-product-landing-page-project/build-a-product-landing-page", - "blockName": "Build A Product Landing Page Project" + "slug": "/learn/2022/responsive-web-design/build-a-product-landing-page-project/build-a-product-landing-page" }, "id": "587d78af367417b2b2512b04", "title": "Build a Product Landing Page" @@ -20007,8 +18340,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/build-a-survey-form-project/build-a-survey-form", - "blockName": "Build A Survey Form Project" + "slug": "/learn/2022/responsive-web-design/build-a-survey-form-project/build-a-survey-form" }, "id": "587d78af367417b2b2512b03", "title": "Build a Survey Form" @@ -20019,8 +18351,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/build-a-technical-documentation-page-project/build-a-technical-documentation-page", - "blockName": "Build A Technical Documentation Page Project" + "slug": "/learn/2022/responsive-web-design/build-a-technical-documentation-page-project/build-a-technical-documentation-page" }, "id": "587d78b0367417b2b2512b05", "title": "Build a Technical Documentation Page" @@ -20031,8 +18362,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/build-a-tribute-page-project/build-a-tribute-page", - "blockName": "Build A Tribute Page Project" + "slug": "/learn/2022/responsive-web-design/build-a-tribute-page-project/build-a-tribute-page" }, "id": "bd7158d8c442eddfaeb5bd18", "title": "Build a Tribute Page" @@ -20043,8 +18373,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-2", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-2" }, "id": "613297a923965e0703b64796", "title": "Step 2" @@ -20055,8 +18384,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-3", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-3" }, "id": "61329b210dac0b08047fd6ab", "title": "Step 3" @@ -20067,8 +18395,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-4", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-4" }, "id": "61329d52e5010e08d9b9d66b", "title": "Step 4" @@ -20079,8 +18406,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-5", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-5" }, "id": "6133acc353338c0bba9cb553", "title": "Step 5" @@ -20091,8 +18417,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-6", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-6" }, "id": "6133d11ef548f51f876149e3", "title": "Step 6" @@ -20103,8 +18428,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-7", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-7" }, "id": "613e2546d0594208229ada50", "title": "Step 7" @@ -20115,8 +18439,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-8", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-8" }, "id": "613e275749ebd008e74bb62e", "title": "Step 8" @@ -20127,8 +18450,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-9", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-9" }, "id": "6140827cff96e906bd38fc2b", "title": "Step 9" @@ -20139,8 +18461,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-10", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-10" }, "id": "6140883f74224508174794c0", "title": "Step 10" @@ -20151,8 +18472,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-11", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-11" }, "id": "61408e4ae3e35d08feb260eb", "title": "Step 11" @@ -20163,8 +18483,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-12", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-12" }, "id": "61408f155e798909b6908712", "title": "Step 12" @@ -20175,8 +18494,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-13", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-13" }, "id": "614090d5a22b6f0a5a6b464c", "title": "Step 13" @@ -20187,8 +18505,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-14", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-14" }, "id": "6141fabd6f75610664e908fd", "title": "Step 14" @@ -20199,8 +18516,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-15", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-15" }, "id": "6141fed65b61320743da5894", "title": "Step 15" @@ -20211,8 +18527,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-16", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-16" }, "id": "614202874ca576084fca625f", "title": "Step 16" @@ -20223,8 +18538,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-17", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-17" }, "id": "614206033d366c090ca7dd42", "title": "Step 17" @@ -20235,8 +18549,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-18", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-18" }, "id": "61435e3c0679a306c20f1acc", "title": "Step 18" @@ -20247,8 +18560,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-19", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-19" }, "id": "6143610161323a081b249c19", "title": "Step 19" @@ -20259,8 +18571,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-20", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-20" }, "id": "6143639d5eddc7094161648c", "title": "Step 20" @@ -20271,8 +18582,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-21", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-21" }, "id": "6143908b6aafb00a659ca189", "title": "Step 21" @@ -20283,8 +18593,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-22", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-22" }, "id": "6143920c8eafb00b735746ce", "title": "Step 22" @@ -20295,8 +18604,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-23", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-23" }, "id": "6143931a113bb80c45546287", "title": "Step 23" @@ -20307,8 +18615,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-24", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-24" }, "id": "614394fb41985e0d2012a93e", "title": "Step 24" @@ -20319,8 +18626,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-25", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-25" }, "id": "6143956ed76ed60e012faa51", "title": "Step 25" @@ -20331,8 +18637,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-26", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-26" }, "id": "614396f7ae83f20ea6f9f4b3", "title": "Step 26" @@ -20343,8 +18648,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-27", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-27" }, "id": "6143cb26f7edff2dc28f7da5", "title": "Step 27" @@ -20355,8 +18659,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-28", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-28" }, "id": "6144e818fd5ea704fe56081d", "title": "Step 28" @@ -20367,8 +18670,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-29", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-29" }, "id": "6144f8dc6849e405dd8bb829", "title": "Step 29" @@ -20379,8 +18681,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-30", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-30" }, "id": "6145e6eeaa66c605eb087fe9", "title": "Step 30" @@ -20391,8 +18692,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-32", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-32" }, "id": "6145e8b5080a5f06bb0223d0", "title": "Step 32" @@ -20403,8 +18703,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-33", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-33" }, "id": "6145eb5f08a38a0786c7a80c", "title": "Step 33" @@ -20415,8 +18714,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-34", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-34" }, "id": "6145ed1f22caab087630aaad", "title": "Step 34" @@ -20427,8 +18725,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-35", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-35" }, "id": "6145ee65e2e1530938cb594d", "title": "Step 35" @@ -20439,8 +18736,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-36", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-36" }, "id": "6145f02240ff8f09f7ec913c", "title": "Step 36" @@ -20451,8 +18747,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-37", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-37" }, "id": "6145f14f019a4b0adb94b051", "title": "Step 37" @@ -20463,8 +18758,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-38", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-38" }, "id": "6145f3a5cd9be60b9459cdd6", "title": "Step 38" @@ -20475,8 +18769,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-39", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-39" }, "id": "6145f47393fbe70c4d885f9c", "title": "Step 39" @@ -20487,8 +18780,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-40", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-40" }, "id": "6145f59029474c0d3dc1c8b8", "title": "Step 40" @@ -20499,8 +18791,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-41", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-41" }, "id": "6145f685797bd30df9784e8c", "title": "Step 41" @@ -20511,8 +18802,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-42", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-42" }, "id": "6145f829ac6a920ebf5797d7", "title": "Step 42" @@ -20523,8 +18813,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-43", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-43" }, "id": "6145f8f8bcd4370f6509078e", "title": "Step 43" @@ -20535,8 +18824,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-44", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-44" }, "id": "6145fb5018cb5b100cb2a88c", "title": "Step 44" @@ -20547,8 +18835,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-45", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-45" }, "id": "6145fc3707fc3310c277f5c8", "title": "Step 45" @@ -20559,8 +18846,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-46", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-46" }, "id": "614796cb8086be482d60e0ac", "title": "Step 46" @@ -20571,8 +18857,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-47", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-47" }, "id": "6147a14ef5668b5881ef2297", "title": "Step 47" @@ -20583,8 +18868,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-48", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-48" }, "id": "614878f7a412310647873015", "title": "Step 48" @@ -20595,8 +18879,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-49", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-49" }, "id": "61487b77d4a37707073a64e5", "title": "Step 49" @@ -20607,8 +18890,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-50", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-50" }, "id": "61487da611a65307e78d2c20", "title": "Step 50" @@ -20619,8 +18901,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-51", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-51" }, "id": "61487f703571b60899055cf9", "title": "Step 51" @@ -20631,8 +18912,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-52", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-52" }, "id": "614880dc16070e093e29bc56", "title": "Step 52" @@ -20643,8 +18923,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-53", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-53" }, "id": "614883b6fa720e09fb167de9", "title": "Step 53" @@ -20655,8 +18934,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-54", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-54" }, "id": "614884c1f5d6f30ab3d78cde", "title": "Step 54" @@ -20667,8 +18945,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-55", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-55" }, "id": "61488ecfd05e290b5712e6da", "title": "Step 55" @@ -20679,8 +18956,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-56", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-56" }, "id": "6148d99cdc7acd0c519862cb", "title": "Step 56" @@ -20691,8 +18967,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-57", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-57" }, "id": "6148da157cc0bd0d06df5c0a", "title": "Step 57" @@ -20703,8 +18978,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-58", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-58" }, "id": "6148dc095264000dce348bf5", "title": "Step 58" @@ -20715,8 +18989,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-59", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-59" }, "id": "6148dcaaf2e8750e6cb4501a", "title": "Step 59" @@ -20727,8 +19000,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-60", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-60" }, "id": "6148dd31d210990f0fb140f8", "title": "Step 60" @@ -20739,8 +19011,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-61", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-61" }, "id": "6148defa9c01520fb9d178a0", "title": "Step 61" @@ -20751,8 +19022,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-62", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-62" }, "id": "6148dfab9b54c110577de165", "title": "Step 62" @@ -20763,8 +19033,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-63", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-63" }, "id": "6148e0bcc13efd10f7d7a6a9", "title": "Step 63" @@ -20775,8 +19044,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-64", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-64" }, "id": "6148e161ecec9511941f8833", "title": "Step 64" @@ -20787,8 +19055,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-65", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-65" }, "id": "6148e28706b34912340fd042", "title": "Step 65" @@ -20799,8 +19066,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-66", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-66" }, "id": "6148e335c1edd512d00e4691", "title": "Step 66" @@ -20811,8 +19077,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-67", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-67" }, "id": "6148e41c728f65138addf9cc", "title": "Step 67" @@ -20823,8 +19088,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-68", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-68" }, "id": "6148e5aeb102e3142de026a2", "title": "Step 68" @@ -20835,8 +19099,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-1", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-1" }, "id": "614ccc21ea91ef1736b9b578", "title": "Step 1" @@ -20847,8 +19110,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-31", - "blockName": "Learn Accessibility by Building a Quiz" + "slug": "/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-31" }, "id": "6351e7a8684bf5377c4ee7f7", "title": "Step 31" @@ -20859,8 +19121,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-1", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-1" }, "id": "5f33071498eb2472b87ddee4", "title": "Step 1" @@ -20871,8 +19132,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-2", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-2" }, "id": "5f3313e74582ad9d063e3a38", "title": "Step 2" @@ -20883,8 +19143,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-3", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-3" }, "id": "5f331e55dfab7a896e53c3a1", "title": "Step 3" @@ -20895,8 +19154,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-4", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-4" }, "id": "5f3326b143638ee1a09ff1e3", "title": "Step 4" @@ -20907,8 +19165,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-5", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-5" }, "id": "5f33294a6af5e9188dbdb8f3", "title": "Step 5" @@ -20919,8 +19176,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-6", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-6" }, "id": "5f332a88dc25a0fd25c7687a", "title": "Step 6" @@ -20931,8 +19187,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-7", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-7" }, "id": "5f332b23c2045fb843337579", "title": "Step 7" @@ -20943,8 +19198,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-11", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-11" }, "id": "5f344f9c805cd193c33d829c", "title": "Step 11" @@ -20955,8 +19209,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-10", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-10" }, "id": "5f344fad8bf01691e71a30eb", "title": "Step 10" @@ -20967,8 +19220,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-9", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-9" }, "id": "5f344fbc22624a2976425065", "title": "Step 9" @@ -20979,8 +19231,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-8", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-8" }, "id": "5f344fc1520b6719f2e35605", "title": "Step 8" @@ -20991,8 +19242,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-13", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-13" }, "id": "5f3477ae34c1239cafe128be", "title": "Step 13" @@ -21003,8 +19253,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-15", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-15" }, "id": "5f3477ae8466a9a3d2cc953c", "title": "Step 15" @@ -21015,8 +19264,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-12", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-12" }, "id": "5f3477ae9675db8bb7655b30", "title": "Step 12" @@ -21027,8 +19275,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-14", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-14" }, "id": "5f3477aefa51bfc29327200b", "title": "Step 14" @@ -21039,8 +19286,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-16", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-16" }, "id": "5f3477cb2e27333b1ab2b955", "title": "Step 16" @@ -21051,8 +19297,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-18", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-18" }, "id": "5f3477cb303c5cb61b43aa9b", "title": "Step 18" @@ -21063,8 +19308,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-17", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-17" }, "id": "5f3477cbcb6ba47918c1da92", "title": "Step 17" @@ -21075,8 +19319,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-19", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-19" }, "id": "5f34a1fd611d003edeafd681", "title": "Step 19" @@ -21087,8 +19330,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-24", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-24" }, "id": "5f356ed60785e1f3e9850b6e", "title": "Step 24" @@ -21099,8 +19341,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-22", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-22" }, "id": "5f356ed60a5decd94ab66986", "title": "Step 22" @@ -21111,8 +19352,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-26", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-26" }, "id": "5f356ed6199b0cdef1d2be8f", "title": "Step 26" @@ -21123,8 +19363,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-21", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-21" }, "id": "5f356ed63c7807a4f1e6d054", "title": "Step 21" @@ -21135,8 +19374,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-23", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-23" }, "id": "5f356ed63e0fa262326eef05", "title": "Step 23" @@ -21147,8 +19385,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-25", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-25" }, "id": "5f356ed656a336993abd9f7c", "title": "Step 25" @@ -21159,8 +19396,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-27", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-27" }, "id": "5f356ed69db0a491745e2bb6", "title": "Step 27" @@ -21171,8 +19407,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-20", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-20" }, "id": "5f356ed6cf6eab5f15f5cfe6", "title": "Step 20" @@ -21183,8 +19418,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-29", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-29" }, "id": "5f35e5c4321f818cdc4bed30", "title": "Step 29" @@ -21195,8 +19429,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-28", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-28" }, "id": "5f35e5c44359872a137bd98f", "title": "Step 28" @@ -21207,8 +19440,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-38", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-38" }, "id": "5f3c866d0fc037f7311b4ac8", "title": "Step 38" @@ -21219,8 +19451,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-32", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-32" }, "id": "5f3c866d28d7ad0de6470505", "title": "Step 32" @@ -21231,8 +19462,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-31", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-31" }, "id": "5f3c866d5414453fc2d7b480", "title": "Step 31" @@ -21243,8 +19473,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-30", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-30" }, "id": "5f3c866daec9a49519871816", "title": "Step 30" @@ -21255,8 +19484,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-37", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-37" }, "id": "5f3c866dbf362f99b9a0c6d0", "title": "Step 37" @@ -21267,8 +19495,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-39", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-39" }, "id": "5f3c866dd0d0275f01d4d847", "title": "Step 39" @@ -21279,8 +19506,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-36", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-36" }, "id": "5f3c866de7a5b784048f94b1", "title": "Step 36" @@ -21291,8 +19517,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-41", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-41" }, "id": "5f3cade94c6576e7f7b7953f", "title": "Step 41" @@ -21303,8 +19528,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-42", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-42" }, "id": "5f3cade9993019e26313fa8e", "title": "Step 42" @@ -21315,8 +19539,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-46", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-46" }, "id": "5f3cade99dda4e6071a85dfd", "title": "Step 46" @@ -21327,8 +19550,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-40", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-40" }, "id": "5f3cade9fa77275d9f4efe62", "title": "Step 40" @@ -21339,8 +19561,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-66", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-66" }, "id": "5f3ef6e01f288a026d709587", "title": "Step 66" @@ -21351,8 +19572,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-56", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-56" }, "id": "5f3ef6e03d719d5ac4738993", "title": "Step 56" @@ -21363,8 +19583,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-55", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-55" }, "id": "5f3ef6e04559b939080db057", "title": "Step 55" @@ -21375,8 +19594,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-54", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-54" }, "id": "5f3ef6e050279c7a4a7101d3", "title": "Step 54" @@ -21387,8 +19605,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-57", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-57" }, "id": "5f3ef6e05473f91f948724ab", "title": "Step 57" @@ -21399,8 +19616,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-58", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-58" }, "id": "5f3ef6e056bdde6ae6892ba2", "title": "Step 58" @@ -21411,8 +19627,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-60", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-60" }, "id": "5f3ef6e06d34faac0447fc44", "title": "Step 60" @@ -21423,8 +19638,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-63", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-63" }, "id": "5f3ef6e07276f782bb46b93d", "title": "Step 63" @@ -21435,8 +19649,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-48", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-48" }, "id": "5f3ef6e0819d4f23ca7285e6", "title": "Step 48" @@ -21447,8 +19660,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-61", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-61" }, "id": "5f3ef6e087d56ed3ffdc36be", "title": "Step 61" @@ -21459,8 +19671,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-64", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-64" }, "id": "5f3ef6e0a81099d9a697b550", "title": "Step 64" @@ -21471,8 +19682,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-65", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-65" }, "id": "5f3ef6e0b431cc215bb16f55", "title": "Step 65" @@ -21483,8 +19693,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-47", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-47" }, "id": "5f3ef6e0e0c3feaebcf647ad", "title": "Step 47" @@ -21495,8 +19704,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-59", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-59" }, "id": "5f3ef6e0e9629bad967cd71e", "title": "Step 59" @@ -21507,8 +19715,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-53", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-53" }, "id": "5f3ef6e0eaa7da26e3d34d78", "title": "Step 53" @@ -21519,8 +19726,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-62", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-62" }, "id": "5f3ef6e0f8c230bdd2349716", "title": "Step 62" @@ -21531,8 +19737,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-67", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-67" }, "id": "5f3f26fa39591db45e5cd7a0", "title": "Step 67" @@ -21543,8 +19748,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-68", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-68" }, "id": "5f459225127805351a6ad057", "title": "Step 68" @@ -21555,8 +19759,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-69", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-69" }, "id": "5f459a7ceb8b5c446656d88b", "title": "Step 69" @@ -21567,8 +19770,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-70", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-70" }, "id": "5f459cf202c2a3472fae6a9f", "title": "Step 70" @@ -21579,8 +19781,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-71", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-71" }, "id": "5f459fd48bdc98491ca6d1a3", "title": "Step 71" @@ -21591,8 +19792,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-72", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-72" }, "id": "5f45a05977e2fa49d9119437", "title": "Step 72" @@ -21603,8 +19803,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-73", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-73" }, "id": "5f45a276c093334f0f6e9df4", "title": "Step 73" @@ -21615,8 +19814,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-74", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-74" }, "id": "5f45a5a7c49a8251f0bdb527", "title": "Step 74" @@ -21627,8 +19825,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-78", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-78" }, "id": "5f45a66d4a2b0453301e5a26", "title": "Step 78" @@ -21639,8 +19836,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-79", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-79" }, "id": "5f45b0731d39e15d54df4dfc", "title": "Step 79" @@ -21651,8 +19847,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-80", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-80" }, "id": "5f45b25e7ec2405f166b9de1", "title": "Step 80" @@ -21663,8 +19858,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-81", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-81" }, "id": "5f45b3c93c027860d9298dbd", "title": "Step 81" @@ -21675,8 +19869,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-82", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-82" }, "id": "5f45b45d099f3e621fbbb256", "title": "Step 82" @@ -21687,8 +19880,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-83", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-83" }, "id": "5f45b4c81cea7763550e40df", "title": "Step 83" @@ -21699,8 +19891,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-84", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-84" }, "id": "5f45b715301bbf667badc04a", "title": "Step 84" @@ -21711,8 +19902,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-85", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-85" }, "id": "5f46e270702a8456a664f0df", "title": "Step 85" @@ -21723,8 +19913,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-86", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-86" }, "id": "5f46e36e745ead58487aabf2", "title": "Step 86" @@ -21735,8 +19924,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-87", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-87" }, "id": "5f46e7a4750dd05b5a673920", "title": "Step 87" @@ -21747,8 +19935,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-88", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-88" }, "id": "5f46e8284aae155c83015dee", "title": "Step 88" @@ -21759,8 +19946,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-77", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-77" }, "id": "5f46ede1ff8fec5ba656b44c", "title": "Step 77" @@ -21771,8 +19957,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-75", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-75" }, "id": "5f46fc57528aa1c4b5ea7c2e", "title": "Step 75" @@ -21783,8 +19968,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-76", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-76" }, "id": "5f4701b942c824109626c3d8", "title": "Step 76" @@ -21795,8 +19979,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-89", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-89" }, "id": "5f475bb508746c16c9431d42", "title": "Step 89" @@ -21807,8 +19990,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-90", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-90" }, "id": "5f475e1c7f71a61d913836c6", "title": "Step 90" @@ -21819,8 +20001,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-45", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-45" }, "id": "5f47633757ae3469f2d33d2e", "title": "Step 45" @@ -21831,8 +20012,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-91", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-91" }, "id": "5f47fe7e31980053a8d4403b", "title": "Step 91" @@ -21843,8 +20023,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-49", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-49" }, "id": "5f716ad029ee4053c7027a7a", "title": "Step 49" @@ -21855,8 +20034,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-52", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-52" }, "id": "5f716bee5838c354c728a7c5", "title": "Step 52" @@ -21867,8 +20045,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-43", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-43" }, "id": "5f7691dafd882520797cd2f0", "title": "Step 43" @@ -21879,8 +20056,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-44", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-44" }, "id": "5f7692f7c5b3ce22a57788b6", "title": "Step 44" @@ -21891,8 +20067,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-33", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-33" }, "id": "5f769541be494f25449b292f", "title": "Step 33" @@ -21903,8 +20078,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-34", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-34" }, "id": "5f76967fad478126d6552b0d", "title": "Step 34" @@ -21915,8 +20089,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-35", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-35" }, "id": "5f769702e6e33127d14aa120", "title": "Step 35" @@ -21927,8 +20100,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-50", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-50" }, "id": "5f7b87422a560036fd03ccff", "title": "Step 50" @@ -21939,8 +20111,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-51", - "blockName": "Learn Basic CSS by Building a Cafe Menu" + "slug": "/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-51" }, "id": "5f7b88d37b1f98386f04edc0", "title": "Step 51" @@ -21951,8 +20122,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-1", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-1" }, "id": "6140c7e645d8e905819f1dd4", "title": "Step 1" @@ -21963,8 +20133,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-2", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-2" }, "id": "6140c9d35015ae0ba0c250e8", "title": "Step 2" @@ -21975,8 +20144,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-3", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-3" }, "id": "6140cbeec34e970dfe75e710", "title": "Step 3" @@ -21987,8 +20155,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-4", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-4" }, "id": "6140cd32d018ed0f600eefce", "title": "Step 4" @@ -21999,8 +20166,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-6", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-6" }, "id": "6140cdebd39d6a101e747529", "title": "Step 6" @@ -22011,8 +20177,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-7", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-7" }, "id": "6140cfc08ca9c5128c3e6478", "title": "Step 7" @@ -22023,8 +20188,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-8", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-8" }, "id": "6140d0069049f5139d78da40", "title": "Step 8" @@ -22035,8 +20199,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-9", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-9" }, "id": "6140d10d50636e14695013b2", "title": "Step 9" @@ -22047,8 +20210,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-10", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-10" }, "id": "6140d1a351e88f159ed54fca", "title": "Step 10" @@ -22059,8 +20221,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-11", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-11" }, "id": "6140d263016325162fd076fe", "title": "Step 11" @@ -22071,8 +20232,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-12", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-12" }, "id": "6140d2b687a2cd17bac5730c", "title": "Step 12" @@ -22083,8 +20243,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-13", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-13" }, "id": "6140d36b8b747718b50d4b7a", "title": "Step 13" @@ -22095,8 +20254,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-14", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-14" }, "id": "6140d3dc359b371b1a21d783", "title": "Step 14" @@ -22107,8 +20265,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-15", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-15" }, "id": "6140d4bc9db3c81c51a09ab7", "title": "Step 15" @@ -22119,8 +20276,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-16", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-16" }, "id": "6140d94b5fab7f1d73c9bedb", "title": "Step 16" @@ -22131,8 +20287,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-17", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-17" }, "id": "6140dc5e13d0c81e7496f182", "title": "Step 17" @@ -22143,8 +20298,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-18", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-18" }, "id": "6140dd77e0bc5a1f70bd7466", "title": "Step 18" @@ -22155,8 +20309,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-19", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-19" }, "id": "6140de31b1f5b420410728ff", "title": "Step 19" @@ -22167,8 +20320,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-20", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-20" }, "id": "6140df547f09402144e40b92", "title": "Step 20" @@ -22179,8 +20331,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-21", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-21" }, "id": "6140e0d875ec16262f26432b", "title": "Step 21" @@ -22191,8 +20342,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-22", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-22" }, "id": "6140f4b5c1555a2960de1e5f", "title": "Step 22" @@ -22203,8 +20353,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-23", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-23" }, "id": "614100d7d335bb2a5ff74f1f", "title": "Step 23" @@ -22215,8 +20364,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-24", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-24" }, "id": "61410126fa3a6d2b3cda502e", "title": "Step 24" @@ -22227,8 +20375,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-25", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-25" }, "id": "6141019eadec6d2c6c6f007b", "title": "Step 25" @@ -22239,8 +20386,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-26", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-26" }, "id": "6141026ec9882f2d39dcf2b8", "title": "Step 26" @@ -22251,8 +20397,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-27", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-27" }, "id": "6169ab1aaeb4cd1174def700", "title": "Step 27" @@ -22263,8 +20408,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-28", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-28" }, "id": "6169b1357fcb701bb5efc619", "title": "Step 28" @@ -22275,8 +20419,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-29", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-29" }, "id": "6169b284950e171d8d0bb16a", "title": "Step 29" @@ -22287,8 +20430,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-5", - "blockName": "Learn CSS Animation by Building a Ferris Wheel" + "slug": "/learn/2022/responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-5" }, "id": "617ace7d831f9c16a569b38a", "title": "Step 5" @@ -22299,8 +20441,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-1", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-1" }, "id": "61695197ac34f0407e339882", "title": "Step 1" @@ -22311,8 +20452,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-2", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-2" }, "id": "61695ab9f6ffe951c16d03dd", "title": "Step 2" @@ -22323,8 +20463,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-3", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-3" }, "id": "61695c4aad56f95497c19583", "title": "Step 3" @@ -22335,8 +20474,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-4", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-4" }, "id": "61695d1fbc003856628bf561", "title": "Step 4" @@ -22347,8 +20485,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-5", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-5" }, "id": "616965351e74d4689eb6de30", "title": "Step 5" @@ -22359,8 +20496,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-6", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-6" }, "id": "616968c2c94c8071b349c146", "title": "Step 6" @@ -22371,8 +20507,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-7", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-7" }, "id": "61696ef7ac756c829f9e4048", "title": "Step 7" @@ -22383,8 +20518,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-8", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-8" }, "id": "616971b3cd990186b66c99a1", "title": "Step 8" @@ -22395,8 +20529,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-9", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-9" }, "id": "616d3a67ccf800ad94ec89ae", "title": "Step 9" @@ -22407,8 +20540,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-10", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-10" }, "id": "616d47bc9eedc4bc7f621bec", "title": "Step 10" @@ -22419,8 +20551,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-11", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-11" }, "id": "616d4a84b756d9c4b8255093", "title": "Step 11" @@ -22431,8 +20562,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-12", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-12" }, "id": "616d50b93ba424d6282c99cf", "title": "Step 12" @@ -22443,8 +20573,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-13", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-13" }, "id": "616d525007b8c5d8b3308b1c", "title": "Step 13" @@ -22455,8 +20584,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-14", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-14" }, "id": "616d55bd160a95e22453a081", "title": "Step 14" @@ -22467,8 +20595,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-15", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-15" }, "id": "616d595270d902f0e7086e18", "title": "Step 15" @@ -22479,8 +20606,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-16", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-16" }, "id": "61764c602bee6974e7790f35", "title": "Step 16" @@ -22491,8 +20617,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-17", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-17" }, "id": "61764f23ea21477b76f3b80f", "title": "Step 17" @@ -22503,8 +20628,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-18", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-18" }, "id": "61764f7e5240eb7ccc7f6a0a", "title": "Step 18" @@ -22515,8 +20639,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-19", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-19" }, "id": "61764fdda535587e1fefb3aa", "title": "Step 19" @@ -22527,8 +20650,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-20", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-20" }, "id": "6176519636a76b810ab1219a", "title": "Step 20" @@ -22539,8 +20661,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-21", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-21" }, "id": "617b65579ce424bf5f02ca73", "title": "Step 21" @@ -22551,8 +20672,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-22", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-22" }, "id": "617b8b38f32bf2080a140675", "title": "Step 22" @@ -22563,8 +20683,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-23", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-23" }, "id": "617b8e0d93a8d10d9a90e720", "title": "Step 23" @@ -22575,8 +20694,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-24", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-24" }, "id": "617b92b9de349513466f6156", "title": "Step 24" @@ -22587,8 +20705,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-25", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-25" }, "id": "617b954d9f4f6217a749380e", "title": "Step 25" @@ -22599,8 +20716,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-26", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-26" }, "id": "617b97abd9f3f61d1590b815", "title": "Step 26" @@ -22611,8 +20727,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-27", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-27" }, "id": "617b9ad735109e217284e095", "title": "Step 27" @@ -22623,8 +20738,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-28", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-28" }, "id": "617bb5624a75e86463b7e638", "title": "Step 28" @@ -22635,8 +20749,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-29", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-29" }, "id": "617bb77353188166af43f3ac", "title": "Step 29" @@ -22647,8 +20760,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-30", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-30" }, "id": "617bb9fdef27bc6aa0470ac2", "title": "Step 30" @@ -22659,8 +20771,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-31", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-31" }, "id": "617bbb6b97a83f6d1f7d6e38", "title": "Step 31" @@ -22671,8 +20782,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-32", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-32" }, "id": "617bc3386dc7d07d6469bf20", "title": "Step 32" @@ -22683,8 +20793,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-33", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-33" }, "id": "617bc4824e233180553a8069", "title": "Step 33" @@ -22695,8 +20804,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-34", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-34" }, "id": "617bd6ec666b1da2587e4e37", "title": "Step 34" @@ -22707,8 +20815,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-35", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-35" }, "id": "618a00ed1ca871a2b3aca0cb", "title": "Step 35" @@ -22719,8 +20826,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-36", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-36" }, "id": "618a0927005553b74bfa05ae", "title": "Step 36" @@ -22731,8 +20837,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-37", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-37" }, "id": "618a0b2befb143baefab632b", "title": "Step 37" @@ -22743,8 +20848,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-38", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-38" }, "id": "618a1275e873dcc803c2d1aa", "title": "Step 38" @@ -22755,8 +20859,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-39", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-39" }, "id": "618a132676346ac9f7fd59dd", "title": "Step 39" @@ -22767,8 +20870,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-40", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-40" }, "id": "618a16873520a8d088ffdf44", "title": "Step 40" @@ -22779,8 +20881,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-41", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-41" }, "id": "618a16d21bd3dad1bb3aa8ef", "title": "Step 41" @@ -22791,8 +20892,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-42", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-42" }, "id": "619b72a0db211f1c29afb906", "title": "Step 42" @@ -22803,8 +20903,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-43", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-43" }, "id": "619b7396e57b771f903be90d", "title": "Step 43" @@ -22815,8 +20914,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-44", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-44" }, "id": "619b7424f43ec9215e538afe", "title": "Step 44" @@ -22827,8 +20925,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-45", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-45" }, "id": "619b74fa777a2b2473c94f82", "title": "Step 45" @@ -22839,8 +20936,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-46", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-46" }, "id": "619b761916dac02643940022", "title": "Step 46" @@ -22851,8 +20947,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-47", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-47" }, "id": "619b7c3c83de403126b69c1e", "title": "Step 47" @@ -22863,8 +20958,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-48", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-48" }, "id": "619b7fd56aa2253778bcf5f7", "title": "Step 48" @@ -22875,8 +20969,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-49", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-49" }, "id": "61a489b8579e87364b2d2cdb", "title": "Step 49" @@ -22887,8 +20980,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-50", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-50" }, "id": "61a493ead935c148d2b76312", "title": "Step 50" @@ -22899,8 +20991,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-53", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-53" }, "id": "61a498399534644f59cff05e", "title": "Step 53" @@ -22911,8 +21002,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-54", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-54" }, "id": "61a49d15bdbb5e57cc6fd280", "title": "Step 54" @@ -22923,8 +21013,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-55", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-55" }, "id": "61a4a53c4459446dc134a1c6", "title": "Step 55" @@ -22935,8 +21024,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-56", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-56" }, "id": "61a4a6e908bc34725b4c25ac", "title": "Step 56" @@ -22947,8 +21035,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-57", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-57" }, "id": "61a4a7877da33a73a1c1723e", "title": "Step 57" @@ -22959,8 +21046,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-58", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-58" }, "id": "61a4ac092eb21e7dbfe61c33", "title": "Step 58" @@ -22971,8 +21057,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-59", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-59" }, "id": "61a4acbb5587197f68544d00", "title": "Step 59" @@ -22983,8 +21068,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-60", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-60" }, "id": "61a4ada3aabeec822b2975d9", "title": "Step 60" @@ -22995,8 +21079,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-61", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-61" }, "id": "61a4ae5f29eb5584187201c3", "title": "Step 61" @@ -23007,8 +21090,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-63", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-63" }, "id": "61a5be9833e7dc178de2af10", "title": "Step 63" @@ -23019,8 +21101,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-64", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-64" }, "id": "61a5bfe091060f1d6a629dd0", "title": "Step 64" @@ -23031,8 +21112,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-65", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-65" }, "id": "61a5c906ab73313316e342f0", "title": "Step 65" @@ -23043,8 +21123,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-66", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-66" }, "id": "61a5ca57f50ded36d33eef96", "title": "Step 66" @@ -23055,8 +21134,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-67", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-67" }, "id": "61a5d594b887335228ee6533", "title": "Step 67" @@ -23067,8 +21145,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-68", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-68" }, "id": "61a5d6701ee08953ca375243", "title": "Step 68" @@ -23079,8 +21156,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-69", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-69" }, "id": "61a5d79c858bef560e26c685", "title": "Step 69" @@ -23091,8 +21167,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-70", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-70" }, "id": "61a5d7ef1cfcf45764df07a2", "title": "Step 70" @@ -23103,8 +21178,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-71", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-71" }, "id": "61adc60b69cd4b87739d2174", "title": "Step 71" @@ -23115,8 +21189,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-79", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-79" }, "id": "61adc91467b5d59328b9f781", "title": "Step 79" @@ -23127,8 +21200,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-80", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-80" }, "id": "61add79e739a5faee9d96080", "title": "Step 80" @@ -23139,8 +21211,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-81", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-81" }, "id": "61add929e41980b1edbdba7e", "title": "Step 81" @@ -23151,8 +21222,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-82", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-82" }, "id": "61addaf7e83988b59a7d18ff", "title": "Step 82" @@ -23163,8 +21233,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-83", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-83" }, "id": "61ade49b2dad60c076cbd32d", "title": "Step 83" @@ -23175,8 +21244,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-72", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-72" }, "id": "61b092eb9e7fc020b43b1bb2", "title": "Step 72" @@ -23187,8 +21255,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-73", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-73" }, "id": "61b093179e7fc020b43b1bb3", "title": "Step 73" @@ -23199,8 +21266,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-74", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-74" }, "id": "61b093219e7fc020b43b1bb4", "title": "Step 74" @@ -23211,8 +21277,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-75", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-75" }, "id": "61b093329e7fc020b43b1bb5", "title": "Step 75" @@ -23223,8 +21288,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-76", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-76" }, "id": "61b093429e7fc020b43b1bb6", "title": "Step 76" @@ -23235,8 +21299,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-77", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-77" }, "id": "61b0934c9e7fc020b43b1bb7", "title": "Step 77" @@ -23247,8 +21310,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-78", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-78" }, "id": "61b0936d9e7fc020b43b1bb8", "title": "Step 78" @@ -23259,8 +21321,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-51", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-51" }, "id": "61b095989e7fc020b43b1bb9", "title": "Step 51" @@ -23271,8 +21332,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-52", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-52" }, "id": "61b095a79e7fc020b43b1bba", "title": "Step 52" @@ -23283,8 +21343,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-62", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-62" }, "id": "61b095c79e7fc020b43b1bbb", "title": "Step 62" @@ -23295,8 +21354,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-84", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-84" }, "id": "61b09f739aa6572d2064f9b8", "title": "Step 84" @@ -23307,8 +21365,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-85", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-85" }, "id": "61b0a1b2af494934b7ec1a72", "title": "Step 85" @@ -23319,8 +21376,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-86", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-86" }, "id": "61b0a44a6b865738ba49b9fb", "title": "Step 86" @@ -23331,8 +21387,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-87", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-87" }, "id": "61b306305810f1c9040ce5a2", "title": "Step 87" @@ -23343,8 +21398,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-88", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-88" }, "id": "61b30995968123ceb6b76167", "title": "Step 88" @@ -23355,8 +21409,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-89", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-89" }, "id": "61b30a286c228bd0c493c09a", "title": "Step 89" @@ -23367,8 +21420,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-90", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-90" }, "id": "61b31287fb580ae75a486047", "title": "Step 90" @@ -23379,8 +21431,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-91", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-91" }, "id": "61b315e76a63b3ecbbb11b75", "title": "Step 91" @@ -23391,8 +21442,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-92", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-92" }, "id": "61b3183655ec10efd8c0bb07", "title": "Step 92" @@ -23403,8 +21453,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-93", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-93" }, "id": "61b31a451057fff645ec09be", "title": "Step 93" @@ -23415,8 +21464,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-94", - "blockName": "Learn CSS Colors by Building a Set of Colored Markers" + "slug": "/learn/2022/responsive-web-design/learn-css-colors-by-building-a-set-of-colored-markers/step-94" }, "id": "61b31cd7b0c76bfc076b4719", "title": "Step 94" @@ -23427,8 +21475,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-1", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-1" }, "id": "61537485c4f2a624f18d7794", "title": "Step 1" @@ -23439,8 +21486,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-2", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-2" }, "id": "61537a8054753e2f1f2a1574", "title": "Step 2" @@ -23451,8 +21497,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-3", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-3" }, "id": "61537bb9b1a29430ac15ad38", "title": "Step 3" @@ -23463,8 +21508,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-4", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-4" }, "id": "61537c5f81f0cf325b4a854c", "title": "Step 4" @@ -23475,8 +21519,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-5", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-5" }, "id": "61537c9eecea6a335db6da79", "title": "Step 5" @@ -23487,8 +21530,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-6", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-6" }, "id": "61537d86bdc3dd343688fceb", "title": "Step 6" @@ -23499,8 +21541,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-7", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-7" }, "id": "615380dff67172357fcf0425", "title": "Step 7" @@ -23511,8 +21552,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-9", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-9" }, "id": "6153893900438b4643590367", "title": "Step 9" @@ -23523,8 +21563,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-10", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-10" }, "id": "6153897c27f6334716ee5abe", "title": "Step 10" @@ -23535,8 +21574,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-11", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-11" }, "id": "615389bd81347947ea7ba896", "title": "Step 11" @@ -23547,8 +21585,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-12", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-12" }, "id": "6153908a366afb4d57185c8d", "title": "Step 12" @@ -23559,8 +21596,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-13", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-13" }, "id": "615392916d83fa4f02f7e2cf", "title": "Step 13" @@ -23571,8 +21607,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-14", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-14" }, "id": "6153938dce8b294ff8f5a4e9", "title": "Step 14" @@ -23583,8 +21618,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-15", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-15" }, "id": "6153947986535e5117e60615", "title": "Step 15" @@ -23595,8 +21629,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-16", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-16" }, "id": "61539e07e7430b528fbffe21", "title": "Step 16" @@ -23607,8 +21640,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-17", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-17" }, "id": "61539f32a206bd53ec116465", "title": "Step 17" @@ -23619,8 +21651,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-18", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-18" }, "id": "6153a04847abee57a3a406ac", "title": "Step 18" @@ -23631,8 +21662,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-19", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-19" }, "id": "6153a3485f0b20591d26d2a1", "title": "Step 19" @@ -23643,8 +21673,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-20", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-20" }, "id": "6153a3952facd25a83fe8083", "title": "Step 20" @@ -23655,8 +21684,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-21", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-21" }, "id": "6153a3ebb4f7f05b8401b716", "title": "Step 21" @@ -23667,8 +21695,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-8", - "blockName": "Learn CSS Flexbox by Building a Photo Gallery" + "slug": "/learn/2022/responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-8" }, "id": "615f171d05def3218035dc85", "title": "Step 8" @@ -23679,8 +21706,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-1", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-1" }, "id": "61437d575fb98f57fa8f7f36", "title": "Step 1" @@ -23691,8 +21717,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-2", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-2" }, "id": "614385513d91ae5c251c2052", "title": "Step 2" @@ -23703,8 +21728,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-3", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-3" }, "id": "6143862a5e54455d262c212e", "title": "Step 3" @@ -23715,8 +21739,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-4", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-4" }, "id": "6143869bb45bd85e3b1926aa", "title": "Step 4" @@ -23727,8 +21750,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-7", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-7" }, "id": "614387cbefeeba5f3654a291", "title": "Step 7" @@ -23739,8 +21761,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-9", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-9" }, "id": "614389f601bb4f611db98563", "title": "Step 9" @@ -23751,8 +21772,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-10", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-10" }, "id": "61438b5b66d76a6264430f2a", "title": "Step 10" @@ -23763,8 +21783,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-11", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-11" }, "id": "61438ec09438696391076d6a", "title": "Step 11" @@ -23775,8 +21794,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-12", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-12" }, "id": "61439dc084fa5f659cf75d7c", "title": "Step 12" @@ -23787,8 +21805,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-13", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-13" }, "id": "61439dfc811e12666b04be6f", "title": "Step 13" @@ -23799,8 +21816,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-14", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-14" }, "id": "61439e33e4fb7967609e0c83", "title": "Step 14" @@ -23811,8 +21827,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-15", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-15" }, "id": "6143a1a228f7d068ab16a130", "title": "Step 15" @@ -23823,8 +21838,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-16", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-16" }, "id": "6143a73279ce6369de4b9bcc", "title": "Step 16" @@ -23835,8 +21849,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-17", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-17" }, "id": "6143a778bffc206ac6b1dbe3", "title": "Step 17" @@ -23847,8 +21860,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-18", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-18" }, "id": "6143a83fcc32c26bcfae3efa", "title": "Step 18" @@ -23859,8 +21871,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-19", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-19" }, "id": "6143b97c06c3306d23d5da47", "title": "Step 19" @@ -23871,8 +21882,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-20", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-20" }, "id": "6143b9e1f5035c6e5f2a8231", "title": "Step 20" @@ -23883,8 +21893,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-21", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-21" }, "id": "6143bb50e8e48c6f5ef9d8d5", "title": "Step 21" @@ -23895,8 +21904,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-22", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-22" }, "id": "6143c2a363865c715f1a3f72", "title": "Step 22" @@ -23907,8 +21915,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-23", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-23" }, "id": "6143cd08fe927072ca3a371d", "title": "Step 23" @@ -23919,8 +21926,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-24", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-24" }, "id": "6143cdf48b634a747de42104", "title": "Step 24" @@ -23931,8 +21937,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-25", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-25" }, "id": "6143d003ad9e9d76766293ec", "title": "Step 25" @@ -23943,8 +21948,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-26", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-26" }, "id": "6143d2842b497779bad947de", "title": "Step 26" @@ -23955,8 +21959,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-27", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-27" }, "id": "6144d66a5358db0c80628757", "title": "Step 27" @@ -23967,8 +21970,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-28", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-28" }, "id": "6144d7dbdd3e580da730ff45", "title": "Step 28" @@ -23979,8 +21981,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-29", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-29" }, "id": "6144de308591ec10e27d5383", "title": "Step 29" @@ -23991,8 +21992,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-30", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-30" }, "id": "6144e1ba93e435127a7f516d", "title": "Step 30" @@ -24003,8 +22003,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-31", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-31" }, "id": "6144ee46a9d6e614c598cc05", "title": "Step 31" @@ -24015,8 +22014,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-32", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-32" }, "id": "6144ee790af79815ad15a832", "title": "Step 32" @@ -24027,8 +22025,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-33", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-33" }, "id": "6144f1410990ea17187a722b", "title": "Step 33" @@ -24039,8 +22036,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-34", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-34" }, "id": "6144f3818bfbc51844152e36", "title": "Step 34" @@ -24051,8 +22047,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-35", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-35" }, "id": "6144f42204c8c8195f1f3345", "title": "Step 35" @@ -24063,8 +22058,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-36", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-36" }, "id": "6144f47b7c631e1a6f304dd5", "title": "Step 36" @@ -24075,8 +22069,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-37", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-37" }, "id": "6148b07081759c2c691166a9", "title": "Step 37" @@ -24087,8 +22080,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-38", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-38" }, "id": "6148b0d764e4192e5712ed92", "title": "Step 38" @@ -24099,8 +22091,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-39", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-39" }, "id": "6148b185ef37522f688316b0", "title": "Step 39" @@ -24111,8 +22102,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-40", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-40" }, "id": "6148b30464daf630848c21d4", "title": "Step 40" @@ -24123,8 +22113,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-41", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-41" }, "id": "6148b4b150434734143db6f2", "title": "Step 41" @@ -24135,8 +22124,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-42", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-42" }, "id": "6148b5623efa8f369f2c3643", "title": "Step 42" @@ -24147,8 +22135,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-44", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-44" }, "id": "6148b59ef318e03875f35c4a", "title": "Step 44" @@ -24159,8 +22146,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-45", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-45" }, "id": "6148bd62bbb8c83a5f1fc1b3", "title": "Step 45" @@ -24171,8 +22157,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-46", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-46" }, "id": "6148be3d605d6b3ca9425d11", "title": "Step 46" @@ -24183,8 +22168,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-47", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-47" }, "id": "6148be82ca63c63daa8cca49", "title": "Step 47" @@ -24195,8 +22179,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-48", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-48" }, "id": "6148bf49fcc7913f05dbf9b7", "title": "Step 48" @@ -24207,8 +22190,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-49", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-49" }, "id": "6148bfc43df3bc40fe0e6405", "title": "Step 49" @@ -24219,8 +22201,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-50", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-50" }, "id": "6148c004ffc8434252940dc3", "title": "Step 50" @@ -24231,8 +22212,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-51", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-51" }, "id": "6148c224ecb157439bc5247c", "title": "Step 51" @@ -24243,8 +22223,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-52", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-52" }, "id": "6148c434bd731d45617a76c6", "title": "Step 52" @@ -24255,8 +22234,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-53", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-53" }, "id": "6148c5036ddad94692a66230", "title": "Step 53" @@ -24267,8 +22245,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-54", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-54" }, "id": "6148c58bace368497fb11bcf", "title": "Step 54" @@ -24279,8 +22256,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-55", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-55" }, "id": "6148c6aa9981d74af202125e", "title": "Step 55" @@ -24291,8 +22267,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-56", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-56" }, "id": "6148c721e74ecd4c619ae51c", "title": "Step 56" @@ -24303,8 +22278,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-57", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-57" }, "id": "6148ceaf5d897d4d8b3554b3", "title": "Step 57" @@ -24315,8 +22289,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-58", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-58" }, "id": "6148cf094b3f2b4e8a032c63", "title": "Step 58" @@ -24327,8 +22300,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-59", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-59" }, "id": "6148d0b863d10d50544ace0e", "title": "Step 59" @@ -24339,8 +22311,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-60", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-60" }, "id": "6148d1bdf39c5b5186f5974b", "title": "Step 60" @@ -24351,8 +22322,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-61", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-61" }, "id": "6148d1f9eb63c252e1f8acc4", "title": "Step 61" @@ -24363,8 +22333,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-62", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-62" }, "id": "6148d2444d01ab541e64a1e4", "title": "Step 62" @@ -24375,8 +22344,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-63", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-63" }, "id": "6148d33e31fccf558696c745", "title": "Step 63" @@ -24387,8 +22355,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-64", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-64" }, "id": "6148d3fff5186b57123d97e2", "title": "Step 64" @@ -24399,8 +22366,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-65", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-65" }, "id": "6148d4d57b965358c9fa38bf", "title": "Step 65" @@ -24411,8 +22377,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-66", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-66" }, "id": "6148d7720f0db36775db868a", "title": "Step 66" @@ -24423,8 +22388,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-67", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-67" }, "id": "6148d94fdf6a5d6899f8ff15", "title": "Step 67" @@ -24435,8 +22399,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-68", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-68" }, "id": "6148d9825b50a3698aeee644", "title": "Step 68" @@ -24447,8 +22410,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-69", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-69" }, "id": "6148e162e255676ae0da6a76", "title": "Step 69" @@ -24459,8 +22421,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-70", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-70" }, "id": "6148e19c3e26436be0155690", "title": "Step 70" @@ -24471,8 +22432,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-71", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-71" }, "id": "6148e246146b646cf4255f0c", "title": "Step 71" @@ -24483,8 +22443,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-72", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-72" }, "id": "6148e2dcdd60306dd77d41cc", "title": "Step 72" @@ -24495,8 +22454,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-73", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-73" }, "id": "6148e4d6861a486f60681f36", "title": "Step 73" @@ -24507,8 +22465,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-74", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-74" }, "id": "6148e5a204d99e70343a63e4", "title": "Step 74" @@ -24519,8 +22476,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-75", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-75" }, "id": "6148e62a6f768f71c4f04828", "title": "Step 75" @@ -24531,8 +22487,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-76", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-76" }, "id": "6148e789329dc9736ce59b85", "title": "Step 76" @@ -24543,8 +22498,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-77", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-77" }, "id": "6148f34ebedc2274bceeb99c", "title": "Step 77" @@ -24555,8 +22509,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-78", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-78" }, "id": "6148f600cde42b7670c2611f", "title": "Step 78" @@ -24567,8 +22520,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-79", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-79" }, "id": "6148f693e0728f77c87f3020", "title": "Step 79" @@ -24579,8 +22531,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-80", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-80" }, "id": "6148f6f7d8914c78e93136ca", "title": "Step 80" @@ -24591,8 +22542,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-43", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-43" }, "id": "614e0e503b110f76d3ac2ff6", "title": "Step 43" @@ -24603,8 +22553,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-6", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-6" }, "id": "614e0e588f0e8a772a8a81a6", "title": "Step 6" @@ -24615,8 +22564,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-5", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-5" }, "id": "6165d3b702a5d92ad970b30c", "title": "Step 5" @@ -24627,8 +22575,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-8", - "blockName": "Learn CSS Grid by Building a Magazine" + "slug": "/learn/2022/responsive-web-design/learn-css-grid-by-building-a-magazine/step-8" }, "id": "6169cd8a558aa8434e0ad7f6", "title": "Step 8" @@ -24639,8 +22586,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-1", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-1" }, "id": "619665c9abd72906f3ad30f9", "title": "Step 1" @@ -24651,8 +22597,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-2", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-2" }, "id": "61967e74a8e3690ab6292daa", "title": "Step 2" @@ -24663,8 +22608,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-3", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-3" }, "id": "61968df2acd5550bf1616c34", "title": "Step 3" @@ -24675,8 +22619,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-5", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-5" }, "id": "61968e9243a4090cc805531c", "title": "Step 5" @@ -24687,8 +22630,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-6", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-6" }, "id": "61968f8877c6720d6d61aaf5", "title": "Step 6" @@ -24699,8 +22641,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-7", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-7" }, "id": "619691693bc14b0e528f5a20", "title": "Step 7" @@ -24711,8 +22652,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-8", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-8" }, "id": "6196928658b6010f28c39484", "title": "Step 8" @@ -24723,8 +22663,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-10", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-10" }, "id": "619692ff79f5770fc6d8c0b4", "title": "Step 10" @@ -24735,8 +22674,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-11", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-11" }, "id": "6196990f966e8f10a40094f6", "title": "Step 11" @@ -24747,8 +22685,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-12", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-12" }, "id": "619699c10a0f6e11591d73c4", "title": "Step 12" @@ -24759,8 +22696,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-13", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-13" }, "id": "61969aa6acef5b12200f672e", "title": "Step 13" @@ -24771,8 +22707,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-14", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-14" }, "id": "61969c487ced6f12db8fef94", "title": "Step 14" @@ -24783,8 +22718,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-15", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-15" }, "id": "61969d66cfcdba137d021558", "title": "Step 15" @@ -24795,8 +22729,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-16", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-16" }, "id": "61969e7451455614217e901b", "title": "Step 16" @@ -24807,8 +22740,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-17", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-17" }, "id": "6196adc17f77a714d51485f2", "title": "Step 17" @@ -24819,8 +22751,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-18", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-18" }, "id": "6196aead7ac7bf1584b17a7f", "title": "Step 18" @@ -24831,8 +22762,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-19", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-19" }, "id": "6196ce0415498d2463989e84", "title": "Step 19" @@ -24843,8 +22773,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-20", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-20" }, "id": "6196cee94c6da1253809dff9", "title": "Step 20" @@ -24855,8 +22784,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-21", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-21" }, "id": "6196d00a5d7292262bc02f4c", "title": "Step 21" @@ -24867,8 +22795,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-22", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-22" }, "id": "6196d0cda039d026f7f78d1e", "title": "Step 22" @@ -24879,8 +22806,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-24", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-24" }, "id": "6196d213d99f16287bff22ae", "title": "Step 24" @@ -24891,8 +22817,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-25", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-25" }, "id": "6196d2c0f22ca0293107c048", "title": "Step 25" @@ -24903,8 +22828,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-26", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-26" }, "id": "6196d32d1340d829f0f6f57d", "title": "Step 26" @@ -24915,8 +22839,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-27", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-27" }, "id": "6196d41d40bf9b2aaea5d520", "title": "Step 27" @@ -24927,8 +22850,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-28", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-28" }, "id": "6197cff995d03905b0cca8ad", "title": "Step 28" @@ -24939,8 +22861,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-29", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-29" }, "id": "6197f40a16afea068c7e60c8", "title": "Step 29" @@ -24951,8 +22872,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-9", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-9" }, "id": "6197f667297bb30a552ce017", "title": "Step 9" @@ -24963,8 +22883,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-30", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-30" }, "id": "61993b72e874e709b8dfd666", "title": "Step 30" @@ -24975,8 +22894,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-31", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-31" }, "id": "61993cf26a8e0f0a553db223", "title": "Step 31" @@ -24987,8 +22905,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-32", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-32" }, "id": "61993dbb35adf30b10d49e38", "title": "Step 32" @@ -24999,8 +22916,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-33", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-33" }, "id": "61993e9adc9e9a0bb4d28fff", "title": "Step 33" @@ -25011,8 +22927,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-34", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-34" }, "id": "6199409834ccaf0d10736596", "title": "Step 34" @@ -25023,8 +22938,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-35", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-35" }, "id": "6199429802b7c10dc79ff871", "title": "Step 35" @@ -25035,8 +22949,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-36", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-36" }, "id": "619943285a41720e6370d985", "title": "Step 36" @@ -25047,8 +22960,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-37", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-37" }, "id": "619943876b706d0f35c01dbc", "title": "Step 37" @@ -25059,8 +22971,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-38", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-38" }, "id": "6199442866286d0ff421a4fc", "title": "Step 38" @@ -25071,8 +22982,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-39", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-39" }, "id": "619bcf239fc15905ecd66fce", "title": "Step 39" @@ -25083,8 +22993,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-40", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-40" }, "id": "619be73b3c806006ccc00bb0", "title": "Step 40" @@ -25095,8 +23004,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-41", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-41" }, "id": "619be7af7b0bf60770f5d2a4", "title": "Step 41" @@ -25107,8 +23015,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-42", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-42" }, "id": "619be80062551a080e32c821", "title": "Step 42" @@ -25119,8 +23026,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-43", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-43" }, "id": "619be8ce4ea49008c5bfbc30", "title": "Step 43" @@ -25131,8 +23037,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-44", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-44" }, "id": "619be946958c6009844f1dee", "title": "Step 44" @@ -25143,8 +23048,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-45", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-45" }, "id": "619c155df0063a0a3fec0e32", "title": "Step 45" @@ -25155,8 +23059,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-46", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-46" }, "id": "619c16debd0c270b01c5ce38", "title": "Step 46" @@ -25167,8 +23070,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-47", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-47" }, "id": "619cfdf2e63ddf05feab86ad", "title": "Step 47" @@ -25179,8 +23081,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-48", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-48" }, "id": "619d019488f98c06acbbb71a", "title": "Step 48" @@ -25191,8 +23092,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-49", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-49" }, "id": "619d022dc8400c0763829a17", "title": "Step 49" @@ -25203,8 +23103,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-50", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-50" }, "id": "619d02c7bc95bf0827a5d296", "title": "Step 50" @@ -25215,8 +23114,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-51", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-51" }, "id": "619d033915012509031f309a", "title": "Step 51" @@ -25227,8 +23125,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-52", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-52" }, "id": "619d03dadadb6509a16f4f5f", "title": "Step 52" @@ -25239,8 +23136,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-53", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-53" }, "id": "619d0503e03a790a4179d463", "title": "Step 53" @@ -25251,8 +23147,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-54", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-54" }, "id": "619d05c54dabca0b10058235", "title": "Step 54" @@ -25263,8 +23158,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-55", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-55" }, "id": "619d0882f54bf40bdc4671ed", "title": "Step 55" @@ -25275,8 +23169,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-56", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-56" }, "id": "619d090cd8d6db0c93dc5087", "title": "Step 56" @@ -25287,8 +23180,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-57", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-57" }, "id": "619d0b51ca42ed0d74582186", "title": "Step 57" @@ -25299,8 +23191,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-58", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-58" }, "id": "619d0bc9cb05360e1bf549c3", "title": "Step 58" @@ -25311,8 +23202,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-59", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-59" }, "id": "619d0c1594c38c0ebae75878", "title": "Step 59" @@ -25323,8 +23213,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-60", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-60" }, "id": "619d0d18ca99870f884a7bff", "title": "Step 60" @@ -25335,8 +23224,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-61", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-61" }, "id": "619d0daf214542102739b0da", "title": "Step 61" @@ -25347,8 +23235,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-62", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-62" }, "id": "619d0e56f9ca9710fcb974e3", "title": "Step 62" @@ -25359,8 +23246,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-63", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-63" }, "id": "619d0eec0ac40611b41e2ccc", "title": "Step 63" @@ -25371,8 +23257,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-64", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-64" }, "id": "619d0fc9825c271253df28d4", "title": "Step 64" @@ -25383,8 +23268,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-65", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-65" }, "id": "619d102d786c3d13124c37c6", "title": "Step 65" @@ -25395,8 +23279,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-66", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-66" }, "id": "619d107edf7ddf13cc77106a", "title": "Step 66" @@ -25407,8 +23290,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-67", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-67" }, "id": "619d10cc98145f14820399c5", "title": "Step 67" @@ -25419,8 +23301,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-68", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-68" }, "id": "619d115e2adcd71538e82ebb", "title": "Step 68" @@ -25431,8 +23312,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-69", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-69" }, "id": "619d11e6d5ef9515d2a16033", "title": "Step 69" @@ -25443,8 +23323,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-70", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-70" }, "id": "619d129a417d0716a94de913", "title": "Step 70" @@ -25455,8 +23334,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-71", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-71" }, "id": "619d1340361095175f4b5115", "title": "Step 71" @@ -25467,8 +23345,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-72", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-72" }, "id": "619d15797b580c1828b05426", "title": "Step 72" @@ -25479,8 +23356,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-73", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-73" }, "id": "619d15d955d9d418c4487bbc", "title": "Step 73" @@ -25491,8 +23367,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-74", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-74" }, "id": "619d1629a8adc61960ca8b40", "title": "Step 74" @@ -25503,8 +23378,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-75", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-75" }, "id": "619d1c5fc9f8941a400955da", "title": "Step 75" @@ -25515,8 +23389,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-76", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-76" }, "id": "619d1dab9ff3421ae1976991", "title": "Step 76" @@ -25527,8 +23400,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-77", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-77" }, "id": "619d1deb8b04811b8839ffe4", "title": "Step 77" @@ -25539,8 +23411,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-78", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-78" }, "id": "619d1e7a8e81a61c5a819dc4", "title": "Step 78" @@ -25551,8 +23422,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-79", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-79" }, "id": "619d1ed33c9a071cf657a0d6", "title": "Step 79" @@ -25563,8 +23433,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-80", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-80" }, "id": "619d1fb5d244c31db8a7fdb7", "title": "Step 80" @@ -25575,8 +23444,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-81", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-81" }, "id": "619d204bd73ae51e743b8e94", "title": "Step 81" @@ -25587,8 +23455,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-82", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-82" }, "id": "619d20b12996101f430920fb", "title": "Step 82" @@ -25599,8 +23466,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-83", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-83" }, "id": "619d21fe6a3f9b2016be9d9d", "title": "Step 83" @@ -25611,8 +23477,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-84", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-84" }, "id": "619d229b0e542520cd91c685", "title": "Step 84" @@ -25623,8 +23488,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-85", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-85" }, "id": "619d23089e787e216a7043d6", "title": "Step 85" @@ -25635,8 +23499,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-86", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-86" }, "id": "619d237a107c10221ed743fa", "title": "Step 86" @@ -25647,8 +23510,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-87", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-87" }, "id": "619d26b12e651022d80cd017", "title": "Step 87" @@ -25659,8 +23521,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-88", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-88" }, "id": "619d2712853306238f41828e", "title": "Step 88" @@ -25671,8 +23532,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-89", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-89" }, "id": "619d2b7a84e78b246f2d17a2", "title": "Step 89" @@ -25683,8 +23543,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-90", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-90" }, "id": "619d2bd9c1d43c2526e96f1f", "title": "Step 90" @@ -25695,8 +23554,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-91", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-91" }, "id": "619d2d4e80400325ff89664a", "title": "Step 91" @@ -25707,8 +23565,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-92", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-92" }, "id": "619d2ebc81ba81271460850d", "title": "Step 92" @@ -25719,8 +23576,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-93", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-93" }, "id": "619d2f0e9440bc27caee1cec", "title": "Step 93" @@ -25731,8 +23587,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-94", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-94" }, "id": "619d2fd3ff4f772882e3d998", "title": "Step 94" @@ -25743,8 +23598,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-95", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-95" }, "id": "619d30350883802921bfcccc", "title": "Step 95" @@ -25755,8 +23609,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-96", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-96" }, "id": "619d324f5915c929f36ae91d", "title": "Step 96" @@ -25767,8 +23620,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-97", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-97" }, "id": "619d32c7fa21f32aaa91d499", "title": "Step 97" @@ -25779,8 +23631,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-98", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-98" }, "id": "619d333b738e3c2b5d58b095", "title": "Step 98" @@ -25791,8 +23642,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-99", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-99" }, "id": "619d337765b9f02c10e93722", "title": "Step 99" @@ -25803,8 +23653,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100" }, "id": "619d33c51140292cc5a21742", "title": "Step 100" @@ -25815,8 +23664,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101" }, "id": "619d3482f505452d861d0f62", "title": "Step 101" @@ -25827,8 +23675,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102" }, "id": "619d3561a951bf2e41a24f10", "title": "Step 102" @@ -25839,8 +23686,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103" }, "id": "619d36103839c82efa95dd34", "title": "Step 103" @@ -25851,8 +23697,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104" }, "id": "619d3711d04d623000013e9e", "title": "Step 104" @@ -25863,8 +23708,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-4", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-4" }, "id": "61a8fe15a6a31306e60d1e89", "title": "Step 4" @@ -25875,8 +23719,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-1", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-1" }, "id": "5d822fd413a79914d39e98c9", "title": "Step 1" @@ -25887,8 +23730,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-2", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-2" }, "id": "5d822fd413a79914d39e98ca", "title": "Step 2" @@ -25899,8 +23741,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-3", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-3" }, "id": "5d822fd413a79914d39e98cb", "title": "Step 3" @@ -25911,8 +23752,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-4", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-4" }, "id": "5d822fd413a79914d39e98cc", "title": "Step 4" @@ -25923,8 +23763,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-5", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-5" }, "id": "5d822fd413a79914d39e98cd", "title": "Step 5" @@ -25935,8 +23774,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-6", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-6" }, "id": "5d822fd413a79914d39e98ce", "title": "Step 6" @@ -25947,8 +23785,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-7", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-7" }, "id": "5d822fd413a79914d39e98cf", "title": "Step 7" @@ -25959,8 +23796,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-8", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-8" }, "id": "5d822fd413a79914d39e98d0", "title": "Step 8" @@ -25971,8 +23807,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-9", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-9" }, "id": "5d822fd413a79914d39e98d1", "title": "Step 9" @@ -25983,8 +23818,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-10", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-10" }, "id": "5d822fd413a79914d39e98d2", "title": "Step 10" @@ -25995,8 +23829,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-11", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-11" }, "id": "5d822fd413a79914d39e98d3", "title": "Step 11" @@ -26007,8 +23840,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-12", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-12" }, "id": "5d822fd413a79914d39e98d4", "title": "Step 12" @@ -26019,8 +23851,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-13", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-13" }, "id": "5d822fd413a79914d39e98d5", "title": "Step 13" @@ -26031,8 +23862,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-14", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-14" }, "id": "5d822fd413a79914d39e98d6", "title": "Step 14" @@ -26043,8 +23873,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-15", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-15" }, "id": "5d822fd413a79914d39e98d7", "title": "Step 15" @@ -26055,8 +23884,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-16", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-16" }, "id": "5d822fd413a79914d39e98d8", "title": "Step 16" @@ -26067,8 +23895,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-17", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-17" }, "id": "5d822fd413a79914d39e98d9", "title": "Step 17" @@ -26079,8 +23906,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-18", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-18" }, "id": "5d822fd413a79914d39e98da", "title": "Step 18" @@ -26091,8 +23917,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-19", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-19" }, "id": "5d822fd413a79914d39e98db", "title": "Step 19" @@ -26103,8 +23928,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-20", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-20" }, "id": "5d822fd413a79914d39e98dc", "title": "Step 20" @@ -26115,8 +23939,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-21", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-21" }, "id": "5d822fd413a79914d39e98dd", "title": "Step 21" @@ -26127,8 +23950,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-22", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-22" }, "id": "5d822fd413a79914d39e98de", "title": "Step 22" @@ -26139,8 +23961,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-23", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-23" }, "id": "5d822fd413a79914d39e98df", "title": "Step 23" @@ -26151,8 +23972,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-24", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-24" }, "id": "5d822fd413a79914d39e98e0", "title": "Step 24" @@ -26163,8 +23983,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-25", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-25" }, "id": "5d822fd413a79914d39e98e1", "title": "Step 25" @@ -26175,8 +23994,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-26", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-26" }, "id": "5d822fd413a79914d39e98e2", "title": "Step 26" @@ -26187,8 +24005,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-27", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-27" }, "id": "5d822fd413a79914d39e98e3", "title": "Step 27" @@ -26199,8 +24016,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-28", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-28" }, "id": "5d822fd413a79914d39e98e4", "title": "Step 28" @@ -26211,8 +24027,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-29", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-29" }, "id": "5d822fd413a79914d39e98e5", "title": "Step 29" @@ -26223,8 +24038,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-30", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-30" }, "id": "5d822fd413a79914d39e98e6", "title": "Step 30" @@ -26235,8 +24049,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-31", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-31" }, "id": "5d822fd413a79914d39e98e7", "title": "Step 31" @@ -26247,8 +24060,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-32", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-32" }, "id": "5d822fd413a79914d39e98e8", "title": "Step 32" @@ -26259,8 +24071,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-33", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-33" }, "id": "5d822fd413a79914d39e98e9", "title": "Step 33" @@ -26271,8 +24082,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-34", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-34" }, "id": "5d822fd413a79914d39e98ea", "title": "Step 34" @@ -26283,8 +24093,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-35", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-35" }, "id": "5d822fd413a79914d39e98eb", "title": "Step 35" @@ -26295,8 +24104,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-36", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-36" }, "id": "5d822fd413a79914d39e98ec", "title": "Step 36" @@ -26307,8 +24115,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-37", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-37" }, "id": "5d822fd413a79914d39e98ed", "title": "Step 37" @@ -26319,8 +24126,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-38", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-38" }, "id": "5d822fd413a79914d39e98ee", "title": "Step 38" @@ -26331,8 +24137,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-39", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-39" }, "id": "5d822fd413a79914d39e98ef", "title": "Step 39" @@ -26343,8 +24148,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-40", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-40" }, "id": "5d822fd413a79914d39e98f0", "title": "Step 40" @@ -26355,8 +24159,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-41", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-41" }, "id": "5d822fd413a79914d39e98f1", "title": "Step 41" @@ -26367,8 +24170,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-42", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-42" }, "id": "5d822fd413a79914d39e98f2", "title": "Step 42" @@ -26379,8 +24181,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-43", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-43" }, "id": "5d822fd413a79914d39e98f3", "title": "Step 43" @@ -26391,8 +24192,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-44", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-44" }, "id": "5d822fd413a79914d39e98f4", "title": "Step 44" @@ -26403,8 +24203,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-45", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-45" }, "id": "5d822fd413a79914d39e98f5", "title": "Step 45" @@ -26415,8 +24214,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-46", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-46" }, "id": "5d822fd413a79914d39e98f6", "title": "Step 46" @@ -26427,8 +24225,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-47", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-47" }, "id": "5d822fd413a79914d39e98f7", "title": "Step 47" @@ -26439,8 +24236,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-48", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-48" }, "id": "5d822fd413a79914d39e98f8", "title": "Step 48" @@ -26451,8 +24247,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-49", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-49" }, "id": "5d822fd413a79914d39e98f9", "title": "Step 49" @@ -26463,8 +24258,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-50", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-50" }, "id": "5d822fd413a79914d39e98fa", "title": "Step 50" @@ -26475,8 +24269,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-51", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-51" }, "id": "5d822fd413a79914d39e98fb", "title": "Step 51" @@ -26487,8 +24280,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-52", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-52" }, "id": "5d822fd413a79914d39e98fc", "title": "Step 52" @@ -26499,8 +24291,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-53", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-53" }, "id": "5d822fd413a79914d39e98fd", "title": "Step 53" @@ -26511,8 +24302,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-54", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-54" }, "id": "5d822fd413a79914d39e98fe", "title": "Step 54" @@ -26523,8 +24313,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-55", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-55" }, "id": "5d822fd413a79914d39e98ff", "title": "Step 55" @@ -26535,8 +24324,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-56", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-56" }, "id": "5d822fd413a79914d39e9900", "title": "Step 56" @@ -26547,8 +24335,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-57", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-57" }, "id": "5d822fd413a79914d39e9901", "title": "Step 57" @@ -26559,8 +24346,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-58", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-58" }, "id": "5d822fd413a79914d39e9902", "title": "Step 58" @@ -26571,8 +24357,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-59", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-59" }, "id": "5d822fd413a79914d39e9903", "title": "Step 59" @@ -26583,8 +24368,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-60", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-60" }, "id": "5d822fd413a79914d39e9904", "title": "Step 60" @@ -26595,8 +24379,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-61", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-61" }, "id": "5d822fd413a79914d39e9905", "title": "Step 61" @@ -26607,8 +24390,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-62", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-62" }, "id": "5d822fd413a79914d39e9906", "title": "Step 62" @@ -26619,8 +24401,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-63", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-63" }, "id": "5d822fd413a79914d39e9907", "title": "Step 63" @@ -26631,8 +24412,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-64", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-64" }, "id": "5d822fd413a79914d39e9908", "title": "Step 64" @@ -26643,8 +24423,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-65", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-65" }, "id": "5d822fd413a79914d39e9909", "title": "Step 65" @@ -26655,8 +24434,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-66", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-66" }, "id": "5d822fd413a79914d39e990a", "title": "Step 66" @@ -26667,8 +24445,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-67", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-67" }, "id": "5d822fd413a79914d39e990b", "title": "Step 67" @@ -26679,8 +24456,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-68", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-68" }, "id": "5d822fd413a79914d39e990c", "title": "Step 68" @@ -26691,8 +24467,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-69", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-69" }, "id": "5d822fd413a79914d39e990d", "title": "Step 69" @@ -26703,8 +24478,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-70", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-70" }, "id": "5d822fd413a79914d39e990e", "title": "Step 70" @@ -26715,8 +24489,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-71", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-71" }, "id": "5d822fd413a79914d39e990f", "title": "Step 71" @@ -26727,8 +24500,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-72", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-72" }, "id": "5d822fd413a79914d39e9910", "title": "Step 72" @@ -26739,8 +24511,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-73", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-73" }, "id": "5d822fd413a79914d39e9911", "title": "Step 73" @@ -26751,8 +24522,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-74", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-74" }, "id": "5d822fd413a79914d39e9912", "title": "Step 74" @@ -26763,8 +24533,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-75", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-75" }, "id": "5d822fd413a79914d39e9913", "title": "Step 75" @@ -26775,8 +24544,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-76", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-76" }, "id": "5d822fd413a79914d39e9914", "title": "Step 76" @@ -26787,8 +24555,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-106", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-106" }, "id": "5d822fd413a79914d39e9915", "title": "Step 106" @@ -26799,8 +24566,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-77", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-77" }, "id": "5d822fd413a79914d39e9916", "title": "Step 77" @@ -26811,8 +24577,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-78", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-78" }, "id": "5d822fd413a79914d39e9917", "title": "Step 78" @@ -26823,8 +24588,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-79", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-79" }, "id": "5d822fd413a79914d39e9918", "title": "Step 79" @@ -26835,8 +24599,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-80", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-80" }, "id": "5d822fd413a79914d39e9919", "title": "Step 80" @@ -26847,8 +24610,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-81", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-81" }, "id": "5d822fd413a79914d39e991a", "title": "Step 81" @@ -26859,8 +24621,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-82", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-82" }, "id": "5d822fd413a79914d39e991b", "title": "Step 82" @@ -26871,8 +24632,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-83", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-83" }, "id": "5d822fd413a79914d39e991c", "title": "Step 83" @@ -26883,8 +24643,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-84", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-84" }, "id": "5d822fd413a79914d39e991d", "title": "Step 84" @@ -26895,8 +24654,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-85", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-85" }, "id": "5d822fd413a79914d39e991e", "title": "Step 85" @@ -26907,8 +24665,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-86", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-86" }, "id": "5d822fd413a79914d39e991f", "title": "Step 86" @@ -26919,8 +24676,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-87", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-87" }, "id": "5d822fd413a79914d39e9920", "title": "Step 87" @@ -26931,8 +24687,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-88", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-88" }, "id": "5d822fd413a79914d39e9921", "title": "Step 88" @@ -26943,8 +24698,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-89", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-89" }, "id": "5d822fd413a79914d39e9922", "title": "Step 89" @@ -26955,8 +24709,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-90", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-90" }, "id": "5d822fd413a79914d39e9923", "title": "Step 90" @@ -26967,8 +24720,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-91", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-91" }, "id": "5d822fd413a79914d39e9924", "title": "Step 91" @@ -26979,8 +24731,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-92", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-92" }, "id": "5d822fd413a79914d39e9925", "title": "Step 92" @@ -26991,8 +24742,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-93", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-93" }, "id": "5d822fd413a79914d39e9926", "title": "Step 93" @@ -27003,8 +24753,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-94", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-94" }, "id": "5d822fd413a79914d39e9927", "title": "Step 94" @@ -27015,8 +24764,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-95", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-95" }, "id": "5d822fd413a79914d39e9928", "title": "Step 95" @@ -27027,8 +24775,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-96", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-96" }, "id": "5d822fd413a79914d39e9929", "title": "Step 96" @@ -27039,8 +24786,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-97", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-97" }, "id": "5d822fd413a79914d39e992a", "title": "Step 97" @@ -27051,8 +24797,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-98", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-98" }, "id": "5d822fd413a79914d39e992b", "title": "Step 98" @@ -27063,8 +24808,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-99", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-99" }, "id": "5d822fd413a79914d39e992c", "title": "Step 99" @@ -27075,8 +24819,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-100", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-100" }, "id": "5d822fd413a79914d39e992d", "title": "Step 100" @@ -27087,8 +24830,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-101", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-101" }, "id": "5d822fd413a79914d39e992e", "title": "Step 101" @@ -27099,8 +24841,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-102", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-102" }, "id": "5d822fd413a79914d39e992f", "title": "Step 102" @@ -27111,8 +24852,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-103", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-103" }, "id": "5d822fd413a79914d39e9930", "title": "Step 103" @@ -27123,8 +24863,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-109", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-109" }, "id": "5d822fd413a79914d39e9931", "title": "Step 109" @@ -27135,8 +24874,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-104", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-104" }, "id": "5d822fd413a79914d39e9932", "title": "Step 104" @@ -27147,8 +24885,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-105", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-105" }, "id": "5d822fd413a79914d39e9933", "title": "Step 105" @@ -27159,8 +24896,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-107", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-107" }, "id": "5d822fd413a79914d39e9934", "title": "Step 107" @@ -27171,8 +24907,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-108", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-108" }, "id": "5d822fd413a79914d39e9935", "title": "Step 108" @@ -27183,8 +24918,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-110", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-110" }, "id": "5d822fd413a79914d39e9936", "title": "Step 110" @@ -27195,8 +24929,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-111", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-111" }, "id": "5d822fd413a79914d39e9937", "title": "Step 111" @@ -27207,8 +24940,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-112", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-112" }, "id": "5d822fd413a79914d39e9938", "title": "Step 112" @@ -27219,8 +24951,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-113", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-113" }, "id": "5d822fd413a79914d39e9939", "title": "Step 113" @@ -27231,8 +24962,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-114", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-114" }, "id": "5d822fd413a79914d39e993a", "title": "Step 114" @@ -27243,8 +24973,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-115", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-115" }, "id": "5d822fd413a79914d39e993b", "title": "Step 115" @@ -27255,8 +24984,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-116", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-116" }, "id": "5d822fd413a79914d39e993c", "title": "Step 116" @@ -27267,8 +24995,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-117", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-117" }, "id": "5d822fd413a79914d39e993d", "title": "Step 117" @@ -27279,8 +25006,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-118", - "blockName": "Learn CSS Variables by Building a City Skyline" + "slug": "/learn/2022/responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-118" }, "id": "5d822fd413a79914d39e993e", "title": "Step 118" @@ -27291,8 +25017,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-1", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-1" }, "id": "5dc174fcf86c76b9248c6eb2", "title": "Step 1" @@ -27303,8 +25028,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-2", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-2" }, "id": "5dc1798ff86c76b9248c6eb3", "title": "Step 2" @@ -27315,8 +25039,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-3", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-3" }, "id": "5dc17d3bf86c76b9248c6eb4", "title": "Step 3" @@ -27327,8 +25050,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-4", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-4" }, "id": "5dc17dc8f86c76b9248c6eb5", "title": "Step 4" @@ -27339,8 +25061,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-5", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-5" }, "id": "5dc2385ff86c76b9248c6eb7", "title": "Step 5" @@ -27351,8 +25072,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-6", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-6" }, "id": "5dc23991f86c76b9248c6eb8", "title": "Step 6" @@ -27363,8 +25083,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-7", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-7" }, "id": "5dc23f9bf86c76b9248c6eba", "title": "Step 7" @@ -27375,8 +25094,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-8", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-8" }, "id": "5dc24073f86c76b9248c6ebb", "title": "Step 8" @@ -27387,8 +25105,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-9", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-9" }, "id": "5dc24165f86c76b9248c6ebc", "title": "Step 9" @@ -27399,8 +25116,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-10", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-10" }, "id": "5dc24614f86c76b9248c6ebd", "title": "Step 10" @@ -27411,8 +25127,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-11", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-11" }, "id": "5ddbd81294d8ddc1510a8e56", "title": "Step 11" @@ -27423,8 +25138,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-12", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-12" }, "id": "5dfa22d1b521be39a3de7be0", "title": "Step 12" @@ -27435,8 +25149,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-14", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-14" }, "id": "5dfa2407b521be39a3de7be1", "title": "Step 14" @@ -27447,8 +25160,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-15", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-15" }, "id": "5dfa30b9eacea3f48c6300ad", "title": "Step 15" @@ -27459,8 +25171,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-18", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-18" }, "id": "5dfa3589eacea3f48c6300ae", "title": "Step 18" @@ -27471,8 +25182,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-19", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-19" }, "id": "5dfa371beacea3f48c6300af", "title": "Step 19" @@ -27483,8 +25193,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-20", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-20" }, "id": "5dfa37b9eacea3f48c6300b0", "title": "Step 20" @@ -27495,8 +25204,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-21", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-21" }, "id": "5dfb5ecbeacea3f48c6300b1", "title": "Step 21" @@ -27507,8 +25215,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-22", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-22" }, "id": "5dfb6250eacea3f48c6300b2", "title": "Step 22" @@ -27519,8 +25226,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-23", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-23" }, "id": "5dfb655eeacea3f48c6300b3", "title": "Step 23" @@ -27531,8 +25237,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-24", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-24" }, "id": "5dfb6a35eacea3f48c6300b4", "title": "Step 24" @@ -27543,8 +25248,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-25", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-25" }, "id": "5ef9b03c81a63668521804d0", "title": "Step 25" @@ -27555,8 +25259,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-26", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-26" }, "id": "5ef9b03c81a63668521804d1", "title": "Step 26" @@ -27567,8 +25270,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-27", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-27" }, "id": "5ef9b03c81a63668521804d2", "title": "Step 27" @@ -27579,8 +25281,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-28", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-28" }, "id": "5ef9b03c81a63668521804d3", "title": "Step 28" @@ -27591,8 +25292,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-32", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-32" }, "id": "5ef9b03c81a63668521804d4", "title": "Step 32" @@ -27603,8 +25303,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-34", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-34" }, "id": "5ef9b03c81a63668521804d5", "title": "Step 34" @@ -27615,8 +25314,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-35", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-35" }, "id": "5ef9b03c81a63668521804d6", "title": "Step 35" @@ -27627,8 +25325,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-36", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-36" }, "id": "5ef9b03c81a63668521804d7", "title": "Step 36" @@ -27639,8 +25336,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-37", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-37" }, "id": "5ef9b03c81a63668521804d8", "title": "Step 37" @@ -27651,8 +25347,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-40", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-40" }, "id": "5ef9b03c81a63668521804d9", "title": "Step 40" @@ -27663,8 +25358,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-42", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-42" }, "id": "5ef9b03c81a63668521804da", "title": "Step 42" @@ -27675,8 +25369,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-41", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-41" }, "id": "5ef9b03c81a63668521804db", "title": "Step 41" @@ -27687,8 +25380,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-44", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-44" }, "id": "5ef9b03c81a63668521804dc", "title": "Step 44" @@ -27699,8 +25391,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-45", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-45" }, "id": "5ef9b03c81a63668521804dd", "title": "Step 45" @@ -27711,8 +25402,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-48", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-48" }, "id": "5ef9b03c81a63668521804de", "title": "Step 48" @@ -27723,8 +25413,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-46", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-46" }, "id": "5ef9b03c81a63668521804df", "title": "Step 46" @@ -27735,8 +25424,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-50", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-50" }, "id": "5ef9b03c81a63668521804e1", "title": "Step 50" @@ -27747,8 +25435,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-54", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-54" }, "id": "5ef9b03c81a63668521804e2", "title": "Step 54" @@ -27759,8 +25446,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-58", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-58" }, "id": "5ef9b03c81a63668521804e3", "title": "Step 58" @@ -27771,8 +25457,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-61", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-61" }, "id": "5ef9b03c81a63668521804e5", "title": "Step 61" @@ -27783,8 +25468,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-62", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-62" }, "id": "5ef9b03c81a63668521804e7", "title": "Step 62" @@ -27795,8 +25479,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-63", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-63" }, "id": "5ef9b03c81a63668521804e8", "title": "Step 63" @@ -27807,8 +25490,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-64", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-64" }, "id": "5ef9b03c81a63668521804e9", "title": "Step 64" @@ -27819,8 +25501,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-65", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-65" }, "id": "5ef9b03c81a63668521804ea", "title": "Step 65" @@ -27831,8 +25512,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-66", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-66" }, "id": "5ef9b03c81a63668521804eb", "title": "Step 66" @@ -27843,8 +25523,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-67", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-67" }, "id": "5ef9b03c81a63668521804ec", "title": "Step 67" @@ -27855,8 +25534,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-68", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-68" }, "id": "5ef9b03c81a63668521804ee", "title": "Step 68" @@ -27867,8 +25545,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-29", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-29" }, "id": "5efada803cbd2bbdab94e332", "title": "Step 29" @@ -27879,8 +25556,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-30", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-30" }, "id": "5efae0543cbd2bbdab94e333", "title": "Step 30" @@ -27891,8 +25567,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-31", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-31" }, "id": "5efae16e3cbd2bbdab94e334", "title": "Step 31" @@ -27903,8 +25578,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-38", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-38" }, "id": "5efb23e70dc218d6c85f89b1", "title": "Step 38" @@ -27915,8 +25589,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-43", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-43" }, "id": "5efb2c990dc218d6c85f89b2", "title": "Step 43" @@ -27927,8 +25600,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-56", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-56" }, "id": "5efc4f528d6a74d05e68af74", "title": "Step 56" @@ -27939,8 +25611,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-57", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-57" }, "id": "5efc518e8d6a74d05e68af75", "title": "Step 57" @@ -27951,8 +25622,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-55", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-55" }, "id": "5efc54138d6a74d05e68af76", "title": "Step 55" @@ -27963,8 +25633,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-59", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-59" }, "id": "5efc575c8d6a74d05e68af77", "title": "Step 59" @@ -27975,8 +25644,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-47", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-47" }, "id": "5f05a1d8e233dff4a68508d8", "title": "Step 47" @@ -27987,8 +25655,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-16", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-16" }, "id": "5f07be6ef7412fbad0c5626b", "title": "Step 16" @@ -27999,8 +25666,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-17", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-17" }, "id": "5f07c98cdb9413cbd4b16750", "title": "Step 17" @@ -28011,8 +25677,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-33", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-33" }, "id": "5f07fb1579dc934717801375", "title": "Step 33" @@ -28023,8 +25688,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-51", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-51" }, "id": "5f0d48e7b435f13ab6550051", "title": "Step 51" @@ -28035,8 +25699,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-52", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-52" }, "id": "5f0d4ab1b435f13ab6550052", "title": "Step 52" @@ -28047,8 +25710,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-53", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-53" }, "id": "5f0d4d04b435f13ab6550053", "title": "Step 53" @@ -28059,8 +25721,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-49", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-49" }, "id": "5f1a80975fc4bcae0edb3497", "title": "Step 49" @@ -28071,8 +25732,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-60", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-60" }, "id": "5f1a89f1190aff21ae42105a", "title": "Step 60" @@ -28083,8 +25743,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-69", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-69" }, "id": "62bb4009e3458a128ff57d5d", "title": "Step 69" @@ -28095,8 +25754,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-13", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-13" }, "id": "62dabe2ef403a12d5d295273", "title": "Step 13" @@ -28107,8 +25765,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-39", - "blockName": "Learn HTML by Building a Cat Photo App" + "slug": "/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-39" }, "id": "7cf9b03d81a65668421804c3", "title": "Step 39" @@ -28119,8 +25776,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-1", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-1" }, "id": "60eebd07ea685b0e777b5583", "title": "Step 1" @@ -28131,8 +25787,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-2", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-2" }, "id": "60f027099a15b00485563dd2", "title": "Step 2" @@ -28143,8 +25798,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-3", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-3" }, "id": "60f027c87bc98f050395c139", "title": "Step 3" @@ -28155,8 +25809,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-4", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-4" }, "id": "60f0286404aefb0562a4fdf9", "title": "Step 4" @@ -28167,8 +25820,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-6", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-6" }, "id": "60f02e7361b68405e27b62a5", "title": "Step 6" @@ -28179,8 +25831,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-7", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-7" }, "id": "60f030d388cb74067cf291c3", "title": "Step 7" @@ -28191,8 +25842,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-8", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-8" }, "id": "60f1922fcbd2410527b3bd89", "title": "Step 8" @@ -28203,8 +25853,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-9", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-9" }, "id": "60f1a5e2d2c23707a4f9a660", "title": "Step 9" @@ -28215,8 +25864,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-10", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-10" }, "id": "60f1a9cbd23023082e149fee", "title": "Step 10" @@ -28227,8 +25875,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-11", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-11" }, "id": "60f5c3e399ff1a05629964e4", "title": "Step 11" @@ -28239,8 +25886,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-13", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-13" }, "id": "60f5cb8875ab6a0610f05071", "title": "Step 13" @@ -28251,8 +25897,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-14", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-14" }, "id": "60f5d2776c854e069560fbe6", "title": "Step 14" @@ -28263,8 +25908,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-15", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-15" }, "id": "60f5dc35c07ac1078f140916", "title": "Step 15" @@ -28275,8 +25919,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-16", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-16" }, "id": "60f803d5241e6a0433a523a1", "title": "Step 16" @@ -28287,8 +25930,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-17", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-17" }, "id": "60f805f813eaf2049bc2ceea", "title": "Step 17" @@ -28299,8 +25941,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-19", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-19" }, "id": "60f80e0081e0f2052ae5b505", "title": "Step 19" @@ -28311,8 +25952,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-20", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-20" }, "id": "60f81167d0d4910809f88945", "title": "Step 20" @@ -28323,8 +25963,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-21", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-21" }, "id": "60f81616cff80508badf9ad5", "title": "Step 21" @@ -28335,8 +25974,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-22", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-22" }, "id": "60f83e7bfc09900959f41e20", "title": "Step 22" @@ -28347,8 +25985,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-23", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-23" }, "id": "60f84ec41116b209c280ba91", "title": "Step 23" @@ -28359,8 +25996,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-24", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-24" }, "id": "60f852f645b5310a8264f555", "title": "Step 24" @@ -28371,8 +26007,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-25", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-25" }, "id": "60f85a62fb30c80bcea0cedb", "title": "Step 25" @@ -28383,8 +26018,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-26", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-26" }, "id": "60f8604682407e0d017bbf7f", "title": "Step 26" @@ -28395,8 +26029,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-27", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-27" }, "id": "60f8618d191b940d62038513", "title": "Step 27" @@ -28407,8 +26040,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-28", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-28" }, "id": "60fab4a123ce4b04526b082b", "title": "Step 28" @@ -28419,8 +26051,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-30", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-30" }, "id": "60fab8367d35de04e5cb7929", "title": "Step 30" @@ -28431,8 +26062,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-31", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-31" }, "id": "60fab9f17fa294054b74228c", "title": "Step 31" @@ -28443,8 +26073,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-32", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-32" }, "id": "60fabf0dd4959805dbae09e6", "title": "Step 32" @@ -28455,8 +26084,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-33", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-33" }, "id": "60fac4095512d3066053d73c", "title": "Step 33" @@ -28467,8 +26095,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-34", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-34" }, "id": "60fac56271087806def55b33", "title": "Step 34" @@ -28479,8 +26106,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-35", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-35" }, "id": "60fac8d7fdfaee0796934f20", "title": "Step 35" @@ -28491,8 +26117,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-36", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-36" }, "id": "60faca286cb48b07f6482970", "title": "Step 36" @@ -28503,8 +26128,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-37", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-37" }, "id": "60facde2d0dc61085b41063f", "title": "Step 37" @@ -28515,8 +26139,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-39", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-39" }, "id": "60facf914c7b9b08d7510c2c", "title": "Step 39" @@ -28527,8 +26150,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-40", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-40" }, "id": "60fad0a812d9890938524f50", "title": "Step 40" @@ -28539,8 +26161,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-41", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-41" }, "id": "60fad1cafcde010995e15306", "title": "Step 41" @@ -28551,8 +26172,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-42", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-42" }, "id": "60fad6dfcc0d930a59becf12", "title": "Step 42" @@ -28563,8 +26183,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-43", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-43" }, "id": "60fad8e6148f310bba7890b1", "title": "Step 43" @@ -28575,8 +26194,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-44", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-44" }, "id": "60fad99e09f9d30c1657e790", "title": "Step 44" @@ -28587,8 +26205,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-45", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-45" }, "id": "60fadb18058e950c73925279", "title": "Step 45" @@ -28599,8 +26216,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-46", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-46" }, "id": "60fadce90f85c50d0bb0dd4f", "title": "Step 46" @@ -28611,8 +26227,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-48", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-48" }, "id": "60fadd972e6ffe0d6858fa2d", "title": "Step 48" @@ -28623,8 +26238,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-49", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-49" }, "id": "60fadfa2b540b70dcfa8b771", "title": "Step 49" @@ -28635,8 +26249,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-50", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-50" }, "id": "60fc219d333e37046f474a6e", "title": "Step 50" @@ -28647,8 +26260,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-51", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-51" }, "id": "60fc22d1e64d1b04cdd4e602", "title": "Step 51" @@ -28659,8 +26271,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-52", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-52" }, "id": "60fc236dc04532052926fdac", "title": "Step 52" @@ -28671,8 +26282,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-53", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-53" }, "id": "60ffe1bc30415f042faea936", "title": "Step 53" @@ -28683,8 +26293,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-54", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-54" }, "id": "60ffe3936796ac04959285a9", "title": "Step 54" @@ -28695,8 +26304,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-55", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-55" }, "id": "60ffe4f4ec18cd04dc470c56", "title": "Step 55" @@ -28707,8 +26315,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-56", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-56" }, "id": "60ffe69ee377c6055e192a46", "title": "Step 56" @@ -28719,8 +26326,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-57", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-57" }, "id": "60ffe7d8aae62c05bcc9e7eb", "title": "Step 57" @@ -28731,8 +26337,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-58", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-58" }, "id": "60ffe8a5ceb0e90618db06d9", "title": "Step 58" @@ -28743,8 +26348,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-59", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-59" }, "id": "60ffe947a868ec068f7850f6", "title": "Step 59" @@ -28755,8 +26359,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-60", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-60" }, "id": "60ffe9cb47809106eda2f2c9", "title": "Step 60" @@ -28767,8 +26370,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-61", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-61" }, "id": "60ffec2825da1007509ddd06", "title": "Step 61" @@ -28779,8 +26381,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-62", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-62" }, "id": "60ffecefac971607ae73c60f", "title": "Step 62" @@ -28791,8 +26392,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-63", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-63" }, "id": "60ffefd6479a3d084fb77cbc", "title": "Step 63" @@ -28803,8 +26403,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-47", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-47" }, "id": "62b30924c5e4ef0daba23b5e", "title": "Step 47" @@ -28815,8 +26414,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-5", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-5" }, "id": "62cc5b1779e4d313466f73c5", "title": "Step 5" @@ -28827,8 +26425,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-18", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-18" }, "id": "62ff8b9dab5ac88e4d3d43a3", "title": "Step 18" @@ -28839,8 +26436,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-29", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-29" }, "id": "62ff8e998d3e7eae14d6ae3b", "title": "Step 29" @@ -28851,8 +26447,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-38", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-38" }, "id": "62ff919a7b5612c0670923a5", "title": "Step 38" @@ -28863,8 +26458,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-12", - "blockName": "Learn HTML Forms by Building a Registration Form" + "slug": "/learn/2022/responsive-web-design/learn-html-forms-by-building-a-registration-form/step-12" }, "id": "63541ef4f96cd82e8e6c788a", "title": "Step 12" @@ -28875,8 +26469,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-1", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-1" }, "id": "60b69a66b6ddb80858c51578", "title": "Step 1" @@ -28887,8 +26480,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-2", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-2" }, "id": "60b69a66b6ddb80858c51579", "title": "Step 2" @@ -28899,8 +26491,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-4", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-4" }, "id": "60b69a66b6ddb80858c5157a", "title": "Step 4" @@ -28911,8 +26502,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-5", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-5" }, "id": "60b69a66b6ddb80858c5157b", "title": "Step 5" @@ -28923,8 +26513,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-6", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-6" }, "id": "60b69a66b6ddb80858c5157c", "title": "Step 6" @@ -28935,8 +26524,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-7", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-7" }, "id": "60b69a66b6ddb80858c5157d", "title": "Step 7" @@ -28947,8 +26535,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-8", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-8" }, "id": "60b69a66b6ddb80858c5157e", "title": "Step 8" @@ -28959,8 +26546,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-9", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-9" }, "id": "60b69a66b6ddb80858c5157f", "title": "Step 9" @@ -28971,8 +26557,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-10", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-10" }, "id": "60b69a66b6ddb80858c51580", "title": "Step 10" @@ -28983,8 +26568,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-11", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-11" }, "id": "60b69a66b6ddb80858c51581", "title": "Step 11" @@ -28995,8 +26579,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-12", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-12" }, "id": "60b69a66b6ddb80858c51582", "title": "Step 12" @@ -29007,8 +26590,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-13", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-13" }, "id": "60b69a66b6ddb80858c51583", "title": "Step 13" @@ -29019,8 +26601,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-14", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-14" }, "id": "60b69a66b6ddb80858c51584", "title": "Step 14" @@ -29031,8 +26612,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-15", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-15" }, "id": "60b69a66b6ddb80858c51585", "title": "Step 15" @@ -29043,8 +26623,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-16", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-16" }, "id": "60b69a66b6ddb80858c51586", "title": "Step 16" @@ -29055,8 +26634,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-17", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-17" }, "id": "60b69a66b6ddb80858c51587", "title": "Step 17" @@ -29067,8 +26645,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-18", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-18" }, "id": "60b69a66b6ddb80858c51588", "title": "Step 18" @@ -29079,8 +26656,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-19", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-19" }, "id": "60b69a66b6ddb80858c51589", "title": "Step 19" @@ -29091,8 +26667,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-20", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-20" }, "id": "60b69a66b6ddb80858c5158a", "title": "Step 20" @@ -29103,8 +26678,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-21", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-21" }, "id": "60b69a66b6ddb80858c5158b", "title": "Step 21" @@ -29115,8 +26689,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-22", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-22" }, "id": "60b69a66b6ddb80858c5158c", "title": "Step 22" @@ -29127,8 +26700,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-23", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-23" }, "id": "60b69a66b6ddb80858c5158d", "title": "Step 23" @@ -29139,8 +26711,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-24", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-24" }, "id": "60b69a66b6ddb80858c5158e", "title": "Step 24" @@ -29151,8 +26722,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-25", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-25" }, "id": "60b69a66b6ddb80858c5158f", "title": "Step 25" @@ -29163,8 +26733,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-26", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-26" }, "id": "60b69a66b6ddb80858c51590", "title": "Step 26" @@ -29175,8 +26744,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-27", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-27" }, "id": "60b69a66b6ddb80858c51591", "title": "Step 27" @@ -29187,8 +26755,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-28", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-28" }, "id": "60b69a66b6ddb80858c51592", "title": "Step 28" @@ -29199,8 +26766,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-29", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-29" }, "id": "60b69a66b6ddb80858c51593", "title": "Step 29" @@ -29211,8 +26777,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-30", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-30" }, "id": "60b69a66b6ddb80858c51594", "title": "Step 30" @@ -29223,8 +26788,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-31", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-31" }, "id": "60b69a66b6ddb80858c51595", "title": "Step 31" @@ -29235,8 +26799,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-32", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-32" }, "id": "60b69a66b6ddb80858c51596", "title": "Step 32" @@ -29247,8 +26810,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-33", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-33" }, "id": "60b69a66b6ddb80858c51597", "title": "Step 33" @@ -29259,8 +26821,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-34", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-34" }, "id": "60b69a66b6ddb80858c51598", "title": "Step 34" @@ -29271,8 +26832,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-35", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-35" }, "id": "60b69a66b6ddb80858c51599", "title": "Step 35" @@ -29283,8 +26843,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-36", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-36" }, "id": "60b69a66b6ddb80858c5159a", "title": "Step 36" @@ -29295,8 +26854,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-37", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-37" }, "id": "60b69a66b6ddb80858c5159b", "title": "Step 37" @@ -29307,8 +26865,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-38", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-38" }, "id": "60b69a66b6ddb80858c5159c", "title": "Step 38" @@ -29319,8 +26876,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-39", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-39" }, "id": "60b69a66b6ddb80858c5159d", "title": "Step 39" @@ -29331,8 +26887,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-40", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-40" }, "id": "60b69a66b6ddb80858c5159e", "title": "Step 40" @@ -29343,8 +26898,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-42", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-42" }, "id": "60b69a66b6ddb80858c5159f", "title": "Step 42" @@ -29355,8 +26909,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-43", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-43" }, "id": "60b69a66b6ddb80858c515a0", "title": "Step 43" @@ -29367,8 +26920,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-44", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-44" }, "id": "60b69a66b6ddb80858c515a1", "title": "Step 44" @@ -29379,8 +26931,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-45", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-45" }, "id": "60b69a66b6ddb80858c515a2", "title": "Step 45" @@ -29391,8 +26942,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-46", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-46" }, "id": "60b69a66b6ddb80858c515a3", "title": "Step 46" @@ -29403,8 +26953,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-47", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-47" }, "id": "60b69a66b6ddb80858c515a4", "title": "Step 47" @@ -29415,8 +26964,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-48", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-48" }, "id": "60b69a66b6ddb80858c515a5", "title": "Step 48" @@ -29427,8 +26975,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-49", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-49" }, "id": "60b69a66b6ddb80858c515a6", "title": "Step 49" @@ -29439,8 +26986,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-50", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-50" }, "id": "60b69a66b6ddb80858c515a7", "title": "Step 50" @@ -29451,8 +26997,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-51", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-51" }, "id": "60b69a66b6ddb80858c515a8", "title": "Step 51" @@ -29463,8 +27008,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-52", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-52" }, "id": "60b69a66b6ddb80858c515a9", "title": "Step 52" @@ -29475,8 +27019,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-53", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-53" }, "id": "60b69a66b6ddb80858c515aa", "title": "Step 53" @@ -29487,8 +27030,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-54", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-54" }, "id": "60b69a66b6ddb80858c515ab", "title": "Step 54" @@ -29499,8 +27041,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-55", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-55" }, "id": "60b69a66b6ddb80858c515ac", "title": "Step 55" @@ -29511,8 +27052,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-56", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-56" }, "id": "60b69a66b6ddb80858c515ad", "title": "Step 56" @@ -29523,8 +27063,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-57", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-57" }, "id": "60b69a66b6ddb80858c515ae", "title": "Step 57" @@ -29535,8 +27074,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-58", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-58" }, "id": "60b69a66b6ddb80858c515af", "title": "Step 58" @@ -29547,8 +27085,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-59", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-59" }, "id": "60b69a66b6ddb80858c515b0", "title": "Step 59" @@ -29559,8 +27096,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-60", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-60" }, "id": "60b69a66b6ddb80858c515b1", "title": "Step 60" @@ -29571,8 +27107,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-61", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-61" }, "id": "60b69a66b6ddb80858c515b2", "title": "Step 61" @@ -29583,8 +27118,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-62", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-62" }, "id": "60b69a66b6ddb80858c515b3", "title": "Step 62" @@ -29595,8 +27129,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-63", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-63" }, "id": "60b69a66b6ddb80858c515b4", "title": "Step 63" @@ -29607,8 +27140,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-64", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-64" }, "id": "60b69a66b6ddb80858c515b5", "title": "Step 64" @@ -29619,8 +27151,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-65", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-65" }, "id": "60b69a66b6ddb80858c515b6", "title": "Step 65" @@ -29631,8 +27162,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-66", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-66" }, "id": "60b69a66b6ddb80858c515b7", "title": "Step 66" @@ -29643,8 +27173,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-67", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-67" }, "id": "60b69a66b6ddb80858c515b8", "title": "Step 67" @@ -29655,8 +27184,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-68", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-68" }, "id": "60b69a66b6ddb80858c515b9", "title": "Step 68" @@ -29667,8 +27195,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-69", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-69" }, "id": "60b69a66b6ddb80858c515ba", "title": "Step 69" @@ -29679,8 +27206,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-70", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-70" }, "id": "60b69a66b6ddb80858c515bc", "title": "Step 70" @@ -29691,8 +27217,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-79", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-79" }, "id": "60b69a66b6ddb80858c515bd", "title": "Step 79" @@ -29703,8 +27228,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-80", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-80" }, "id": "60b69a66b6ddb80858c515be", "title": "Step 80" @@ -29715,8 +27239,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-81", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-81" }, "id": "60b69a66b6ddb80858c515bf", "title": "Step 81" @@ -29727,8 +27250,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-82", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-82" }, "id": "60b69a66b6ddb80858c515c0", "title": "Step 82" @@ -29739,8 +27261,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-83", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-83" }, "id": "60b69a66b6ddb80858c515c1", "title": "Step 83" @@ -29751,8 +27272,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-84", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-84" }, "id": "60b69a66b6ddb80858c515c2", "title": "Step 84" @@ -29763,8 +27283,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-85", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-85" }, "id": "60b69a66b6ddb80858c515c3", "title": "Step 85" @@ -29775,8 +27294,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-86", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-86" }, "id": "60b69a66b6ddb80858c515c4", "title": "Step 86" @@ -29787,8 +27305,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-87", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-87" }, "id": "60b69a66b6ddb80858c515c5", "title": "Step 87" @@ -29799,8 +27316,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-88", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-88" }, "id": "60b69a66b6ddb80858c515c6", "title": "Step 88" @@ -29811,8 +27327,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-89", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-89" }, "id": "60b69a66b6ddb80858c515c7", "title": "Step 89" @@ -29823,8 +27338,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-3", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-3" }, "id": "60b80da8676fb3227967a731", "title": "Step 3" @@ -29835,8 +27349,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-75", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-75" }, "id": "60ba890832b4940f24d1936b", "title": "Step 75" @@ -29847,8 +27360,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-74", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-74" }, "id": "60ba89123a445e0f5c9e4022", "title": "Step 74" @@ -29859,8 +27371,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-73", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-73" }, "id": "60ba8913f1704c0f7a8906b8", "title": "Step 73" @@ -29871,8 +27382,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-72", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-72" }, "id": "60ba89146b25080f99ab54ad", "title": "Step 72" @@ -29883,8 +27393,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-71", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-71" }, "id": "60ba8914bab51f0fb8228e9c", "title": "Step 71" @@ -29895,8 +27404,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-76", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-76" }, "id": "60ba929345ab0714a3743655", "title": "Step 76" @@ -29907,8 +27415,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-77", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-77" }, "id": "60ba9296d4d6b414c1b10995", "title": "Step 77" @@ -29919,8 +27426,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-78", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-78" }, "id": "60ba92987c1e4914dfa7a0b9", "title": "Step 78" @@ -29931,8 +27437,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-41", - "blockName": "Learn Intermediate CSS by Building a Picasso Painting" + "slug": "/learn/2022/responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-41" }, "id": "60bad32219ebcb4a8810ac6a", "title": "Step 41" @@ -29943,8 +27448,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-1", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-1" }, "id": "61fd5a93fd62bb35968adeab", "title": "Step 1" @@ -29955,8 +27459,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-2", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-2" }, "id": "61fd6343fb42013d99bcd7f3", "title": "Step 2" @@ -29967,8 +27470,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-3", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-3" }, "id": "61fd66c687e610436494c6f1", "title": "Step 3" @@ -29979,8 +27481,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-4", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-4" }, "id": "61fd67a656743144844941cb", "title": "Step 4" @@ -29991,8 +27492,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-5", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-5" }, "id": "61fd6ab779390f49148773bb", "title": "Step 5" @@ -30003,8 +27503,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-6", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-6" }, "id": "61fd6b7c83dbf54a08cf0498", "title": "Step 6" @@ -30015,8 +27514,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-7", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-7" }, "id": "61fd6cc9475a784b7776233e", "title": "Step 7" @@ -30027,8 +27525,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-8", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-8" }, "id": "61fd70336ebb3e4f62ee81ba", "title": "Step 8" @@ -30039,8 +27536,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-9", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-9" }, "id": "61fd719788899952e67692b9", "title": "Step 9" @@ -30051,8 +27547,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-10", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-10" }, "id": "61fd71d596e8f253b9408b39", "title": "Step 10" @@ -30063,8 +27558,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-11", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-11" }, "id": "61fd75ea7f663457612dba02", "title": "Step 11" @@ -30075,8 +27569,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-12", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-12" }, "id": "61fd7648a7ba2e5882436831", "title": "Step 12" @@ -30087,8 +27580,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-13", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-13" }, "id": "61fd778081276b59d59abad6", "title": "Step 13" @@ -30099,8 +27591,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-14", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-14" }, "id": "61fd77f7ad2aeb5ae34d07d6", "title": "Step 14" @@ -30111,8 +27602,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-15", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-15" }, "id": "61fd78621573aa5e8b512f5e", "title": "Step 15" @@ -30123,8 +27613,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-16", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-16" }, "id": "61fd7a160ed17960e971f28b", "title": "Step 16" @@ -30135,8 +27624,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-17", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-17" }, "id": "61fd7b3fcaa5406257abc5d1", "title": "Step 17" @@ -30147,8 +27635,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-18", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-18" }, "id": "61fd8e491324ce717da97ffe", "title": "Step 18" @@ -30159,8 +27646,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-19", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-19" }, "id": "61fd8fd08af43372f02952d0", "title": "Step 19" @@ -30171,8 +27657,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-20", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-20" }, "id": "61fd9126aa72a474301fc49f", "title": "Step 20" @@ -30183,8 +27668,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-21", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-21" }, "id": "61fd933ba685de776a94997e", "title": "Step 21" @@ -30195,8 +27679,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-22", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-22" }, "id": "61fd94056e0355785fbba4d3", "title": "Step 22" @@ -30207,8 +27690,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-23", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-23" }, "id": "61fd986ddbcbd47ba8fbc5ec", "title": "Step 23" @@ -30219,8 +27701,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-24", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-24" }, "id": "61fd990577d8227dd93fbeeb", "title": "Step 24" @@ -30231,8 +27712,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-25", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-25" }, "id": "61fd9a4ff2fc4481b9157bd7", "title": "Step 25" @@ -30243,8 +27723,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-26", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-26" }, "id": "61fd9ad665a4a282c8106be3", "title": "Step 26" @@ -30255,8 +27734,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-27", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-27" }, "id": "61fd9b7285bde783ad5b8aac", "title": "Step 27" @@ -30267,8 +27745,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-28", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-28" }, "id": "61fd9d9fbdfe078800317055", "title": "Step 28" @@ -30279,8 +27756,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-29", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-29" }, "id": "61fda307bde0b091cf7d884a", "title": "Step 29" @@ -30291,8 +27767,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-30", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-30" }, "id": "61fda339eadcfd92a6812bed", "title": "Step 30" @@ -30303,8 +27778,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-31", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-31" }, "id": "61fdac1e31692f9a9ad97295", "title": "Step 31" @@ -30315,8 +27789,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-32", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-32" }, "id": "61fdaea3999cb19d76ce717b", "title": "Step 32" @@ -30327,8 +27800,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-33", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-33" }, "id": "61fdaf9ff894b6a084ecdc1b", "title": "Step 33" @@ -30339,8 +27811,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-34", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-34" }, "id": "61fdafe6f07fd7a1c6785bc2", "title": "Step 34" @@ -30351,8 +27822,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-35", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-35" }, "id": "61fdb04d9939f0a26ca51c2b", "title": "Step 35" @@ -30363,8 +27833,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-36", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-36" }, "id": "620159cd5431aa34bc6a4c9c", "title": "Step 36" @@ -30375,8 +27844,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-37", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-37" }, "id": "62015a5da1c95c358f079ebb", "title": "Step 37" @@ -30387,8 +27855,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-38", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-38" }, "id": "62015cd2654a1139321a89d2", "title": "Step 38" @@ -30399,8 +27866,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-39", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-39" }, "id": "62015d8942384c3aed48329e", "title": "Step 39" @@ -30411,8 +27877,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-40", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-40" }, "id": "620167374bb8b4455cd11125", "title": "Step 40" @@ -30423,8 +27888,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-41", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-41" }, "id": "620174ed519dd7506c1a4b61", "title": "Step 41" @@ -30435,8 +27899,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-42", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-42" }, "id": "620175b3710a0951cfa86edf", "title": "Step 42" @@ -30447,8 +27910,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-43", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-43" }, "id": "6201782cc420715562f36271", "title": "Step 43" @@ -30459,8 +27921,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-44", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-44" }, "id": "620179bc0a6a2358c72b90ad", "title": "Step 44" @@ -30471,8 +27932,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-45", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-45" }, "id": "62017b6f47454059bf2d3bd1", "title": "Step 45" @@ -30483,8 +27943,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-46", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-46" }, "id": "62017f47c87be96457c49f46", "title": "Step 46" @@ -30495,8 +27954,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-47", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-47" }, "id": "62017fa5bbef406580ceb44f", "title": "Step 47" @@ -30507,8 +27965,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-48", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-48" }, "id": "62018243f046a368fab8ffb6", "title": "Step 48" @@ -30519,8 +27976,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-49", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-49" }, "id": "6201830cb0c74b69f1b41635", "title": "Step 49" @@ -30531,8 +27987,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-50", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-50" }, "id": "620186f4b6b8356d2def576b", "title": "Step 50" @@ -30543,8 +27998,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-51", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-51" }, "id": "62018ba1aa263770c953be66", "title": "Step 51" @@ -30555,8 +28009,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-52", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-52" }, "id": "62018c3e94434a71af1d5eaa", "title": "Step 52" @@ -30567,8 +28020,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-53", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-53" }, "id": "62018ec29b3ae674f40bef31", "title": "Step 53" @@ -30579,8 +28031,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-54", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-54" }, "id": "62019093fe30e278e797d2f6", "title": "Step 54" @@ -30591,8 +28042,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-55", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-55" }, "id": "620191707bc65579ddd3ce15", "title": "Step 55" @@ -30603,8 +28053,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-56", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-56" }, "id": "620192a767533a7ad19d96d7", "title": "Step 56" @@ -30615,8 +28064,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-57", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-57" }, "id": "6201995d9ab88e80f1989dce", "title": "Step 57" @@ -30627,8 +28075,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-58", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-58" }, "id": "620199c7a7a32c81d4db3410", "title": "Step 58" @@ -30639,8 +28086,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-59", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-59" }, "id": "6201a1a7af32c287bd6b8183", "title": "Step 59" @@ -30651,8 +28097,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-60", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-60" }, "id": "6201a1cc668a34888f5b2f52", "title": "Step 60" @@ -30663,8 +28108,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-61", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-61" }, "id": "6201a20d742f5c89736c8cfb", "title": "Step 61" @@ -30675,8 +28119,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-62", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-62" }, "id": "6201a42e39bf3b95b6a33bf3", "title": "Step 62" @@ -30687,8 +28130,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-63", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-63" }, "id": "6201a4adcc6414968b391592", "title": "Step 63" @@ -30699,8 +28141,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-64", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-64" }, "id": "6201a5258af7b398b030bfaf", "title": "Step 64" @@ -30711,8 +28152,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-65", - "blockName": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet" + "slug": "/learn/2022/responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-65" }, "id": "6201a59be346d399c21d10b1", "title": "Step 65" @@ -30723,8 +28163,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-1", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-1" }, "id": "612e6afc009b450a437940a1", "title": "Step 1" @@ -30735,8 +28174,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-2", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-2" }, "id": "612e77aba7ca691f598feb02", "title": "Step 2" @@ -30747,8 +28185,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-3", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-3" }, "id": "612e78af05201622d4bab8aa", "title": "Step 3" @@ -30759,8 +28196,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-4", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-4" }, "id": "612e7d1c29fb872d6384379c", "title": "Step 4" @@ -30771,8 +28207,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-5", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-5" }, "id": "612e804c54d5e7308d7ebe56", "title": "Step 5" @@ -30783,8 +28218,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-6", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-6" }, "id": "612e813b3ba67633222cbe54", "title": "Step 6" @@ -30795,8 +28229,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-7", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-7" }, "id": "612e8279827a28352ce83a72", "title": "Step 7" @@ -30807,8 +28240,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-8", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-8" }, "id": "612e83ec2eca1e370f830511", "title": "Step 8" @@ -30819,8 +28251,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-9", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-9" }, "id": "612e89562043183c86df287c", "title": "Step 9" @@ -30831,8 +28262,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-10", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-10" }, "id": "612e89d254fe5d3df7d6693d", "title": "Step 10" @@ -30843,8 +28273,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-11", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-11" }, "id": "612e8eebe3a6dc3fcc33a66f", "title": "Step 11" @@ -30855,8 +28284,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-12", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-12" }, "id": "612e95ef2e4bdf41f69067f9", "title": "Step 12" @@ -30867,8 +28295,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-13", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-13" }, "id": "612e96fc87fe8e44f69f7ec5", "title": "Step 13" @@ -30879,8 +28306,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-14", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-14" }, "id": "612e98f3245c98475e49cfc6", "title": "Step 14" @@ -30891,8 +28317,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-15", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-15" }, "id": "612e9a21381a1949327512e6", "title": "Step 15" @@ -30903,8 +28328,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-16", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-16" }, "id": "612e9d142affc44a453655db", "title": "Step 16" @@ -30915,8 +28339,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-17", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-17" }, "id": "612e9f1e7e5ccd4fa9ada0be", "title": "Step 17" @@ -30927,8 +28350,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-18", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-18" }, "id": "612ea4c4993aba52ab4aa32e", "title": "Step 18" @@ -30939,8 +28361,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-19", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-19" }, "id": "612ea97df5742154772f312e", "title": "Step 19" @@ -30951,8 +28372,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-20", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-20" }, "id": "612ead8788d28655ef8db056", "title": "Step 20" @@ -30963,8 +28383,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-21", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-21" }, "id": "612eaf56b7ba3257fdbfb0db", "title": "Step 21" @@ -30975,8 +28394,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-22", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-22" }, "id": "612eb4893b63c75bb9251ddf", "title": "Step 22" @@ -30987,8 +28405,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-23", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-23" }, "id": "612eb75153591b5e3b1ab65e", "title": "Step 23" @@ -30999,8 +28416,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-24", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-24" }, "id": "612eb7ca8c275d5f89c73333", "title": "Step 24" @@ -31011,8 +28427,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-25", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-25" }, "id": "612eb8e984cd73677a92b7e9", "title": "Step 25" @@ -31023,8 +28438,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-26", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-26" }, "id": "612eb934f64a4d6890a45518", "title": "Step 26" @@ -31035,8 +28449,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-27", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-27" }, "id": "612ebcba99bfa46a15370b11", "title": "Step 27" @@ -31047,8 +28460,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-28", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-28" }, "id": "612ebe7fe6d07e6b76d1cae2", "title": "Step 28" @@ -31059,8 +28471,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-29", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-29" }, "id": "612ebedec97e096c8bf64999", "title": "Step 29" @@ -31071,8 +28482,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-30", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-30" }, "id": "612ebf9a210f2b6d77001e68", "title": "Step 30" @@ -31083,8 +28493,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-31", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-31" }, "id": "612ec0490ae8626e9adf82e4", "title": "Step 31" @@ -31095,8 +28504,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-32", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-32" }, "id": "612ec19d5268da7074941f84", "title": "Step 32" @@ -31107,8 +28515,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-33", - "blockName": "Learn Responsive Web Design by Building a Piano" + "slug": "/learn/2022/responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-33" }, "id": "612ec29c84b9a6718b1f5cec", "title": "Step 33" @@ -31119,8 +28526,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-1", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-1" }, "id": "60a3e3396c7b40068ad6996a", "title": "Step 1" @@ -31131,8 +28537,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-2", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-2" }, "id": "60a3e3396c7b40068ad6996b", "title": "Step 2" @@ -31143,8 +28548,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-3", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-3" }, "id": "60a3e3396c7b40068ad6996c", "title": "Step 3" @@ -31155,8 +28559,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-4", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-4" }, "id": "60a3e3396c7b40068ad6996d", "title": "Step 4" @@ -31167,8 +28570,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-5", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-5" }, "id": "60a3e3396c7b40068ad6996e", "title": "Step 5" @@ -31179,8 +28581,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-6", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-6" }, "id": "60a3e3396c7b40068ad6996f", "title": "Step 6" @@ -31191,8 +28592,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-7", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-7" }, "id": "60a3e3396c7b40068ad69970", "title": "Step 7" @@ -31203,8 +28603,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-8", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-8" }, "id": "60a3e3396c7b40068ad69971", "title": "Step 8" @@ -31215,8 +28614,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-9", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-9" }, "id": "60a3e3396c7b40068ad69972", "title": "Step 9" @@ -31227,8 +28625,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-10", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-10" }, "id": "60a3e3396c7b40068ad69973", "title": "Step 10" @@ -31239,8 +28636,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-11", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-11" }, "id": "60a3e3396c7b40068ad69974", "title": "Step 11" @@ -31251,8 +28647,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-12", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-12" }, "id": "60a3e3396c7b40068ad69975", "title": "Step 12" @@ -31263,8 +28658,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-13", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-13" }, "id": "60a3e3396c7b40068ad69976", "title": "Step 13" @@ -31275,8 +28669,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-14", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-14" }, "id": "60a3e3396c7b40068ad69977", "title": "Step 14" @@ -31287,8 +28680,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-15", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-15" }, "id": "60a3e3396c7b40068ad69978", "title": "Step 15" @@ -31299,8 +28691,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-16", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-16" }, "id": "60a3e3396c7b40068ad69979", "title": "Step 16" @@ -31311,8 +28702,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-17", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-17" }, "id": "60a3e3396c7b40068ad6997a", "title": "Step 17" @@ -31323,8 +28713,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-18", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-18" }, "id": "60a3e3396c7b40068ad6997b", "title": "Step 18" @@ -31335,8 +28724,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-19", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-19" }, "id": "60a3e3396c7b40068ad6997c", "title": "Step 19" @@ -31347,8 +28735,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-20", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-20" }, "id": "60a3e3396c7b40068ad6997d", "title": "Step 20" @@ -31359,8 +28746,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-21", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-21" }, "id": "60a3e3396c7b40068ad6997e", "title": "Step 21" @@ -31371,8 +28757,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-22", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-22" }, "id": "60a3e3396c7b40068ad6997f", "title": "Step 22" @@ -31383,8 +28768,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-23", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-23" }, "id": "60a3e3396c7b40068ad69980", "title": "Step 23" @@ -31395,8 +28779,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-24", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-24" }, "id": "60a3e3396c7b40068ad69981", "title": "Step 24" @@ -31407,8 +28790,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-25", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-25" }, "id": "60a3e3396c7b40068ad69982", "title": "Step 25" @@ -31419,8 +28801,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-26", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-26" }, "id": "60a3e3396c7b40068ad69983", "title": "Step 26" @@ -31431,8 +28812,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-27", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-27" }, "id": "60a3e3396c7b40068ad69984", "title": "Step 27" @@ -31443,8 +28823,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-28", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-28" }, "id": "60a3e3396c7b40068ad69986", "title": "Step 28" @@ -31455,8 +28834,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-29", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-29" }, "id": "60a3e3396c7b40068ad69987", "title": "Step 29" @@ -31467,8 +28845,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-30", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-30" }, "id": "60a3e3396c7b40068ad69988", "title": "Step 30" @@ -31479,8 +28856,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-31", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-31" }, "id": "60a3e3396c7b40068ad69989", "title": "Step 31" @@ -31491,8 +28867,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-32", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-32" }, "id": "60a3e3396c7b40068ad6998a", "title": "Step 32" @@ -31503,8 +28878,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-33", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-33" }, "id": "60a3e3396c7b40068ad6998b", "title": "Step 33" @@ -31515,8 +28889,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-34", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-34" }, "id": "60a3e3396c7b40068ad6998c", "title": "Step 34" @@ -31527,8 +28900,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-35", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-35" }, "id": "60a3e3396c7b40068ad6998d", "title": "Step 35" @@ -31539,8 +28911,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-36", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-36" }, "id": "60a3e3396c7b40068ad6998e", "title": "Step 36" @@ -31551,8 +28922,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-37", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-37" }, "id": "60a3e3396c7b40068ad6998f", "title": "Step 37" @@ -31563,8 +28933,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-38", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-38" }, "id": "60a3e3396c7b40068ad69990", "title": "Step 38" @@ -31575,8 +28944,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-39", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-39" }, "id": "60a3e3396c7b40068ad69991", "title": "Step 39" @@ -31587,8 +28955,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-40", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-40" }, "id": "60a3e3396c7b40068ad69992", "title": "Step 40" @@ -31599,8 +28966,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-41", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-41" }, "id": "60a3e3396c7b40068ad69993", "title": "Step 41" @@ -31611,8 +28977,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-42", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-42" }, "id": "60a3e3396c7b40068ad69994", "title": "Step 42" @@ -31623,8 +28988,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-43", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-43" }, "id": "60a3e3396c7b40068ad69995", "title": "Step 43" @@ -31635,8 +28999,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-44", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-44" }, "id": "60a3e3396c7b40068ad69996", "title": "Step 44" @@ -31647,8 +29010,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-45", - "blockName": "Learn the CSS Box Model by Building a Rothko Painting" + "slug": "/learn/2022/responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-45" }, "id": "60a3e3396c7b40068ad69997", "title": "Step 45" @@ -31659,8 +29021,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-1", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-1" }, "id": "615f2abbe7d18d49a1e0e1c8", "title": "Step 1" @@ -31671,8 +29032,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-2", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-2" }, "id": "615f2d4150fe0d4cbd0f2628", "title": "Step 2" @@ -31683,8 +29043,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-3", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-3" }, "id": "615f34948891834dd77655a6", "title": "Step 3" @@ -31695,8 +29054,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-4", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-4" }, "id": "615f34ecc1091b4fd5a8a484", "title": "Step 4" @@ -31707,8 +29065,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-5", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-5" }, "id": "615f357957e370510f21ea16", "title": "Step 5" @@ -31719,8 +29076,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-6", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-6" }, "id": "615f378014c2da526a109c81", "title": "Step 6" @@ -31731,8 +29087,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-7", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-7" }, "id": "615f38279e5c3d53692ea441", "title": "Step 7" @@ -31743,8 +29098,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-8", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-8" }, "id": "615f38cabc64e3556f98cc1a", "title": "Step 8" @@ -31755,8 +29109,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-9", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-9" }, "id": "615f3949f58e12577dcefb00", "title": "Step 9" @@ -31767,8 +29120,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-10", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-10" }, "id": "615f39d7da41b15851fa3fb9", "title": "Step 10" @@ -31779,8 +29131,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-11", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-11" }, "id": "615f3b091162165948e1cb33", "title": "Step 11" @@ -31791,8 +29142,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-12", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-12" }, "id": "615f3cafd794015aa9547a6d", "title": "Step 12" @@ -31803,8 +29153,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-13", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-13" }, "id": "615f3d9e59db4b5b8e960762", "title": "Step 13" @@ -31815,8 +29164,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-14", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-14" }, "id": "615f3e1b7233ee5c7595771f", "title": "Step 14" @@ -31827,8 +29175,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-15", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-15" }, "id": "615f3e4af8008c5d494d3afe", "title": "Step 15" @@ -31839,8 +29186,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-16", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-16" }, "id": "615f3ed16592445e57941aec", "title": "Step 16" @@ -31851,8 +29197,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-17", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-17" }, "id": "615f405b89a7ec5f8e2d11f4", "title": "Step 17" @@ -31863,8 +29208,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-18", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-18" }, "id": "615f40b01f680e608d360ed4", "title": "Step 18" @@ -31875,8 +29219,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-19", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-19" }, "id": "615f4172e9eec061d6456221", "title": "Step 19" @@ -31887,8 +29230,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-20", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-20" }, "id": "615f41c979787462e76dab90", "title": "Step 20" @@ -31899,8 +29241,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-21", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-21" }, "id": "615f423cf65d5864132a0956", "title": "Step 21" @@ -31911,8 +29252,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-22", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-22" }, "id": "615f42a021625f656101ef93", "title": "Step 22" @@ -31923,8 +29263,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-23", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-23" }, "id": "615f4bfb9de4a16703b56eb6", "title": "Step 23" @@ -31935,8 +29274,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-24", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-24" }, "id": "615f4ce9d877b668417c0c42", "title": "Step 24" @@ -31947,8 +29285,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-25", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-25" }, "id": "615f4dde9d72e3694cb9ee3b", "title": "Step 25" @@ -31959,8 +29296,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-26", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-26" }, "id": "615f4ec58334106a4170c2a8", "title": "Step 26" @@ -31971,8 +29307,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-27", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-27" }, "id": "615f4f9e4a40566b776a8f38", "title": "Step 27" @@ -31983,8 +29318,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-28", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-28" }, "id": "615f50473cc0196c6dd3892a", "title": "Step 28" @@ -31995,8 +29329,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-29", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-29" }, "id": "615f51257a8a516d80b6c743", "title": "Step 29" @@ -32007,8 +29340,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-30", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-30" }, "id": "615f51e4e5b24a6e80eccce1", "title": "Step 30" @@ -32019,8 +29351,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-31", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-31" }, "id": "615f522dea4f776f64dc3e91", "title": "Step 31" @@ -32031,8 +29362,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-32", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-32" }, "id": "615f5486b8fd4b71633f69b0", "title": "Step 32" @@ -32043,8 +29373,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-33", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-33" }, "id": "615f575b50b91e72af079480", "title": "Step 33" @@ -32055,8 +29384,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-34", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-34" }, "id": "615f5af373a68e744a3c5a76", "title": "Step 34" @@ -32067,8 +29395,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-35", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-35" }, "id": "615f5c1cb7575c7551ed8a40", "title": "Step 35" @@ -32079,8 +29406,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-36", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-36" }, "id": "615f5fd85d0062761f288364", "title": "Step 36" @@ -32091,8 +29417,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-37", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-37" }, "id": "615f61338c8ca176d6445574", "title": "Step 37" @@ -32103,8 +29428,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-38", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-38" }, "id": "615f666ac5edea782feb7e75", "title": "Step 38" @@ -32115,8 +29439,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-39", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-39" }, "id": "615f671b6d1919792745aa5d", "title": "Step 39" @@ -32127,8 +29450,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-40", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-40" }, "id": "615f6823d0815b7a991f2a75", "title": "Step 40" @@ -32139,8 +29461,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-41", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-41" }, "id": "615f6a7d4ba8037bc086c2c7", "title": "Step 41" @@ -32151,8 +29472,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-42", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-42" }, "id": "615f6b2d164f81809efd9bdc", "title": "Step 42" @@ -32163,8 +29483,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-43", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-43" }, "id": "615f6cc778f7698258467596", "title": "Step 43" @@ -32175,8 +29494,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-44", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-44" }, "id": "615f6fddaac1e083502d3e6a", "title": "Step 44" @@ -32187,8 +29505,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-45", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-45" }, "id": "615f70077a4ff98424236c1e", "title": "Step 45" @@ -32199,8 +29516,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-46", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-46" }, "id": "615f72a872354a850d4f533e", "title": "Step 46" @@ -32211,8 +29527,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-47", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-47" }, "id": "615f74a71f1e498619e38ee8", "title": "Step 47" @@ -32223,8 +29538,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-48", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-48" }, "id": "615f7ad94380408d971d14f6", "title": "Step 48" @@ -32235,8 +29549,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-49", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-49" }, "id": "615f7bc680f7168ea01ebf99", "title": "Step 49" @@ -32247,8 +29560,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-50", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-50" }, "id": "615f7c71eab8218f846e4503", "title": "Step 50" @@ -32259,8 +29571,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-51", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-51" }, "id": "615f7d489a581590d1350288", "title": "Step 51" @@ -32271,8 +29582,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-52", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-52" }, "id": "615f7de4487b64919bb4aa5e", "title": "Step 52" @@ -32283,8 +29593,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-53", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-53" }, "id": "615f7e7281626a92bbd62da8", "title": "Step 53" @@ -32295,8 +29604,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-54", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-54" }, "id": "615f7ecb09de9a938ef94756", "title": "Step 54" @@ -32307,8 +29615,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-55", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-55" }, "id": "615f7fa959ab75948f96a0d6", "title": "Step 55" @@ -32319,8 +29626,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-56", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-56" }, "id": "615f808d85793195b0f53be9", "title": "Step 56" @@ -32331,8 +29637,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-57", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-57" }, "id": "615f829d07b18f96f6f6684b", "title": "Step 57" @@ -32343,8 +29648,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-58", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-58" }, "id": "615f83ef928ec9982b785b6a", "title": "Step 58" @@ -32355,8 +29659,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-59", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-59" }, "id": "615f84f246e8ba98e3cd97be", "title": "Step 59" @@ -32367,8 +29670,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-60", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-60" }, "id": "615f887466db4ba14b5342cc", "title": "Step 60" @@ -32379,8 +29681,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-61", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-61" }, "id": "615f89e055040ba294719d2f", "title": "Step 61" @@ -32391,8 +29692,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-62", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-62" }, "id": "615f8bfe0f30a1a3c340356b", "title": "Step 62" @@ -32403,8 +29703,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-63", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-63" }, "id": "615f8f1223601fa546e93f31", "title": "Step 63" @@ -32415,8 +29714,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-64", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-64" }, "id": "615f905fbd1017a65ca224eb", "title": "Step 64" @@ -32427,8 +29725,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-65", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-65" }, "id": "615f94786869e1a7fec54375", "title": "Step 65" @@ -32439,8 +29736,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-66", - "blockName": "Learn Typography by Building a Nutrition Label" + "slug": "/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-66" }, "id": "615f951dff9317a900ef683f", "title": "Step 66" @@ -32451,8 +29747,7 @@ "node": { "challenge": { "fields": { - "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-23", - "blockName": "Learn CSS Transforms by Building a Penguin" + "slug": "/learn/2022/responsive-web-design/learn-css-transforms-by-building-a-penguin/step-23" }, "id": "6196d1ac33c68d27dcda5796", "title": "Step 23" diff --git a/client/src/components/profile/components/time-line.tsx b/client/src/components/profile/components/time-line.tsx index 7f896a1837e..73e0c6aa884 100644 --- a/client/src/components/profile/components/time-line.tsx +++ b/client/src/components/profile/components/time-line.tsx @@ -254,9 +254,9 @@ function useIdToNameMap(t: TFunction): Map { edges { node { challenge { + block fields { slug - blockName } id superBlock @@ -281,6 +281,8 @@ function useIdToNameMap(t: TFunction): Map { ({ node: { challenge: { + // @ts-expect-error Graphql needs typing + block, // @ts-expect-error Graphql needs typing id, // @ts-expect-error Graphql needs typing @@ -288,13 +290,13 @@ function useIdToNameMap(t: TFunction): Map { // @ts-expect-error Graphql needs typing title, // @ts-expect-error Graphql needs typing - fields: { slug, blockName }, + fields: { slug }, // @ts-expect-error Graphql needs typing hasEditableBoundaries } } }) => { - const blockNameTitle = t(`intro:${superBlock}.blocks.${blockName}.title`); + const blockNameTitle = t(`intro:${superBlock}.blocks.${block}.title`); const shouldAppendBlockNameToTitle = hasEditableBoundaries || superBlock === SuperBlocks.A2English; idToNameMap.set(id, { diff --git a/client/src/redux/prop-types.ts b/client/src/redux/prop-types.ts index 6100c2439d2..78f6af19aa3 100644 --- a/client/src/redux/prop-types.ts +++ b/client/src/redux/prop-types.ts @@ -54,8 +54,6 @@ export type FillInTheBlank = { export type Fields = { slug: string; blockHashSlug: string; - blockName: string; - tests: Test[]; }; type Required = { link: string; @@ -293,10 +291,7 @@ export type DailyCodingChallengeNode = { helpCategory: 'JavaScript' | 'Python'; challengeType: 28 | 29; - fields: { - blockName: 'daily-coding-challenge'; - tests: Test[]; - }; + tests: Test[]; challengeFiles: ChallengeFiles; // props to satisfy the show classic component diff --git a/client/src/templates/Challenges/classic/show.tsx b/client/src/templates/Challenges/classic/show.tsx index 50a62b96347..8aa05a35e01 100644 --- a/client/src/templates/Challenges/classic/show.tsx +++ b/client/src/templates/Challenges/classic/show.tsx @@ -203,7 +203,7 @@ function ShowClassic({ description, instructions, hooks, - fields: { tests, blockName }, + tests, challengeType, hasEditableBoundaries = false, superBlock, @@ -317,7 +317,7 @@ function ShowClassic({ // Independent lower jaw is only enabled for the urriculum outline workshop const showIndependentLowerJaw = - blockName === 'workshop-curriculum-outline' && + block === 'workshop-curriculum-outline' && isIndependentLowerJawEnabled && !isMobile; @@ -547,7 +547,7 @@ function ShowClassic({ @@ -596,12 +596,7 @@ export const query = graphql` afterAll } fields { - blockName slug - tests { - text - testString - } } required { link @@ -618,6 +613,10 @@ export const query = graphql` editableRegionBoundaries history } + tests { + text + testString + } } } } diff --git a/client/src/templates/Challenges/codeally/show.tsx b/client/src/templates/Challenges/codeally/show.tsx index 16026f62410..8c391f46ac8 100644 --- a/client/src/templates/Challenges/codeally/show.tsx +++ b/client/src/templates/Challenges/codeally/show.tsx @@ -137,7 +137,7 @@ function ShowCodeAlly({ challenge: { block, challengeType, - fields: { tests }, + tests, description, helpCategory, id: challengeId, @@ -385,12 +385,6 @@ export const query = graphql` challengeNode(id: { eq: $id }) { challenge { block - fields { - tests { - text - testString - } - } challengeType description helpCategory @@ -398,6 +392,10 @@ export const query = graphql` instructions notes superBlock + tests { + text + testString + } title translationPending url diff --git a/client/src/templates/Challenges/components/preview.tsx b/client/src/templates/Challenges/components/preview.tsx index 110822c7357..d7d164ef594 100644 --- a/client/src/templates/Challenges/components/preview.tsx +++ b/client/src/templates/Challenges/components/preview.tsx @@ -38,10 +38,7 @@ function Preview({ const id = previewId ?? mainPreviewId; return ( -
+