+
{t('learn.percent-complete', {
percent: this.state.shownPercent
})}
void;
block: string;
blockName: string;
+ certification: string;
+ challengeType: number;
close: () => void;
completedChallengesIds: string[];
currentBlockIds?: string[];
@@ -275,34 +283,83 @@ export class CompletionModalInner extends Component<
}
}
-const useCurrentBlockIds = (blockName: string) => {
+interface Options {
+ isCertificationBlock: boolean;
+}
+
+interface CertificateNode {
+ challenge: {
+ // TODO: use enum
+ certification: string;
+ tests: { id: string }[];
+ };
+}
+
+const useCurrentBlockIds = (
+ block: string,
+ certification: string,
+ options?: Options
+) => {
const {
- allChallengeNode: { edges }
- }: { allChallengeNode: AllChallengeNode } = useStaticQuery(graphql`
+ allChallengeNode: { edges: challengeEdges },
+ allCertificateNode: { nodes: certificateNodes }
+ }: {
+ allChallengeNode: AllChallengeNode;
+ allCertificateNode: { nodes: CertificateNode[] };
+ } = useStaticQuery(graphql`
query getCurrentBlockNodes {
- allChallengeNode(sort: { fields: [superOrder, order, challengeOrder] }) {
+ allChallengeNode(
+ sort: {
+ fields: [
+ challenge___superOrder
+ challenge___order
+ challenge___challengeOrder
+ ]
+ }
+ ) {
edges {
node {
- fields {
- blockName
+ challenge {
+ block
+ id
+ }
+ }
+ }
+ }
+ allCertificateNode {
+ nodes {
+ challenge {
+ certification
+ tests {
+ id
}
- id
}
}
}
}
`);
- const currentBlockIds = edges
- .filter(edge => edge.node.fields.blockName === blockName)
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
- .map(edge => edge.node.id);
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
- return currentBlockIds;
+ const currentCertificateIds = certificateNodes
+ .filter(
+ node => dasherize(node.challenge.certification) === certification
+ )[0]
+ ?.challenge.tests.map(test => test.id);
+ const currentBlockIds = challengeEdges
+ .filter(edge => edge.node.challenge.block === block)
+ .map(edge => edge.node.challenge.id);
+
+ return options?.isCertificationBlock
+ ? currentCertificateIds
+ : currentBlockIds;
};
const CompletionModal = (props: CompletionModalsProps) => {
- const currentBlockIds = useCurrentBlockIds(props.blockName || '');
+ const currentBlockIds = useCurrentBlockIds(
+ props.block || '',
+ props.certification || '',
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
+ { isCertificationBlock: isProject(props.challengeType) }
+ );
return
;
};
diff --git a/client/src/templates/Challenges/projects/backend/Show.tsx b/client/src/templates/Challenges/projects/backend/Show.tsx
index 4e4fb9cc95..dabb085dcb 100644
--- a/client/src/templates/Challenges/projects/backend/Show.tsx
+++ b/client/src/templates/Challenges/projects/backend/Show.tsx
@@ -123,16 +123,20 @@ class BackEnd extends Component
{
const {
data: {
challengeNode: {
- title: prevTitle,
- fields: { tests: prevTests }
+ challenge: {
+ title: prevTitle,
+ fields: { tests: prevTests }
+ }
}
}
} = prevProps;
const {
data: {
challengeNode: {
- title: currentTitle,
- fields: { tests: currTests }
+ challenge: {
+ title: currentTitle,
+ fields: { tests: currTests }
+ }
}
}
} = this.props;
@@ -149,10 +153,12 @@ class BackEnd extends Component {
updateChallengeMeta,
data: {
challengeNode: {
- fields: { tests },
- title,
- challengeType,
- helpCategory
+ challenge: {
+ fields: { tests },
+ title,
+ challengeType,
+ helpCategory
+ }
}
},
pageContext: { challengeMeta }
@@ -182,15 +188,18 @@ class BackEnd extends Component {
const {
data: {
challengeNode: {
- fields: { blockName },
- challengeType,
- forumTopicId,
- title,
- description,
- instructions,
- translationPending,
- superBlock,
- block
+ challenge: {
+ fields: { blockName },
+ challengeType,
+ forumTopicId,
+ title,
+ description,
+ instructions,
+ translationPending,
+ certification,
+ superBlock,
+ block
+ }
}
},
isChallengeCompleted,
@@ -258,6 +267,7 @@ class BackEnd extends Component {
@@ -278,22 +288,25 @@ export default connect(
export const query = graphql`
query BackendChallenge($slug: String!) {
- challengeNode(fields: { slug: { eq: $slug } }) {
- forumTopicId
- title
- description
- instructions
- challengeType
- helpCategory
- superBlock
- block
- translationPending
- fields {
- blockName
- slug
- tests {
- text
- testString
+ challengeNode(challenge: { fields: { slug: { eq: $slug } } }) {
+ challenge {
+ forumTopicId
+ title
+ description
+ instructions
+ challengeType
+ helpCategory
+ certification
+ superBlock
+ block
+ translationPending
+ fields {
+ blockName
+ slug
+ tests {
+ text
+ testString
+ }
}
}
}
diff --git a/client/src/templates/Challenges/projects/frontend/Show.tsx b/client/src/templates/Challenges/projects/frontend/Show.tsx
index 2b3905a39b..9ada016c22 100644
--- a/client/src/templates/Challenges/projects/frontend/Show.tsx
+++ b/client/src/templates/Challenges/projects/frontend/Show.tsx
@@ -76,7 +76,9 @@ class Project extends Component {
const {
challengeMounted,
data: {
- challengeNode: { title, challengeType, helpCategory }
+ challengeNode: {
+ challenge: { title, challengeType, helpCategory }
+ }
},
pageContext: { challengeMeta },
updateChallengeMeta
@@ -94,13 +96,17 @@ class Project extends Component {
componentDidUpdate(prevProps: ProjectProps): void {
const {
data: {
- challengeNode: { title: prevTitle }
+ challengeNode: {
+ challenge: { title: prevTitle }
+ }
}
} = prevProps;
const {
challengeMounted,
data: {
- challengeNode: { title: currentTitle, challengeType, helpCategory }
+ challengeNode: {
+ challenge: { title: currentTitle, challengeType, helpCategory }
+ }
},
pageContext: { challengeMeta },
updateChallengeMeta
@@ -130,15 +136,18 @@ class Project extends Component {
const {
data: {
challengeNode: {
- challengeType,
- fields: { blockName },
- forumTopicId,
- title,
- description,
- instructions,
- superBlock,
- block,
- translationPending
+ challenge: {
+ challengeType,
+ fields: { blockName },
+ forumTopicId,
+ title,
+ description,
+ instructions,
+ superBlock,
+ certification,
+ block,
+ translationPending
+ }
}
},
isChallengeCompleted,
@@ -195,6 +204,7 @@ class Project extends Component {
@@ -215,19 +225,22 @@ export default connect(
export const query = graphql`
query ProjectChallenge($slug: String!) {
- challengeNode(fields: { slug: { eq: $slug } }) {
- forumTopicId
- title
- description
- instructions
- challengeType
- helpCategory
- superBlock
- block
- translationPending
- fields {
- blockName
- slug
+ challengeNode(challenge: { fields: { slug: { eq: $slug } } }) {
+ challenge {
+ forumTopicId
+ title
+ description
+ instructions
+ challengeType
+ helpCategory
+ superBlock
+ certification
+ block
+ translationPending
+ fields {
+ blockName
+ slug
+ }
}
}
}
diff --git a/client/src/templates/Challenges/rechallenge/builders.js b/client/src/templates/Challenges/rechallenge/builders.js
index 38ad633ee0..3ea596c579 100644
--- a/client/src/templates/Challenges/rechallenge/builders.js
+++ b/client/src/templates/Challenges/rechallenge/builders.js
@@ -91,7 +91,7 @@ A required file can not have both a src and a link: src = ${src}, link = ${link}
}
return '';
})
- .reduce((head, element) => head.concat(element), []);
+ .join('\n');
const indexHtml = findIndexHtml(challengeFiles);
diff --git a/client/src/templates/Challenges/redux/action-types.js b/client/src/templates/Challenges/redux/action-types.js
index 5b37a40cfc..d7488e90b0 100644
--- a/client/src/templates/Challenges/redux/action-types.js
+++ b/client/src/templates/Challenges/redux/action-types.js
@@ -40,8 +40,6 @@ export const actionTypes = createTypes(
'stopResetting',
'submitChallenge',
- 'moveToTab',
-
'setEditorFocusability',
'toggleVisibleEditor'
],
diff --git a/client/src/templates/Challenges/redux/completion-epic.js b/client/src/templates/Challenges/redux/completion-epic.js
index 808e4ef2cd..d044a2ee7f 100644
--- a/client/src/templates/Challenges/redux/completion-epic.js
+++ b/client/src/templates/Challenges/redux/completion-epic.js
@@ -1,4 +1,5 @@
import { navigate } from 'gatsby';
+import { omit } from 'lodash-es';
import { ofType } from 'redux-observable';
import { of, empty } from 'rxjs';
import {
@@ -35,16 +36,20 @@ import {
function postChallenge(update, username) {
const saveChallenge = postUpdate$(update).pipe(
retry(3),
- switchMap(({ points }) =>
- of(
+ switchMap(({ points }) => {
+ const payloadWithClientProperties = {
+ ...omit(update.payload, ['files']),
+ challengeFiles: update.payload.files ?? null
+ };
+ return of(
submitComplete({
username,
points,
- ...update.payload
+ ...payloadWithClientProperties
}),
updateComplete()
- )
- ),
+ );
+ }),
catchError(() => of(updateFailed(update)))
);
return saveChallenge;
@@ -141,7 +146,8 @@ export default function completionEpic(action$, state$) {
switchMap(({ type }) => {
const state = state$.value;
const meta = challengeMetaSelector(state);
- const { nextChallengePath, challengeType, superBlock } = meta;
+ const { nextChallengePath, challengeType, superBlock, certification } =
+ meta;
const closeChallengeModal = of(closeModal('completion'));
let submitter = () => of({ type: 'no-user-signed-in' });
@@ -160,6 +166,7 @@ export default function completionEpic(action$, state$) {
const pathToNavigateTo = async () => {
return await findPathToNavigateTo(
+ certification,
nextChallengePath,
superBlock,
state,
@@ -177,6 +184,7 @@ export default function completionEpic(action$, state$) {
}
async function findPathToNavigateTo(
+ certification,
nextChallengePath,
superBlock,
state,
@@ -191,7 +199,7 @@ async function findPathToNavigateTo(
if (isProjectSubmission) {
const username = usernameSelector(state);
try {
- const response = await getVerifyCanClaimCert(username, superBlock);
+ const response = await getVerifyCanClaimCert(username, certification);
if (response.status === 200) {
canClaimCert = response.data?.response?.message === 'can-claim-cert';
}
diff --git a/client/src/templates/Challenges/redux/index.js b/client/src/templates/Challenges/redux/index.js
index 28d80012cf..7577a902f0 100644
--- a/client/src/templates/Challenges/redux/index.js
+++ b/client/src/templates/Challenges/redux/index.js
@@ -120,8 +120,6 @@ export const resetChallenge = createAction(actionTypes.resetChallenge);
export const stopResetting = createAction(actionTypes.stopResetting);
export const submitChallenge = createAction(actionTypes.submitChallenge);
-export const moveToTab = createAction(actionTypes.moveToTab);
-
export const setEditorFocusability = createAction(
actionTypes.setEditorFocusability
);
@@ -344,10 +342,6 @@ export const reducer = handleActions(
[payload]: true
}
}),
- [actionTypes.moveToTab]: (state, { payload }) => ({
- ...state,
- currentTab: payload
- }),
[actionTypes.executeChallenge]: state => ({
...state,
currentTab: 3
diff --git a/client/src/templates/Challenges/video/Show.tsx b/client/src/templates/Challenges/video/Show.tsx
index 677da5c5a0..ecf7bda07b 100644
--- a/client/src/templates/Challenges/video/Show.tsx
+++ b/client/src/templates/Challenges/video/Show.tsx
@@ -97,7 +97,9 @@ class ShowVideo extends Component {
const {
challengeMounted,
data: {
- challengeNode: { title, challengeType, helpCategory }
+ challengeNode: {
+ challenge: { title, challengeType, helpCategory }
+ }
},
pageContext: { challengeMeta },
updateChallengeMeta
@@ -115,13 +117,17 @@ class ShowVideo extends Component {
componentDidUpdate(prevProps: ShowVideoProps): void {
const {
data: {
- challengeNode: { title: prevTitle }
+ challengeNode: {
+ challenge: { title: prevTitle }
+ }
}
} = prevProps;
const {
challengeMounted,
data: {
- challengeNode: { title: currentTitle, challengeType, helpCategory }
+ challengeNode: {
+ challenge: { title: currentTitle, challengeType, helpCategory }
+ }
},
pageContext: { challengeMeta },
updateChallengeMeta
@@ -169,16 +175,19 @@ class ShowVideo extends Component {
const {
data: {
challengeNode: {
- fields: { blockName },
- title,
- description,
- superBlock,
- block,
- translationPending,
- videoId,
- videoLocaleIds,
- bilibiliIds,
- question: { text, answers, solution }
+ challenge: {
+ fields: { blockName },
+ title,
+ description,
+ superBlock,
+ certification,
+ block,
+ translationPending,
+ videoId,
+ videoLocaleIds,
+ bilibiliIds,
+ question: { text, answers, solution }
+ }
}
},
openCompletionModal,
@@ -294,6 +303,7 @@ class ShowVideo extends Component {
@@ -313,34 +323,37 @@ export default connect(
export const query = graphql`
query VideoChallenge($slug: String!) {
- challengeNode(fields: { slug: { eq: $slug } }) {
- videoId
- videoLocaleIds {
- espanol
- italian
- portuguese
+ challengeNode(challenge: { fields: { slug: { eq: $slug } } }) {
+ challenge {
+ videoId
+ videoLocaleIds {
+ espanol
+ italian
+ portuguese
+ }
+ bilibiliIds {
+ aid
+ bvid
+ cid
+ }
+ title
+ description
+ challengeType
+ helpCategory
+ superBlock
+ certification
+ block
+ fields {
+ blockName
+ slug
+ }
+ question {
+ text
+ answers
+ solution
+ }
+ translationPending
}
- bilibiliIds {
- aid
- bvid
- cid
- }
- title
- description
- challengeType
- helpCategory
- superBlock
- block
- fields {
- blockName
- slug
- }
- question {
- text
- answers
- solution
- }
- translationPending
}
}
`;
diff --git a/client/src/templates/Introduction/components/block.tsx b/client/src/templates/Introduction/components/block.tsx
index 6d0db6050f..20b52cb67e 100644
--- a/client/src/templates/Introduction/components/block.tsx
+++ b/client/src/templates/Introduction/components/block.tsx
@@ -101,7 +101,7 @@ export class Block extends Component {
} = this.props;
let completedCount = 0;
- const challengesWithCompleted = challenges.map(challenge => {
+ const challengesWithCompleted = challenges.map(({ challenge }) => {
const { id } = challenge;
const isCompleted = completedChallengeIds.some(
(completedChallengeId: string) => completedChallengeId === id
@@ -112,7 +112,7 @@ export class Block extends Component {
return { ...challenge, isCompleted };
});
- const isProjectBlock = challenges.some(challenge => {
+ const isProjectBlock = challenges.some(({ challenge }) => {
const isJsProject =
challenge.order === 10 && challenge.challengeType === 5;
@@ -136,12 +136,10 @@ export class Block extends Component {
const blockIntroArr = blockIntroObj ? blockIntroObj.intro : [];
const {
expand: expandText,
- collapse: collapseText,
- courses: coursesText
+ collapse: collapseText
}: {
expand: string;
collapse: string;
- courses: string;
} = t('intro:misc-text');
return isProjectBlock ? (
@@ -203,9 +201,7 @@ export class Block extends Component {
>
- {`${
- isExpanded ? collapseText : expandText
- } ${coursesText.toLowerCase()}`}
+ {`${isExpanded ? collapseText : expandText}`}
{this.renderCheckMark(
diff --git a/client/src/templates/Introduction/components/cert-challenge.tsx b/client/src/templates/Introduction/components/cert-challenge.tsx
index 3cfd947466..ad10d13807 100644
--- a/client/src/templates/Introduction/components/cert-challenge.tsx
+++ b/client/src/templates/Introduction/components/cert-challenge.tsx
@@ -23,6 +23,8 @@ import { getVerifyCanClaimCert } from '../../../utils/ajax';
import CertificationCard from './certification-card';
interface CertChallengeProps {
+ // TODO: create enum/reuse SuperBlocks enum somehow
+ certification: string;
createFlashMessage: typeof createFlashMessage;
fetchState: {
pending: boolean;
@@ -63,6 +65,7 @@ const mapDispatchToProps = {
};
const CertChallenge = ({
+ certification,
createFlashMessage,
steps = {},
superBlock,
@@ -90,13 +93,23 @@ const CertChallenge = ({
if (username) {
void (async () => {
try {
- const data = await getVerifyCanClaimCert(username, superBlock);
- const { status, result } = data?.response?.message;
- setCanClaimCert(status);
- setCertVerificationMessage(result);
- setVerificationComplete(true);
+ const data = await getVerifyCanClaimCert(username, certification);
+ if (data?.message) {
+ setCanClaimCert(false);
+ createFlashMessage(data.message);
+ } else {
+ const { status, result } = data?.response?.message;
+ setCanClaimCert(status);
+ setCertVerificationMessage(result);
+ }
} catch (e) {
- // TODO: How do we handle errors...?
+ console.error(e);
+ createFlashMessage({
+ type: 'danger',
+ message: FlashMessages.ReallyWeird
+ });
+ } finally {
+ setVerificationComplete(true);
}
})();
}
diff --git a/client/src/templates/Introduction/components/certification-card.tsx b/client/src/templates/Introduction/components/certification-card.tsx
index 56a78da61f..807d1d3c03 100644
--- a/client/src/templates/Introduction/components/certification-card.tsx
+++ b/client/src/templates/Introduction/components/certification-card.tsx
@@ -37,12 +37,10 @@ const CertificationCard = ({
const {
expand: expandText,
- collapse: collapseText,
- courses: coursesText
+ collapse: collapseText
}: {
expand: string;
collapse: string;
- courses: string;
} = t('intro:misc-text');
return (
@@ -65,9 +63,7 @@ const CertificationCard = ({
>
- {`${
- isExpanded ? collapseText : expandText
- } ${coursesText.toLowerCase()}`}
+ {`${isExpanded ? collapseText : expandText}`}
{completedCount === numberOfSteps ? (
diff --git a/client/src/templates/Introduction/intro.tsx b/client/src/templates/Introduction/intro.tsx
index 5dfd6a78ab..aadb8d8854 100644
--- a/client/src/templates/Introduction/intro.tsx
+++ b/client/src/templates/Introduction/intro.tsx
@@ -21,7 +21,7 @@ function renderMenuItems({
edges?: Array<{ node: ChallengeNode }>;
}) {
return edges
- .map(({ node }) => node)
+ .map(({ node: { challenge } }) => challenge)
.map(({ title, fields: { slug } }) => (
{title}
@@ -42,7 +42,8 @@ function IntroductionPage({
html,
frontmatter: { block }
} = markdownRemark;
- const firstLesson = allChallengeNode && allChallengeNode.edges[0].node;
+ const firstLesson =
+ allChallengeNode && allChallengeNode.edges[0].node.challenge;
const firstLessonPath = firstLesson
? firstLesson.fields.slug
: '/strange-place';
@@ -97,15 +98,23 @@ export const query = graphql`
html
}
allChallengeNode(
- filter: { block: { eq: $block } }
- sort: { fields: [superOrder, order, challengeOrder] }
+ filter: { challenge: { block: { eq: $block } } }
+ sort: {
+ fields: [
+ challenge___superOrder
+ challenge___order
+ challenge___challengeOrder
+ ]
+ }
) {
edges {
node {
- fields {
- slug
+ challenge {
+ fields {
+ slug
+ }
+ title
}
- title
}
}
}
diff --git a/client/src/templates/Introduction/super-block-intro.tsx b/client/src/templates/Introduction/super-block-intro.tsx
index cf9a9702c8..21f5224d96 100644
--- a/client/src/templates/Introduction/super-block-intro.tsx
+++ b/client/src/templates/Introduction/super-block-intro.tsx
@@ -141,15 +141,15 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
if (isSignedIn) {
// see if currentChallenge is in this superBlock
const currentChallengeEdge = edges.find(
- edge => edge.node.id === currentChallengeId
+ edge => edge.node.challenge.id === currentChallengeId
);
return currentChallengeEdge
- ? currentChallengeEdge.node.block
- : edge.node.block;
+ ? currentChallengeEdge.node.challenge.block
+ : edge.node.challenge.block;
}
- return edge.node.block;
+ return edge.node.challenge.block;
};
const initializeExpandedState = () => {
@@ -162,7 +162,7 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
const {
data: {
markdownRemark: {
- frontmatter: { superBlock, title }
+ frontmatter: { superBlock, title, certification }
},
allChallengeNode: { edges }
},
@@ -173,7 +173,10 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
} = props;
const nodesForSuperBlock = edges.map(({ node }) => node);
- const blockDashedNames = uniq(nodesForSuperBlock.map(({ block }) => block));
+ const blockDashedNames = uniq(
+ nodesForSuperBlock.map(({ challenge: { block } }) => block)
+ );
+
const i18nSuperBlock = t(`intro:${superBlock}.title`);
const i18nTitle =
superBlock === SuperBlocks.CodingInterviewPrep
@@ -182,6 +185,8 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
cert: i18nSuperBlock
});
+ const defaultCurriculumNames = blockDashedNames;
+
return (
<>
@@ -201,12 +206,12 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
- {blockDashedNames.map(blockDashedName => (
+ {defaultCurriculumNames.map(blockDashedName => (
node.block === blockDashedName
+ node => node.challenge.block === blockDashedName
)}
superBlock={superBlock}
/>
@@ -216,6 +221,7 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
{superBlock !== SuperBlocks.CodingInterviewPrep && (
{
return get(
- `/certificate/verify-can-claim-cert?username=${username}&superBlock=${superBlock}`
+ `/certificate/verify-can-claim-cert?username=${username}&superBlock=${certification}`
);
}
diff --git a/client/src/utils/algolia-locale-setup.ts b/client/src/utils/algolia-locale-setup.ts
index 5cbec735b1..8d9b3728a4 100644
--- a/client/src/utils/algolia-locale-setup.ts
+++ b/client/src/utils/algolia-locale-setup.ts
@@ -21,12 +21,16 @@ const algoliaIndices = {
name: 'news-zh',
searchPage: 'https://chinese.freecodecamp.org/news/search'
},
- // TODO: Replace with i18n pages when shipped
italian: {
- name: 'news',
- searchPage: 'https://www.freecodecamp.org/news/search/'
+ name: 'news-it',
+ searchPage: 'https://www.freecodecamp.org/italian/news/search/'
},
portuguese: {
+ name: 'news-pt',
+ searchPage: 'https://www.freecodecamp.org/portuguese/news/search/'
+ },
+ // TODO: Replace with Ukrainian news when we have more useful resources on that instance
+ ukrainian: {
name: 'news',
searchPage: 'https://www.freecodecamp.org/news/search/'
}
diff --git a/client/utils/challenge-types.js b/client/utils/challenge-types.js
index 9e6e173e2e..0713ea6cff 100644
--- a/client/utils/challenge-types.js
+++ b/client/utils/challenge-types.js
@@ -36,6 +36,18 @@ exports.challengeTypes = {
codeally
};
+// (Oliver) I don't think we need this for codeally projects, so they're ignored
+// here
+exports.isProject = challengeType => {
+ if (typeof challengeType !== 'number')
+ throw Error('challengeType must be a number');
+ return (
+ challengeType === frontEndProject ||
+ challengeType === backEndProject ||
+ challengeType === pythonProject
+ );
+};
+
// turn challengeType to file ext
exports.pathsMap = {
[html]: 'html',
diff --git a/client/utils/gatsby/challenge-page-creator.js b/client/utils/gatsby/challenge-page-creator.js
index e48509f591..d611665c77 100644
--- a/client/utils/gatsby/challenge-page-creator.js
+++ b/client/utils/gatsby/challenge-page-creator.js
@@ -45,12 +45,12 @@ const views = {
function getNextChallengePath(_node, index, nodeArray) {
const next = nodeArray[index + 1];
- return next ? next.node.fields.slug : '/learn';
+ return next ? next.node.challenge.fields.slug : '/learn';
}
function getPrevChallengePath(_node, index, nodeArray) {
const prev = nodeArray[index - 1];
- return prev ? prev.node.fields.slug : '/learn';
+ return prev ? prev.node.challenge.fields.slug : '/learn';
}
function getTemplateComponent(challengeType) {
@@ -58,8 +58,9 @@ function getTemplateComponent(challengeType) {
}
exports.createChallengePages = function (createPage) {
- return function ({ node: challenge }, index, allChallengeEdges) {
+ return function ({ node: { challenge } }, index, allChallengeEdges) {
const {
+ certification,
superBlock,
block,
fields: { slug },
@@ -76,6 +77,7 @@ exports.createChallengePages = function (createPage) {
component: getTemplateComponent(challengeType),
context: {
challengeMeta: {
+ certification,
superBlock,
block,
template,
@@ -103,8 +105,8 @@ function getProjectPreviewConfig(challenge, allChallengeEdges) {
const { block, challengeOrder, usesMultifileEditor } = challenge;
const challengesInBlock = allChallengeEdges
- .filter(({ node }) => node.block === block)
- .map(({ node }) => node);
+ .filter(({ node: { challenge } }) => challenge.block === block)
+ .map(({ node: { challenge } }) => challenge);
const lastChallenge = challengesInBlock[challengesInBlock.length - 1];
const solutionToLastChallenge = sortChallengeFiles(
lastChallenge.solutions[0] ?? []
@@ -152,13 +154,23 @@ exports.createSuperBlockIntroPages = function (createPage) {
return function (edge) {
const {
fields: { slug },
- frontmatter: { superBlock }
+ frontmatter: { superBlock, certification }
} = edge.node;
+ if (!certification) {
+ throw Error(
+ `superBlockIntro page, '${superBlock}' must have certification in frontmatter`
+ );
+ }
+
+ // TODO: throw if it encounters an unknown certification. Also, handle
+ // coding-interview-prep. it's not a certification, but it is a superBlock.
+
createPage({
path: slug,
component: superBlockIntro,
context: {
+ certification,
superBlock,
slug
}
diff --git a/client/utils/help-category-map.json b/client/utils/help-category-map.json
index 7e70f99142..c117e0e80d 100644
--- a/client/utils/help-category-map.json
+++ b/client/utils/help-category-map.json
@@ -79,6 +79,7 @@
"learn-github-by-building-a-list-of-inspirational-quotes": "Relational Databases",
"number-guessing-game": "Relational Databases",
"learn-accessibility-by-building-a-quiz": "HTML-CSS",
+ "learn-css-colors-by-building-a-color-markers-set": "HTML-CSS",
"learn-html-forms-by-building-a-registration-form": "HTML-CSS",
"learn-css-animation-by-building-a-ferris-wheel": "HTML-CSS",
"learn-css-flexbox-by-building-a-photo-gallery": "HTML-CSS",
@@ -86,5 +87,9 @@
"learn-css-transforms-by-building-a-penguin": "HTML-CSS",
"learn-typography-by-building-a-nutrition-label": "HTML-CSS",
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": "HTML-CSS",
- "learn-css-colors-by-building-a-color-markers-set": "HTML-CSS"
+ "build-a-personal-portfolio-webpage-project": "HTML-CSS",
+ "build-a-product-landing-page-project": "HTML-CSS",
+ "build-a-survey-form-project": "HTML-CSS",
+ "build-a-technical-documentation-page-project": "HTML-CSS",
+ "build-a-tribute-page-project": "HTML-CSS"
}
diff --git a/config/certification-settings.ts b/config/certification-settings.ts
index ff0409c81a..4b8cb6d32a 100644
--- a/config/certification-settings.ts
+++ b/config/certification-settings.ts
@@ -113,7 +113,11 @@ export const superBlockCertTypeMap = {
[SuperBlocks.SciCompPy]: certTypes.sciCompPyV7,
[SuperBlocks.DataAnalysisPy]: certTypes.dataAnalysisPyV7,
[SuperBlocks.MachineLearningPy]: certTypes.machineLearningPyV7,
- [SuperBlocks.RelationalDb]: certTypes.relationalDatabasesV8
+ [SuperBlocks.RelationalDb]: certTypes.relationalDatabasesV8,
+
+ // post-modern
+ // TODO: use enum
+ 'responsive-web-design-22': certTypes.respWebDesign
};
export const certTypeIdMap = {
diff --git a/config/i18n/all-langs.ts b/config/i18n/all-langs.ts
index b2eba86d7b..667e03a8c3 100644
--- a/config/i18n/all-langs.ts
+++ b/config/i18n/all-langs.ts
@@ -15,7 +15,8 @@ export const availableLangs = {
'chinese',
'chinese-traditional',
'italian',
- 'portuguese'
+ 'portuguese',
+ 'ukrainian'
],
curriculum: [
'english',
@@ -23,7 +24,8 @@ export const availableLangs = {
'chinese',
'chinese-traditional',
'italian',
- 'portuguese'
+ 'portuguese',
+ 'ukrainian'
]
};
@@ -92,6 +94,20 @@ export const auditedCerts = {
SuperBlocks.MachineLearningPy,
SuperBlocks.CodingInterviewPrep,
SuperBlocks.RelationalDb
+ ],
+ ukrainian: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy,
+ SuperBlocks.CodingInterviewPrep,
+ SuperBlocks.RelationalDb
]
};
@@ -109,7 +125,8 @@ export const i18nextCodes = {
chinese: 'zh',
'chinese-traditional': 'zh-Hant',
italian: 'it',
- portuguese: 'pt-BR'
+ portuguese: 'pt-BR',
+ ukrainian: 'uk'
};
// These are for the language selector dropdown menu in the footer
@@ -119,7 +136,8 @@ export const langDisplayNames = {
chinese: '中文(简体字)',
'chinese-traditional': '中文(繁體字)',
italian: 'Italiano',
- portuguese: 'Português'
+ portuguese: 'Português',
+ ukrainian: 'Українська'
};
/* These are for formatting dates and numbers. Used with JS .toLocaleString().
@@ -132,5 +150,6 @@ export const langCodes = {
chinese: 'zh',
'chinese-traditional': 'zh-Hant',
italian: 'it',
- portuguese: 'pt-BR'
+ portuguese: 'pt-BR',
+ ukrainian: 'uk'
};
diff --git a/curriculum/challenges/_meta/advanced-node-and-express/meta.json b/curriculum/challenges/_meta/advanced-node-and-express/meta.json
index f4b486be17..70b21a8d6a 100644
--- a/curriculum/challenges/_meta/advanced-node-and-express/meta.json
+++ b/curriculum/challenges/_meta/advanced-node-and-express/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "quality-assurance",
- "superOrder": 6,
"challengeOrder": [
[
"5895f700f9fc0f352b528e63",
diff --git a/curriculum/challenges/_meta/algorithms/meta.json b/curriculum/challenges/_meta/algorithms/meta.json
index e1472c08ff..6a032c862f 100644
--- a/curriculum/challenges/_meta/algorithms/meta.json
+++ b/curriculum/challenges/_meta/algorithms/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
- "superOrder": 11,
"challengeOrder": [
[
"a3f503de51cf954ede28891d",
@@ -44,5 +43,9 @@
[
"587d825c367417b2b2512c8f",
"Implement Merge Sort"
+ ],
+ [
+ "61abc7ebf3029b56226de5b6",
+ "Implement Binary Search"
]
]}
diff --git a/curriculum/challenges/_meta/applied-accessibility/meta.json b/curriculum/challenges/_meta/applied-accessibility/meta.json
index fe736d9e60..b0242507e7 100644
--- a/curriculum/challenges/_meta/applied-accessibility/meta.json
+++ b/curriculum/challenges/_meta/applied-accessibility/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"587d774c367417b2b2512a9c",
diff --git a/curriculum/challenges/_meta/applied-visual-design/meta.json b/curriculum/challenges/_meta/applied-visual-design/meta.json
index 10628457de..8377a93085 100644
--- a/curriculum/challenges/_meta/applied-visual-design/meta.json
+++ b/curriculum/challenges/_meta/applied-visual-design/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"587d7791367417b2b2512ab3",
diff --git a/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json b/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json
index b98c47331b..2bd4ace104 100644
--- a/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json
+++ b/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json
@@ -5,7 +5,6 @@
"order": 3,
"time": "150 hours",
"superBlock": "back-end-development-and-apis",
- "superOrder": 5,
"challengeOrder": [
[
"bd7158d8c443edefaeb5bdef",
diff --git a/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json b/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json
index 13ae51c2c5..9e3d3e3e4b 100644
--- a/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json
+++ b/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"56533eb9ac21ba0edf2244b3",
diff --git a/curriculum/challenges/_meta/basic-css/meta.json b/curriculum/challenges/_meta/basic-css/meta.json
index 7588a3366c..ed2d3447ef 100644
--- a/curriculum/challenges/_meta/basic-css/meta.json
+++ b/curriculum/challenges/_meta/basic-css/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"bad87fee1348bd9aedf08803",
diff --git a/curriculum/challenges/_meta/basic-data-structures/meta.json b/curriculum/challenges/_meta/basic-data-structures/meta.json
index cf6faa9741..4a53c0ce37 100644
--- a/curriculum/challenges/_meta/basic-data-structures/meta.json
+++ b/curriculum/challenges/_meta/basic-data-structures/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7b7e367417b2b2512b20",
diff --git a/curriculum/challenges/_meta/basic-html-and-html5/meta.json b/curriculum/challenges/_meta/basic-html-and-html5/meta.json
index 75958d960b..98791626c6 100644
--- a/curriculum/challenges/_meta/basic-html-and-html5/meta.json
+++ b/curriculum/challenges/_meta/basic-html-and-html5/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"bd7123c8c441eddfaeb5bdef",
diff --git a/curriculum/challenges/_meta/basic-javascript-rpg-game/meta.json b/curriculum/challenges/_meta/basic-javascript-rpg-game/meta.json
index 2290767470..f8df0d0480 100644
--- a/curriculum/challenges/_meta/basic-javascript-rpg-game/meta.json
+++ b/curriculum/challenges/_meta/basic-javascript-rpg-game/meta.json
@@ -2,13 +2,13 @@
"name": "Basic JavaScript RPG Game",
"isUpcomingChange": true,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "basic-javascript-rpg-game",
"order": 10,
"time": "2 hours",
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"isBeta": true,
"challengeOrder": [
[
diff --git a/curriculum/challenges/_meta/basic-javascript/meta.json b/curriculum/challenges/_meta/basic-javascript/meta.json
index 3ddf7324f9..6c58d20dd3 100644
--- a/curriculum/challenges/_meta/basic-javascript/meta.json
+++ b/curriculum/challenges/_meta/basic-javascript/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"bd7123c9c441eddfaeb4bdef",
diff --git a/curriculum/challenges/_meta/basic-node-and-express/meta.json b/curriculum/challenges/_meta/basic-node-and-express/meta.json
index 9f83d0bf11..8fccbfe5a8 100644
--- a/curriculum/challenges/_meta/basic-node-and-express/meta.json
+++ b/curriculum/challenges/_meta/basic-node-and-express/meta.json
@@ -5,7 +5,6 @@
"order": 1,
"time": "5 hours",
"superBlock": "back-end-development-and-apis",
- "superOrder": 5,
"challengeOrder": [
[
"587d7fb0367417b2b2512bed",
diff --git a/curriculum/challenges/_meta/bootstrap/meta.json b/curriculum/challenges/_meta/bootstrap/meta.json
index 38a9de6012..a445f13f32 100644
--- a/curriculum/challenges/_meta/bootstrap/meta.json
+++ b/curriculum/challenges/_meta/bootstrap/meta.json
@@ -11,7 +11,6 @@
}
],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"bad87fee1348bd9acde08712",
diff --git a/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json b/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json
new file mode 100644
index 0000000000..e918d82787
--- /dev/null
+++ b/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json
@@ -0,0 +1,14 @@
+{
+ "name": "Build a Personal Portfolio Webpage Project",
+ "isUpcomingChange": false,
+ "order": 19,
+ "time": "30 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "challengeOrder": [
+ [
+ "bd7158d8c242eddfaeb5bd13",
+ "Build a Personal Portfolio Webpage"
+ ]
+ ]}
diff --git a/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json b/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json
new file mode 100644
index 0000000000..8c4914320c
--- /dev/null
+++ b/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json
@@ -0,0 +1,14 @@
+{
+ "name": "Build a Product Landing Page Project",
+ "isUpcomingChange": false,
+ "order": 16,
+ "time": "30 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "challengeOrder": [
+ [
+ "587d78af367417b2b2512b04",
+ "Build a Product Landing Page"
+ ]
+ ]}
diff --git a/curriculum/challenges/_meta/build-a-survey-form-project/meta.json b/curriculum/challenges/_meta/build-a-survey-form-project/meta.json
new file mode 100644
index 0000000000..4ec29f7fc9
--- /dev/null
+++ b/curriculum/challenges/_meta/build-a-survey-form-project/meta.json
@@ -0,0 +1,14 @@
+{
+ "name": "Build a Survey Form Project",
+ "isUpcomingChange": false,
+ "order": 4,
+ "time": "30 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "challengeOrder": [
+ [
+ "587d78af367417b2b2512b03",
+ "Build a Survey Form"
+ ]
+ ]}
diff --git a/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json b/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json
new file mode 100644
index 0000000000..87fd6b3427
--- /dev/null
+++ b/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json
@@ -0,0 +1,14 @@
+{
+ "name": "Build a Technical Documentation Page Project",
+ "isUpcomingChange": false,
+ "order": 13,
+ "time": "30 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "challengeOrder": [
+ [
+ "587d78b0367417b2b2512b05",
+ "Build a Technical Documentation Page"
+ ]
+ ]}
diff --git a/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json b/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json
new file mode 100644
index 0000000000..0cd6595ccc
--- /dev/null
+++ b/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json
@@ -0,0 +1,14 @@
+{
+ "name": "Build a Tribute Page Project",
+ "isUpcomingChange": false,
+ "order": 9,
+ "time": "30 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "challengeOrder": [
+ [
+ "bd7158d8c442eddfaeb5bd18",
+ "Build a Tribute Page"
+ ]
+ ]}
diff --git a/curriculum/challenges/_meta/css-flexbox/meta.json b/curriculum/challenges/_meta/css-flexbox/meta.json
index 443b731e1d..801cc94bda 100644
--- a/curriculum/challenges/_meta/css-flexbox/meta.json
+++ b/curriculum/challenges/_meta/css-flexbox/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"587d78ab367417b2b2512af0",
diff --git a/curriculum/challenges/_meta/css-grid/meta.json b/curriculum/challenges/_meta/css-grid/meta.json
index b3b6a05bd4..2b2c9851a2 100644
--- a/curriculum/challenges/_meta/css-grid/meta.json
+++ b/curriculum/challenges/_meta/css-grid/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"5a858944d96184f06fd60d61",
diff --git a/curriculum/challenges/_meta/d3-dashboard/meta.json b/curriculum/challenges/_meta/d3-dashboard/meta.json
index fcc015e22d..f9f5c6e26b 100644
--- a/curriculum/challenges/_meta/d3-dashboard/meta.json
+++ b/curriculum/challenges/_meta/d3-dashboard/meta.json
@@ -2,6 +2,7 @@
"name": "D3 Dashboard",
"isUpcomingChange": true,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "d3-dashboard",
"order": 3,
"time": "5 hours",
@@ -12,7 +13,6 @@
}
],
"superBlock": "data-visualization",
- "superOrder": 3,
"challengeOrder": [
[
"5d8a4cfbe6b6180ed9a1c9de",
diff --git a/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json b/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json
index 9e12e855d5..3f3c16fb84 100644
--- a/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json
+++ b/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "data-analysis-with-python",
- "superOrder": 8,
"challengeOrder": [
[
"5e9a093a74c4063ca6f7c14c",
diff --git a/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json b/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json
index 4b278b79ba..f9b65cb74d 100644
--- a/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json
+++ b/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json
@@ -5,7 +5,6 @@
"order": 2,
"time": "150 hours",
"superBlock": "data-analysis-with-python",
- "superOrder": 8,
"challengeOrder": [
[
"5e46f7e5ac417301a38fb928",
diff --git a/curriculum/challenges/_meta/data-structures/meta.json b/curriculum/challenges/_meta/data-structures/meta.json
index 70435b85e8..f3416838d6 100644
--- a/curriculum/challenges/_meta/data-structures/meta.json
+++ b/curriculum/challenges/_meta/data-structures/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
- "superOrder": 11,
"challengeOrder": [
[
"587d8253367417b2b2512c6a",
diff --git a/curriculum/challenges/_meta/data-visualization-projects/meta.json b/curriculum/challenges/_meta/data-visualization-projects/meta.json
index 2a0d30ada5..4e4646beda 100644
--- a/curriculum/challenges/_meta/data-visualization-projects/meta.json
+++ b/curriculum/challenges/_meta/data-visualization-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "data-visualization",
- "superOrder": 3,
"challengeOrder": [
[
"bd7168d8c242eddfaeb5bd13",
diff --git a/curriculum/challenges/_meta/data-visualization-with-d3/meta.json b/curriculum/challenges/_meta/data-visualization-with-d3/meta.json
index 98aea4b2d6..71b68b7816 100644
--- a/curriculum/challenges/_meta/data-visualization-with-d3/meta.json
+++ b/curriculum/challenges/_meta/data-visualization-with-d3/meta.json
@@ -11,7 +11,6 @@
}
],
"superBlock": "data-visualization",
- "superOrder": 3,
"challengeOrder": [
["587d7fa6367417b2b2512bc2", "Add Document Elements with D3"],
["587d7fa6367417b2b2512bc3", "Select a Group of Elements with D3"],
diff --git a/curriculum/challenges/_meta/debugging/meta.json b/curriculum/challenges/_meta/debugging/meta.json
index dda04007d5..ac4ebdd875 100644
--- a/curriculum/challenges/_meta/debugging/meta.json
+++ b/curriculum/challenges/_meta/debugging/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7b83367417b2b2512b33",
diff --git a/curriculum/challenges/_meta/es6/meta.json b/curriculum/challenges/_meta/es6/meta.json
index cb64aa55c8..fa11e53c13 100644
--- a/curriculum/challenges/_meta/es6/meta.json
+++ b/curriculum/challenges/_meta/es6/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7b87367417b2b2512b40",
diff --git a/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json b/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json
index 1a619ae5ce..da95c741f4 100644
--- a/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json
+++ b/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"bd7158d8c442eddfaeb5bd13",
diff --git a/curriculum/challenges/_meta/functional-programming-spreadsheet/meta.json b/curriculum/challenges/_meta/functional-programming-spreadsheet/meta.json
index 699412c7d6..87a0f9be04 100644
--- a/curriculum/challenges/_meta/functional-programming-spreadsheet/meta.json
+++ b/curriculum/challenges/_meta/functional-programming-spreadsheet/meta.json
@@ -2,13 +2,13 @@
"name": "Functional Programming Spreadsheet",
"isUpcomingChange": true,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "functional-programming-spreadsheet",
"order": 12,
"time": "2 hours",
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"isBeta": true,
"challengeOrder": [
[
diff --git a/curriculum/challenges/_meta/functional-programming/meta.json b/curriculum/challenges/_meta/functional-programming/meta.json
index 8f6e16dce3..f66cec96cb 100644
--- a/curriculum/challenges/_meta/functional-programming/meta.json
+++ b/curriculum/challenges/_meta/functional-programming/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7b8d367417b2b2512b5b",
diff --git a/curriculum/challenges/_meta/how-neural-networks-work/meta.json b/curriculum/challenges/_meta/how-neural-networks-work/meta.json
index 312606b0f0..ef4b26308c 100644
--- a/curriculum/challenges/_meta/how-neural-networks-work/meta.json
+++ b/curriculum/challenges/_meta/how-neural-networks-work/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "machine-learning-with-python",
- "superOrder": 10,
"challengeOrder": [
[
"5e9a0e9ef99a403d019610ca",
diff --git a/curriculum/challenges/_meta/information-security-projects/meta.json b/curriculum/challenges/_meta/information-security-projects/meta.json
index 8cbbf5579d..ffd3dd18a2 100644
--- a/curriculum/challenges/_meta/information-security-projects/meta.json
+++ b/curriculum/challenges/_meta/information-security-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "information-security",
- "superOrder": 9,
"challengeOrder": [
[
"587d824a367417b2b2512c44",
diff --git a/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json b/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json
index fe06f1364c..11aef89254 100644
--- a/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json
+++ b/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "information-security",
- "superOrder": 9,
"challengeOrder": [
[
"587d8247367417b2b2512c36",
diff --git a/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json b/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json
index 1a768f9a60..ec326942ba 100644
--- a/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json
+++ b/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"a3566b1109230028080c9345",
diff --git a/curriculum/challenges/_meta/intermediate-javascript-calorie-counter/meta.json b/curriculum/challenges/_meta/intermediate-javascript-calorie-counter/meta.json
index e42df9ec3b..e5f984a42f 100644
--- a/curriculum/challenges/_meta/intermediate-javascript-calorie-counter/meta.json
+++ b/curriculum/challenges/_meta/intermediate-javascript-calorie-counter/meta.json
@@ -2,13 +2,13 @@
"name": "Intermediate JavaScript Calorie Counter",
"isUpcomingChange": true,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "intermediate-javascript-calorie-counter",
"order": 11,
"time": "2 hours",
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"5ddb965c65d27e1512d44d9a",
diff --git a/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json b/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json
index 99d79245c0..5589df7551 100644
--- a/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json
+++ b/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"aaa48de84e1ecc7c742e1124",
diff --git a/curriculum/challenges/_meta/jquery/meta.json b/curriculum/challenges/_meta/jquery/meta.json
index 31fb7943cc..82675a180a 100644
--- a/curriculum/challenges/_meta/jquery/meta.json
+++ b/curriculum/challenges/_meta/jquery/meta.json
@@ -11,7 +11,6 @@
}
],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"bad87fee1348bd9acdd08826",
diff --git a/curriculum/challenges/_meta/json-apis-and-ajax/meta.json b/curriculum/challenges/_meta/json-apis-and-ajax/meta.json
index 5d13766cb3..f7d8b24f9a 100644
--- a/curriculum/challenges/_meta/json-apis-and-ajax/meta.json
+++ b/curriculum/challenges/_meta/json-apis-and-ajax/meta.json
@@ -11,7 +11,6 @@
}
],
"superBlock": "data-visualization",
- "superOrder": 3,
"challengeOrder": [
[
"587d7fad367417b2b2512be1",
diff --git a/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json b/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json
index f3206de957..215661fd51 100644
--- a/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json
+++ b/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn Accessibility by Building a Quiz",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-accessibility-by-building-a-quiz",
- "order": 42,
+ "order": 8,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"614ccc21ea91ef1736b9b578",
diff --git a/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json b/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json
index 89f4f58cc5..508484ff52 100644
--- a/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json
+++ b/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json
@@ -1,14 +1,14 @@
{
"name": "Learn Basic CSS by Building a Cafe Menu",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-basic-css-by-building-a-cafe-menu",
- "order": 10,
+ "order": 1,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"isBeta": true,
"challengeOrder": [
[
diff --git a/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json b/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json
index b453f5ff9b..152ffc00df 100644
--- a/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json
+++ b/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn CSS Animation by Building a Ferris Wheel",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-css-animation-by-building-a-ferris-wheel",
- "order": 15,
+ "order": 18,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"6140c7e645d8e905819f1dd4",
diff --git a/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json b/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json
index fc85269266..f9740afcb8 100644
--- a/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json
+++ b/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn CSS Flexbox by Building a Photo Gallery",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-css-flexbox-by-building-a-photo-gallery",
- "order": 20,
+ "order": 6,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"61537485c4f2a624f18d7794",
diff --git a/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json b/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json
index 2ad433081b..4ac40e9fcd 100644
--- a/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json
+++ b/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn CSS Grid by Building a Magazine",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-css-grid-by-building-a-magazine",
- "order": 16,
+ "order": 15,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"61437d575fb98f57fa8f7f36",
diff --git a/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json
index 9243b878d7..0408f93721 100644
--- a/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json
+++ b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn CSS Transforms by Building a Penguin",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-css-transforms-by-building-a-penguin",
- "order": 47,
+ "order": 17,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 1,
- "isBeta": true,
"challengeOrder": [
[
"619665c9abd72906f3ad30f9",
@@ -428,4 +427,4 @@
"Step 104"
]
]
-}
\ No newline at end of file
+}
diff --git a/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json b/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json
index 97f9c7ca0d..745a6b264d 100644
--- a/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json
+++ b/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json
@@ -1,14 +1,14 @@
{
"name": "Learn CSS Variables by Building a City Skyline",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-css-variables-by-building-a-city-skyline",
- "order": 8,
+ "order": 14,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"5d822fd413a79914d39e98c9",
diff --git a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
index 8c09f3cf87..666c848edd 100644
--- a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
+++ b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn HTML by Building a Cat Photo App",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-html-by-building-a-cat-photo-app",
- "order": 9,
+ "order": 0,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"5dc174fcf86c76b9248c6eb2",
diff --git a/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json b/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json
index b180c971a0..7cee8710a1 100644
--- a/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json
+++ b/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn HTML Forms by Building a Registration Form",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-html-forms-by-building-a-registration-form",
- "order": 23,
+ "order": 3,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"60eebd07ea685b0e777b5583",
diff --git a/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json b/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json
index 7f238ddc3d..e3fd9540bf 100644
--- a/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json
+++ b/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn Intermediate CSS by Building a Picasso Painting",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-intermediate-css-by-building-a-picasso-painting",
"order": 11,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"60b69a66b6ddb80858c51578",
diff --git a/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json b/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json
index f023fedd9e..17afe8cd25 100644
--- a/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json
+++ b/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn More About CSS Pseudo Selectors By Building A Balance Sheet",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet",
- "order": 43,
+ "order": 10,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 1,
- "isBeta": true,
"challengeOrder": [
[
"6193d8081ec2531581ea7b98",
diff --git a/curriculum/challenges/_meta/learn-relational-databases/meta.json b/curriculum/challenges/_meta/learn-relational-databases/meta.json
index bd1221db00..8860e4d943 100644
--- a/curriculum/challenges/_meta/learn-relational-databases/meta.json
+++ b/curriculum/challenges/_meta/learn-relational-databases/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "relational-databases",
- "superOrder": 4,
"challengeOrder": [
[
"5ea8adfab628f68d805bfc5e",
diff --git a/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json b/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json
index 457782a676..0c2bcb9f36 100644
--- a/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json
+++ b/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn Responsive Web Design by Building a Piano",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-responsive-web-design-by-building-a-piano",
- "order": 13,
+ "order": 12,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"612e6afc009b450a437940a1",
diff --git a/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json b/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json
index ebd21cc8eb..6f660b77c6 100644
--- a/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json
+++ b/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn the CSS Box Model by Building a Rothko Painting",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-the-css-box-model-by-building-a-rothko-painting",
- "order": 12,
+ "order": 5,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"60a3e3396c7b40068ad6996a",
diff --git a/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json b/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json
index 60970e5089..8f6c92c520 100644
--- a/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json
+++ b/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json
@@ -1,15 +1,14 @@
{
"name": "Learn Typography by Building a Nutrition Label",
- "isUpcomingChange": true,
+ "isUpcomingChange": false,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "learn-typography-by-building-a-nutrition-label",
- "order": 25,
+ "order": 7,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
- "isBeta": true,
"challengeOrder": [
[
"615f2abbe7d18d49a1e0e1c8",
diff --git a/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json b/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json
index 3c37b48e39..f11889802e 100644
--- a/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json
+++ b/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json
@@ -5,7 +5,6 @@
"order": 2,
"time": "150 hours",
"superBlock": "machine-learning-with-python",
- "superOrder": 10,
"challengeOrder": [
[
"5e46f8d6ac417301a38fb92d",
diff --git a/curriculum/challenges/_meta/managing-packages-with-npm/meta.json b/curriculum/challenges/_meta/managing-packages-with-npm/meta.json
index be6dfc34aa..cc3bd08d1b 100644
--- a/curriculum/challenges/_meta/managing-packages-with-npm/meta.json
+++ b/curriculum/challenges/_meta/managing-packages-with-npm/meta.json
@@ -5,7 +5,6 @@
"order": 0,
"time": "5 hours",
"superBlock": "back-end-development-and-apis",
- "superOrder": 5,
"challengeOrder": [
[
"587d7fb3367417b2b2512bfb",
diff --git a/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json b/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json
index d0595af72e..ea86f4a2ef 100644
--- a/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json
+++ b/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json
@@ -5,7 +5,6 @@
"order": 2,
"time": "5 hours",
"superBlock": "back-end-development-and-apis",
- "superOrder": 5,
"challengeOrder": [
[
"587d7fb6367417b2b2512c06",
diff --git a/curriculum/challenges/_meta/numpy/meta.json b/curriculum/challenges/_meta/numpy/meta.json
index f923414dd3..20b855a87b 100644
--- a/curriculum/challenges/_meta/numpy/meta.json
+++ b/curriculum/challenges/_meta/numpy/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "data-analysis-with-python",
- "superOrder": 8,
"challengeOrder": [
[
"5e9a0a8e09c5df3cc3600ed2",
diff --git a/curriculum/challenges/_meta/object-oriented-programming/meta.json b/curriculum/challenges/_meta/object-oriented-programming/meta.json
index bd24c6809f..76950368f5 100644
--- a/curriculum/challenges/_meta/object-oriented-programming/meta.json
+++ b/curriculum/challenges/_meta/object-oriented-programming/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7dac367417b2b2512b73",
diff --git a/curriculum/challenges/_meta/project-euler/meta.json b/curriculum/challenges/_meta/project-euler/meta.json
index 0330e83bcb..4e57d51912 100644
--- a/curriculum/challenges/_meta/project-euler/meta.json
+++ b/curriculum/challenges/_meta/project-euler/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
- "superOrder": 11,
"challengeOrder": [
[
"5900f36e1000cf542c50fe80",
diff --git a/curriculum/challenges/_meta/python-for-everybody/meta.json b/curriculum/challenges/_meta/python-for-everybody/meta.json
index 33fb79eb45..cea2fcb1c1 100644
--- a/curriculum/challenges/_meta/python-for-everybody/meta.json
+++ b/curriculum/challenges/_meta/python-for-everybody/meta.json
@@ -5,7 +5,6 @@
"order": 0,
"time": "15 hours",
"superBlock": "scientific-computing-with-python",
- "superOrder": 7,
"challengeOrder": [
[
"5e6a54a558d3af90110a60a0",
diff --git a/curriculum/challenges/_meta/python-for-penetration-testing/meta.json b/curriculum/challenges/_meta/python-for-penetration-testing/meta.json
index 07274e80a0..953f55e1e8 100644
--- a/curriculum/challenges/_meta/python-for-penetration-testing/meta.json
+++ b/curriculum/challenges/_meta/python-for-penetration-testing/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "information-security",
- "superOrder": 9,
"challengeOrder": [
[
"5ea9997bbec2e9bc47e94dae",
diff --git a/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json b/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json
index ef94496080..829b268edb 100644
--- a/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json
+++ b/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "quality-assurance",
- "superOrder": 6,
"challengeOrder": [
[
"587d824a367417b2b2512c46",
diff --git a/curriculum/challenges/_meta/quality-assurance-projects/meta.json b/curriculum/challenges/_meta/quality-assurance-projects/meta.json
index e95e1b4259..b8d579ba2b 100644
--- a/curriculum/challenges/_meta/quality-assurance-projects/meta.json
+++ b/curriculum/challenges/_meta/quality-assurance-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "quality-assurance",
- "superOrder": 6,
"challengeOrder": [
[
"587d8249367417b2b2512c41",
diff --git a/curriculum/challenges/_meta/react-and-redux/meta.json b/curriculum/challenges/_meta/react-and-redux/meta.json
index f9e3d4b60e..fec9173d44 100644
--- a/curriculum/challenges/_meta/react-and-redux/meta.json
+++ b/curriculum/challenges/_meta/react-and-redux/meta.json
@@ -20,7 +20,6 @@
}
],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"5a24c314108439a4d4036141",
diff --git a/curriculum/challenges/_meta/react/meta.json b/curriculum/challenges/_meta/react/meta.json
index f37c2efffb..b56b4ba737 100644
--- a/curriculum/challenges/_meta/react/meta.json
+++ b/curriculum/challenges/_meta/react/meta.json
@@ -14,7 +14,6 @@
}
],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"587d7dbc367417b2b2512bb1",
diff --git a/curriculum/challenges/_meta/redux/meta.json b/curriculum/challenges/_meta/redux/meta.json
index a2c60da1e6..fa4ff76aa0 100644
--- a/curriculum/challenges/_meta/redux/meta.json
+++ b/curriculum/challenges/_meta/redux/meta.json
@@ -14,7 +14,6 @@
}
],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"5a24c314108439a4d403614b",
diff --git a/curriculum/challenges/_meta/regular-expressions/meta.json b/curriculum/challenges/_meta/regular-expressions/meta.json
index 5bac9d5c92..d7c808b5de 100644
--- a/curriculum/challenges/_meta/regular-expressions/meta.json
+++ b/curriculum/challenges/_meta/regular-expressions/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "javascript-algorithms-and-data-structures",
- "superOrder": 1,
"challengeOrder": [
[
"587d7db3367417b2b2512b8e",
diff --git a/curriculum/challenges/_meta/responsive-web-design-principles/meta.json b/curriculum/challenges/_meta/responsive-web-design-principles/meta.json
index 8520fe24a8..dc6d1f4a95 100644
--- a/curriculum/challenges/_meta/responsive-web-design-principles/meta.json
+++ b/curriculum/challenges/_meta/responsive-web-design-principles/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"587d78b0367417b2b2512b08",
diff --git a/curriculum/challenges/_meta/responsive-web-design-projects/meta.json b/curriculum/challenges/_meta/responsive-web-design-projects/meta.json
index fc19124d21..b4519a19f9 100644
--- a/curriculum/challenges/_meta/responsive-web-design-projects/meta.json
+++ b/curriculum/challenges/_meta/responsive-web-design-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "responsive-web-design",
- "superOrder": 0,
"challengeOrder": [
[
"bd7158d8c442eddfaeb5bd18",
diff --git a/curriculum/challenges/_meta/rosetta-code/meta.json b/curriculum/challenges/_meta/rosetta-code/meta.json
index f18b86e75c..bbc73b9bd2 100644
--- a/curriculum/challenges/_meta/rosetta-code/meta.json
+++ b/curriculum/challenges/_meta/rosetta-code/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
- "superOrder": 11,
"challengeOrder": [
[
"594810f028c0303b75339acb",
diff --git a/curriculum/challenges/_meta/sass/meta.json b/curriculum/challenges/_meta/sass/meta.json
index ce9586d41f..430380d816 100644
--- a/curriculum/challenges/_meta/sass/meta.json
+++ b/curriculum/challenges/_meta/sass/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "front-end-development-libraries",
- "superOrder": 2,
"challengeOrder": [
[
"587d7dbd367417b2b2512bb4",
diff --git a/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json b/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json
index d93cd39020..25dc151516 100644
--- a/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json
+++ b/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json
@@ -5,7 +5,6 @@
"order": 1,
"time": "150 hours",
"superBlock": "scientific-computing-with-python",
- "superOrder": 7,
"challengeOrder": [
[
"5e44412c903586ffb414c94c",
diff --git a/curriculum/challenges/_meta/take-home-projects/meta.json b/curriculum/challenges/_meta/take-home-projects/meta.json
index 19606885b1..e6d74a8170 100644
--- a/curriculum/challenges/_meta/take-home-projects/meta.json
+++ b/curriculum/challenges/_meta/take-home-projects/meta.json
@@ -7,7 +7,6 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
- "superOrder": 11,
"challengeOrder": [
[
"bd7158d8c442eddfaeb5bd10",
diff --git a/curriculum/challenges/_meta/tensorflow/meta.json b/curriculum/challenges/_meta/tensorflow/meta.json
index ba00be4fc9..d28ae876ba 100644
--- a/curriculum/challenges/_meta/tensorflow/meta.json
+++ b/curriculum/challenges/_meta/tensorflow/meta.json
@@ -5,7 +5,6 @@
"order": 0,
"time": "15 hours",
"superBlock": "machine-learning-with-python",
- "superOrder": 10,
"challengeOrder": [
[
"5e8f2f13c4cdbe86b5c72d87",
diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
index 91baca2989..a2f0878f6e 100644
--- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
+++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
@@ -17,7 +17,7 @@ dashedName: use-headings-to-show-hierarchical-relationships-of-content
在使用中,相同級別(或者更高級別)的標題標籤用於開啓新的章節,低一級別的標題標籤用於開啓上一級標題標籤的子小節。
-比如說,如果我們在一個 `h2` 標籤後加上若干由 `h4` 標籤引導的頁面。 此時發生了層級的錯位,這會讓使用屏幕閱讀器的用戶感到困惑。 儘管在瀏覽器所顯示的頁面中,錯誤地使用這六個標題標籤依然可以讓它們在視覺效果上看起來很合理。 但此時,我們應該按照層級正確地使用標籤,然後用 CSS 來調整樣式。
+例如,一個頁面帶有一個 `h2` 元素,後面跟着幾個用 `h4` 元素標記的小節,這會使屏幕閱讀器用戶感到困惑。 儘管在瀏覽器所顯示的頁面中,錯誤地使用這六個標題標籤依然可以讓它們在視覺效果上看起來很合理。 但此時,我們應該按照層級正確地使用標籤,然後用 CSS 來調整樣式。
最後一點,每個頁面應只有一個 `h1` 標籤,用來概括說明頁面的主題。 另外,這六個標題標籤可以讓搜索引擎獲取頁面的大綱。
@@ -27,7 +27,7 @@ Camper Cat 希望他的網站有一個介紹如何成爲忍者的頁面。 幫
# --hints--
-應存在 6 個 `h3` 標籤。
+你的代碼應該有 6 個 `h3` 元素。
```js
assert($('h3').length === 6);
@@ -39,7 +39,7 @@ assert($('h3').length === 6);
assert((code.match(/\/h3/g) || []).length === 6);
```
-不應該存在 `h5` 標籤.
+你的代碼不應包含任何 `h5` 元素。
```js
assert($('h5').length === 0);
diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
index 83500f67b3..aa7414dd0c 100644
--- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
+++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
@@ -1,6 +1,6 @@
---
id: 587d781b367417b2b2512abd
-title: 調整標題與段落的大小
+title: 調整標題元素與段落元素的大小
challengeType: 0
videoUrl: 'https://scrimba.com/c/c3bRPTz'
forumTopicId: 301037
@@ -9,15 +9,15 @@ dashedName: adjust-the-size-of-a-heading-element-versus-a-paragraph-element
# --description--
-標題標籤的字體大小(從 `h1` 到 `h6`)一般應該大於段落標籤的字體大小。 這使用戶更容易在視覺上了解頁面上所有內容的佈局和重要程度。 你可以使用 `font-size` 屬性來設置元素內文字的大小。
+標題元素(`h1` 到 `h6`)的字體大小通常應大於段落標籤的字體大小。 這使用戶更容易直觀地瞭解頁面上所有內容的佈局和重要性級別。 你可以使用 `font-size` 屬性來調整元素中文本的大小。
# --instructions--
-把 `h4` 標籤的 `font-size` 的屬性值改成 27px,讓標題更醒目。
+要使標題明顯大於段落,請將 `h4` 元素的 `font-size` 更改爲 27 像素。
# --hints--
-應給 `h4` 元素添加一個 `font-size` 屬性並將屬性值設置爲 27px。
+你的代碼應該將 `font-size` 屬性添加到設置爲 27 像素的 `h4` 元素。
```js
assert($('h4').css('font-size') == '27px');
@@ -116,3 +116,4 @@ assert($('h4').css('font-size') == '27px');
```
+
diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
index 2133f6f978..e385fae5b3 100644
--- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
+++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
@@ -9,7 +9,7 @@ dashedName: create-a-more-complex-shape-using-css-and-html
# --description--
-世界上最流行的形狀非心形莫屬了,在本挑戰中我們將用純 CSS 創建一個心形。 但是首先你需要了解僞元素 `::before` 和 `::after`。 僞元素可以在所選元素之前或之後添加一些內容。 在下面的代碼中,`::before` 僞元素用來給 class 爲 `heart` 的元素添加一個正方形:
+世界上最流行的形狀非心形莫屬了,在本挑戰中我們將用純 CSS 創建一個心形。 但是首先你需要了解僞元素 `::before` 和 `::after`。 `::before` 創建一個僞元素,它是所選元素的第一個子元素; `::after` 創建一個僞元素,它是所選元素的最後一個子元素。 在下面的代碼中,`::before` 僞元素用來給 class 爲 `heart` 的元素添加一個正方形:
```css
.heart::before {
diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
index c05253f231..1d3ce35b68 100644
--- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
+++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
@@ -13,7 +13,7 @@ dashedName: create-visual-balance-using-the-text-align-property
web 內容大部分都是文本。 CSS 裏面的 `text-align` 屬性可以控制文本的對齊方式。
-`text-align: justify;` 可以讓除最後一行之外的文字兩端對齊,即每行的左右兩端都緊貼行的邊緣。
+`text-align: justify;` 將文本隔開,使每行的寬度相等。
`text-align: center;` 可以讓文本居中對齊。
diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
index 240b3bf3e8..013bfda2db 100644
--- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
+++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
@@ -18,7 +18,7 @@ dashedName: build-a-tribute-page
**需求 2:** 此 app 中應存在一個 `id="title"` 的元素,其中包含描述致敬頁主題的字符串文本,如 "Dr. Norman Borlaug"。
-**需求 3:** 此 app 中應存在一個 `id="img-div"` 的 `div` 元素。
+**需求 3:** 此 app 中應存在一個 `id="img-div"` 的 `figure` 或 `div` 元素。
**需求 4:** 在 `img-div` 元素內,應存在一個 `id="image"` 的 `img` 元素。
diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
index 31cdc54b5d..76164cd1b6 100644
--- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
+++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
@@ -10,7 +10,7 @@ dashedName: create-complex-multi-dimensional-arrays
很好! 你現在已經學到很多關於數組的知識了, 但這些只是個開始。我們將在接下來的中挑戰中學到更多與數組相關的知識。 在繼續學習對象(Objects )之前,讓我們再花一點時間瞭解下更復雜的數組嵌套。
-數組的一個強大的特性是,它可以包含其他數組,甚至完全由其他數組組成。 在上一個挑戰中,我們已經接觸到了包含數組的數組,但它還算是比較簡單的。 數組中的數組還可以再包含其他數組,即可以嵌套任意多層數組。 習慣上,我們稱這種數據結構爲多維(multi-dimensional)數組 或嵌套(nested)數組。 請看如下的示例:
+數組的一個強大的特性是,它可以包含其他數組,甚至完全由其他數組組成。 在上一個挑戰中,我們已經接觸到了包含數組的數組,但它還算是比較簡單的。 數組中的數組還可以再包含其他數組,即可以嵌套任意多層數組。 通過這種方式,數組可以很快成爲非常複雜的數據結構,稱爲多維(multi-dimensional) 數組,或嵌套(nested)數組。 請看如下的示例:
```js
let nestedArray = [
diff --git a/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index 72d8ee887d..3a8eee0bd5 100644
--- a/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -16,6 +16,8 @@ dashedName: timestamp-microservice
完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 字段中提交它的 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。
+**注意:** 時區轉換不是本項目的目的,因此假設所有發送的有效日期將使用 `new Date()` 解析爲 GMT 日期。
+
# --hints--
提交自己的項目,而不是示例的 URL。
@@ -28,7 +30,7 @@ dashedName: timestamp-microservice
};
```
-向 `/api/:date?` 發送一個帶有有效日期的請求,應該很快(在幾毫秒內)返回一個 JSON 對象,在這個 JSON 對象內有一個包含輸入日期的 Unix 時間戳的 `unix` 鍵。
+對具有有效日期的 `/api/:date?` 的請求應返回一個帶有 `unix` 鍵的 JSON 對象,該鍵是輸入日期的 Unix 時間戳(以毫秒爲單位)
```js
(getUserInput) =>
@@ -46,7 +48,7 @@ dashedName: timestamp-microservice
);
```
-向 `/api/:date?` 發送一個帶有有效日期的請求,應該返回一個 JSON 對象,在這個 JSON 對象內有一個包含如 `Thu, 01 Jan 1970 00:00:00 GMT` 格式的輸入日期的 `utc` 鍵。
+對具有有效日期的 `/api/:date?` 的請求應返回一個帶有 `utc` 鍵的 JSON 對象,該鍵是輸入日期的字符串,格式爲:`Thu, 01 Jan 1970 00:00:00 GMT`
```js
(getUserInput) =>
@@ -64,7 +66,7 @@ dashedName: timestamp-microservice
);
```
-向 `/api/1451001600000` 發送請求,應該返回 `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }`。
+對 `/api/1451001600000` 的請求應該返回 `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }`
```js
(getUserInput) =>
@@ -81,11 +83,11 @@ dashedName: timestamp-microservice
);
```
-程序能成功處理能被 `new Date(date_string)` 解析的日期。
+你的項目可以處理可以通過 `new Date(date_string)` 成功解析的日期
```js
(getUserInput) =>
- $.get(getUserInput('url') + '/api/05 October 2011').then(
+ $.get(getUserInput('url') + '/api/05 October 2011, GMT').then(
(data) => {
assert(
data.unix === 1317772800000 &&
@@ -98,7 +100,7 @@ dashedName: timestamp-microservice
);
```
-如果傳入的日期是無效的,將返回一個帶有結構體 `{ error : "Invalid Date" }` 的對象。
+如果輸入的日期字符串無效,api 將返回一個具有結構的對象 `{ error : "Invalid Date" }`
```js
(getUserInput) =>
@@ -112,7 +114,7 @@ dashedName: timestamp-microservice
);
```
-如果傳入的參數是空日期,將返回一個包含當前時間的 `unix` 鍵的 JSON 對象。
+一個空的日期參數應該返回一個帶有 `unix` 鍵的 JSON 對象中的當前時間
```js
(getUserInput) =>
@@ -127,7 +129,7 @@ dashedName: timestamp-microservice
);
```
-如果傳入的參數是空日期,將返回一個包含當前時間的 `utc` 鍵的 JSON 對象。
+空日期參數應返回帶有 `utc` 鍵的 JSON 對象中的當前時間
```js
(getUserInput) =>
diff --git a/curriculum/challenges/chinese-traditional/10-coding-interview-prep/data-structures/invert-a-binary-tree.md b/curriculum/challenges/chinese-traditional/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
index 8be38b0d5d..eab9a780e9 100644
--- a/curriculum/challenges/chinese-traditional/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
+++ b/curriculum/challenges/chinese-traditional/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
@@ -1,6 +1,6 @@
---
id: 587d8259367417b2b2512c83
-title: Invert a Binary Tree
+title: 反轉二叉樹
challengeType: 1
forumTopicId: 301704
dashedName: invert-a-binary-tree
@@ -8,11 +8,11 @@ dashedName: invert-a-binary-tree
# --description--
-Here will we create a function to invert a binary tree. Given a binary tree, we want to produce a new tree that is equivalently the mirror image of this tree. Running an inorder traversal on an inverted tree will explore the nodes in reverse order when compared to the inorder traversal of the original tree. Write a method to do this called `invert` on our binary tree. Calling this method should invert the current tree structure. Ideally, we would like to do this in-place in linear time. That is, we only visit each node once and we modify the existing tree structure as we go, without using any additional memory. Good luck!
+這裏我們將創建一個反轉二叉樹的函數。 給定二叉樹,我們希望生成一個新樹,它等效於該樹的鏡像。 與原始樹的中序遍歷相比,在倒轉樹上運行中序遍歷將以相反的順序探索節點。 在我們的二叉樹上編寫一個名爲 `invert` 的方法。 調用此方法應該反轉當前樹結構。 理想情況下,我們希望在線性時間內就地執行此操作。 也就是說,我們只訪問每個節點一次,我們在不使用任何額外內存的情況下修改現有的樹結構。 祝你好運!
# --hints--
-The `BinarySearchTree` data structure should exist.
+存在 `BinarySearchTree` 數據結構。
```js
assert(
@@ -26,7 +26,7 @@ assert(
);
```
-The binary search tree should have a method called `invert`.
+二叉搜索樹有一個名爲 `invert` 的方法。
```js
assert(
@@ -42,7 +42,7 @@ assert(
);
```
-The `invert` method should correctly invert the tree structure.
+`invert` 方法正確地反轉樹結構。
```js
assert(
@@ -70,7 +70,7 @@ assert(
);
```
-Inverting an empty tree should return `null`.
+反轉空樹應該返回 `null`。
```js
assert(
diff --git a/curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md b/curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
index 56ed31cd76..94a8dfef78 100644
--- a/curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
+++ b/curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content.md
@@ -17,7 +17,7 @@ dashedName: use-headings-to-show-hierarchical-relationships-of-content
在使用中,相同级别(或者更高级别)的标题标签用于开启新的章节,低一级别的标题标签用于开启上一级标题标签的子小节。
-比如说,如果我们在一个 `h2` 标签后加上若干由 `h4` 标签引导的页面。 此时发生了层级的错位,这会让使用屏幕阅读器的用户感到困惑。 尽管在浏览器所显示的页面中,错误地使用这六个标题标签依然可以让它们在视觉效果上看起来很合理。 但此时,我们应该按照层级正确地使用标签,然后用 CSS 来调整样式。
+例如,一个页面带有一个 `h2` 元素,后面跟着几个用 `h4` 元素标记的小节,这会使屏幕阅读器用户感到困惑。 尽管在浏览器所显示的页面中,错误地使用这六个标题标签依然可以让它们在视觉效果上看起来很合理。 但此时,我们应该按照层级正确地使用标签,然后用 CSS 来调整样式。
最后一点,每个页面应只有一个 `h1` 标签,用来概括说明页面的主题。 另外,这六个标题标签可以让搜索引擎获取页面的大纲。
@@ -27,7 +27,7 @@ Camper Cat 希望他的网站有一个介绍如何成为忍者的页面。 帮
# --hints--
-应存在 6 个 `h3` 标签。
+你的代码应该有 6 个 `h3` 元素。
```js
assert($('h3').length === 6);
@@ -39,7 +39,7 @@ assert($('h3').length === 6);
assert((code.match(/\/h3/g) || []).length === 6);
```
-不应该存在 `h5` 标签.
+你的代码不应包含任何 `h5` 元素。
```js
assert($('h5').length === 0);
diff --git a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
index ca8eb3a0eb..0ad50da1d7 100644
--- a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
+++ b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/adjust-the-size-of-a-heading-element-versus-a-paragraph-element.md
@@ -1,6 +1,6 @@
---
id: 587d781b367417b2b2512abd
-title: 调整标题与段落的大小
+title: 调整标题元素与段落元素的大小
challengeType: 0
videoUrl: 'https://scrimba.com/c/c3bRPTz'
forumTopicId: 301037
@@ -9,15 +9,15 @@ dashedName: adjust-the-size-of-a-heading-element-versus-a-paragraph-element
# --description--
-标题标签的字体大小(从 `h1` 到 `h6`)一般应该大于段落标签的字体大小。 这使用户更容易在视觉上了解页面上所有内容的布局和重要程度。 你可以使用 `font-size` 属性来设置元素内文字的大小。
+标题元素(`h1` 到 `h6`)的字体大小通常应大于段落标签的字体大小。 这使用户更容易直观地了解页面上所有内容的布局和重要性级别。 你可以使用 `font-size` 属性来调整元素中文本的大小。
# --instructions--
-把 `h4` 标签的 `font-size` 的属性值改成 27px,让标题更醒目。
+要使标题明显大于段落,请将 `h4` 元素的 `font-size` 更改为 27 像素。
# --hints--
-应给 `h4` 元素添加一个 `font-size` 属性并将属性值设置为 27px。
+你的代码应该将 `font-size` 属性添加到设置为 27 像素的 `h4` 元素。
```js
assert($('h4').css('font-size') == '27px');
@@ -116,3 +116,4 @@ assert($('h4').css('font-size') == '27px');
```
+
diff --git a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
index d472236fe8..556adcf012 100644
--- a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
+++ b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
@@ -9,7 +9,7 @@ dashedName: create-a-more-complex-shape-using-css-and-html
# --description--
-世界上最流行的形状非心形莫属了,在本挑战中我们将用纯 CSS 创建一个心形。 但是首先你需要了解伪元素 `::before` 和 `::after`。 伪元素可以在所选元素之前或之后添加一些内容。 在下面的代码中,`::before` 伪元素用来给 class 为 `heart` 的元素添加一个正方形:
+世界上最流行的形状非心形莫属了,在本挑战中我们将用纯 CSS 创建一个心形。 但是首先你需要了解伪元素 `::before` 和 `::after`。 `::before` 创建一个伪元素,它是所选元素的第一个子元素; `::after` 创建一个伪元素,它是所选元素的最后一个子元素。 在下面的代码中,`::before` 伪元素用来给 class 为 `heart` 的元素添加一个正方形:
```css
.heart::before {
diff --git a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
index 75b0757993..1a0983b4a4 100644
--- a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
+++ b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/create-visual-balance-using-the-text-align-property.md
@@ -13,7 +13,7 @@ dashedName: create-visual-balance-using-the-text-align-property
web 内容大部分都是文本。 CSS 里面的 `text-align` 属性可以控制文本的对齐方式。
-`text-align: justify;` 可以让除最后一行之外的文字两端对齐,即每行的左右两端都紧贴行的边缘。
+`text-align: justify;` 将文本隔开,使每行的宽度相等。
`text-align: center;` 可以让文本居中对齐。
diff --git a/curriculum/challenges/chinese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md b/curriculum/challenges/chinese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
index 7c57480657..6703bd1153 100644
--- a/curriculum/challenges/chinese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
+++ b/curriculum/challenges/chinese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md
@@ -18,7 +18,7 @@ dashedName: build-a-tribute-page
**需求 2:** 此 app 中应存在一个 `id="title"` 的元素,其中包含描述致敬页主题的字符串文本,如 "Dr. Norman Borlaug"。
-**需求 3:** 此 app 中应存在一个 `id="img-div"` 的 `div` 元素。
+**需求 3:** 此 app 中应存在一个 `id="img-div"` 的 `figure` 或 `div` 元素。
**需求 4:** 在 `img-div` 元素内,应存在一个 `id="image"` 的 `img` 元素。
diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
index fdf3161b6f..b5f351a60f 100644
--- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
+++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md
@@ -10,7 +10,7 @@ dashedName: create-complex-multi-dimensional-arrays
很好! 你现在已经学到很多关于数组的知识了, 但这些只是个开始。我们将在接下来的中挑战中学到更多与数组相关的知识。 在继续学习对象(Objects )之前,让我们再花一点时间了解下更复杂的数组嵌套。
-数组的一个强大的特性是,它可以包含其他数组,甚至完全由其他数组组成。 在上一个挑战中,我们已经接触到了包含数组的数组,但它还算是比较简单的。 数组中的数组还可以再包含其他数组,即可以嵌套任意多层数组。 习惯上,我们称这种数据结构为多维(multi-dimensional)数组 或嵌套(nested)数组。 请看如下的示例:
+数组的一个强大的特性是,它可以包含其他数组,甚至完全由其他数组组成。 在上一个挑战中,我们已经接触到了包含数组的数组,但它还算是比较简单的。 数组中的数组还可以再包含其他数组,即可以嵌套任意多层数组。 通过这种方式,数组可以很快成为非常复杂的数据结构,称为多维(multi-dimensional) 数组,或嵌套(nested)数组。 请看如下的示例:
```js
let nestedArray = [
diff --git a/curriculum/challenges/chinese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/chinese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index 638ebd0430..82bc5afbec 100644
--- a/curriculum/challenges/chinese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/chinese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -16,6 +16,8 @@ dashedName: timestamp-microservice
完成本项目后,请将一个正常运行的 demo(项目演示)托管在可以公开访问的平台。 然后在 `Solution Link` 字段中提交它的 URL。 此外,还可以将项目的源码提交到 `GitHub Link` 中。
+**注意:** 时区转换不是本项目的目的,因此假设所有发送的有效日期将使用 `new Date()` 解析为 GMT 日期。
+
# --hints--
提交自己的项目,而不是示例的 URL。
@@ -28,7 +30,7 @@ dashedName: timestamp-microservice
};
```
-向 `/api/:date?` 发送一个带有有效日期的请求,应该很快(在几毫秒内)返回一个 JSON 对象,在这个 JSON 对象内有一个包含输入日期的 Unix 时间戳的 `unix` 键。
+对具有有效日期的 `/api/:date?` 的请求应返回一个带有 `unix` 键的 JSON 对象,该键是输入日期的 Unix 时间戳(以毫秒为单位)
```js
(getUserInput) =>
@@ -46,7 +48,7 @@ dashedName: timestamp-microservice
);
```
-向 `/api/:date?` 发送一个带有有效日期的请求,应该返回一个 JSON 对象,在这个 JSON 对象内有一个包含如 `Thu, 01 Jan 1970 00:00:00 GMT` 格式的输入日期的 `utc` 键。
+对具有有效日期的 `/api/:date?` 的请求应返回一个带有 `utc` 键的 JSON 对象,该键是输入日期的字符串,格式为:`Thu, 01 Jan 1970 00:00:00 GMT`
```js
(getUserInput) =>
@@ -64,7 +66,7 @@ dashedName: timestamp-microservice
);
```
-向 `/api/1451001600000` 发送请求,应该返回 `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }`。
+对 `/api/1451001600000` 的请求应该返回 `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }`
```js
(getUserInput) =>
@@ -81,11 +83,11 @@ dashedName: timestamp-microservice
);
```
-程序能成功处理能被 `new Date(date_string)` 解析的日期。
+你的项目可以处理可以通过 `new Date(date_string)` 成功解析的日期
```js
(getUserInput) =>
- $.get(getUserInput('url') + '/api/05 October 2011').then(
+ $.get(getUserInput('url') + '/api/05 October 2011, GMT').then(
(data) => {
assert(
data.unix === 1317772800000 &&
@@ -98,7 +100,7 @@ dashedName: timestamp-microservice
);
```
-如果传入的日期是无效的,将返回一个带有结构体 `{ error : "Invalid Date" }` 的对象。
+如果输入的日期字符串无效,api 将返回一个具有结构的对象 `{ error : "Invalid Date" }`
```js
(getUserInput) =>
@@ -112,7 +114,7 @@ dashedName: timestamp-microservice
);
```
-如果传入的参数是空日期,将返回一个包含当前时间的 `unix` 键的 JSON 对象。
+一个空的日期参数应该返回一个带有 `unix` 键的 JSON 对象中的当前时间
```js
(getUserInput) =>
@@ -127,7 +129,7 @@ dashedName: timestamp-microservice
);
```
-如果传入的参数是空日期,将返回一个包含当前时间的 `utc` 键的 JSON 对象。
+空日期参数应返回带有 `utc` 键的 JSON 对象中的当前时间
```js
(getUserInput) =>
diff --git a/curriculum/challenges/chinese/10-coding-interview-prep/data-structures/invert-a-binary-tree.md b/curriculum/challenges/chinese/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
index 8be38b0d5d..b9ff3268a1 100644
--- a/curriculum/challenges/chinese/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
+++ b/curriculum/challenges/chinese/10-coding-interview-prep/data-structures/invert-a-binary-tree.md
@@ -1,6 +1,6 @@
---
id: 587d8259367417b2b2512c83
-title: Invert a Binary Tree
+title: 反转二叉树
challengeType: 1
forumTopicId: 301704
dashedName: invert-a-binary-tree
@@ -8,11 +8,11 @@ dashedName: invert-a-binary-tree
# --description--
-Here will we create a function to invert a binary tree. Given a binary tree, we want to produce a new tree that is equivalently the mirror image of this tree. Running an inorder traversal on an inverted tree will explore the nodes in reverse order when compared to the inorder traversal of the original tree. Write a method to do this called `invert` on our binary tree. Calling this method should invert the current tree structure. Ideally, we would like to do this in-place in linear time. That is, we only visit each node once and we modify the existing tree structure as we go, without using any additional memory. Good luck!
+这里我们将创建一个反转二叉树的函数。 给定二叉树,我们希望生成一个新树,它等效于该树的镜像。 与原始树的中序遍历相比,在倒转树上运行中序遍历将以相反的顺序探索节点。 在我们的二叉树上编写一个名为 `invert` 的方法。 调用此方法应该反转当前树结构。 理想情况下,我们希望在线性时间内就地执行此操作。 也就是说,我们只访问每个节点一次,我们在不使用任何额外内存的情况下修改现有的树结构。 祝你好运!
# --hints--
-The `BinarySearchTree` data structure should exist.
+存在 `BinarySearchTree` 数据结构。
```js
assert(
@@ -26,7 +26,7 @@ assert(
);
```
-The binary search tree should have a method called `invert`.
+二叉搜索树有一个名为 `invert` 的方法。
```js
assert(
@@ -42,7 +42,7 @@ assert(
);
```
-The `invert` method should correctly invert the tree structure.
+`invert` 方法正确地反转树结构。
```js
assert(
@@ -70,7 +70,7 @@ assert(
);
```
-Inverting an empty tree should return `null`.
+反转空树应该返回 `null`。
```js
assert(
diff --git a/curriculum/challenges/english/00-certifications/back-end-development-and-apis-certification/back-end-development-and-apis-certification.yml b/curriculum/challenges/english/00-certifications/back-end-development-and-apis-certification/back-end-development-and-apis-certification.yml
index 08c328be54..7f5e0d2ddf 100644
--- a/curriculum/challenges/english/00-certifications/back-end-development-and-apis-certification/back-end-development-and-apis-certification.yml
+++ b/curriculum/challenges/english/00-certifications/back-end-development-and-apis-certification/back-end-development-and-apis-certification.yml
@@ -1,6 +1,7 @@
---
id: 561add10cb82ac38a17523bc
title: Back End Development and APIs Certification
+certification: back-end-development-and-apis
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/data-analysis-with-python-certification/data-analysis-with-python-certification.yml b/curriculum/challenges/english/00-certifications/data-analysis-with-python-certification/data-analysis-with-python-certification.yml
index 09de7fe344..e4c1a13ad0 100644
--- a/curriculum/challenges/english/00-certifications/data-analysis-with-python-certification/data-analysis-with-python-certification.yml
+++ b/curriculum/challenges/english/00-certifications/data-analysis-with-python-certification/data-analysis-with-python-certification.yml
@@ -1,5 +1,6 @@
id: 5e46fc95ac417301a38fb934
title: Data Analysis with Python Certification
+certification: data-analysis-with-python
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/data-visualization-certification/data-visualization-certification.yml b/curriculum/challenges/english/00-certifications/data-visualization-certification/data-visualization-certification.yml
index e55bf0332b..2ec1d9efe6 100644
--- a/curriculum/challenges/english/00-certifications/data-visualization-certification/data-visualization-certification.yml
+++ b/curriculum/challenges/english/00-certifications/data-visualization-certification/data-visualization-certification.yml
@@ -1,5 +1,6 @@
id: 5a553ca864b52e1d8bceea14
title: Data Visualization Certification
+certification: data-visualization
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml b/curriculum/challenges/english/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
index ea1ebc23ca..408e57078d 100644
--- a/curriculum/challenges/english/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
+++ b/curriculum/challenges/english/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
@@ -1,6 +1,7 @@
---
id: 561acd10cb82ac38a17513bc
title: Front End Development Libraries Certification
+certification: front-end-development-libraries
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/information-security-certification/information-security-certification.yml b/curriculum/challenges/english/00-certifications/information-security-certification/information-security-certification.yml
index 5f5e17bd19..8997cfbb35 100644
--- a/curriculum/challenges/english/00-certifications/information-security-certification/information-security-certification.yml
+++ b/curriculum/challenges/english/00-certifications/information-security-certification/information-security-certification.yml
@@ -1,5 +1,6 @@
id: 5e6021435ac9d0ecd8b94b00
title: Information Security Certification
+certification: information-security
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml b/curriculum/challenges/english/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
index 64d0b0701d..6388563746 100644
--- a/curriculum/challenges/english/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
+++ b/curriculum/challenges/english/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
@@ -1,5 +1,6 @@
id: 561abd10cb81ac38a17513bc
title: JavaScript Algorithms and Data Structures Certification
+certification: javascript-algorithms-and-data-structures
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/legacy-back-end-certification/legacy-back-end-certification.yml b/curriculum/challenges/english/00-certifications/legacy-back-end-certification/legacy-back-end-certification.yml
index b00a0edec0..8a792c1b39 100644
--- a/curriculum/challenges/english/00-certifications/legacy-back-end-certification/legacy-back-end-certification.yml
+++ b/curriculum/challenges/english/00-certifications/legacy-back-end-certification/legacy-back-end-certification.yml
@@ -1,5 +1,6 @@
id: 660add10cb82ac38a17513be
title: Legacy Back End Certification
+certification: legacy-back-end
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/legacy-data-visualization-certification/legacy-data-visualization-certification.yml b/curriculum/challenges/english/00-certifications/legacy-data-visualization-certification/legacy-data-visualization-certification.yml
index a4e0a804cd..69845d6c65 100644
--- a/curriculum/challenges/english/00-certifications/legacy-data-visualization-certification/legacy-data-visualization-certification.yml
+++ b/curriculum/challenges/english/00-certifications/legacy-data-visualization-certification/legacy-data-visualization-certification.yml
@@ -1,5 +1,6 @@
id: 561add10cb82ac39a17513bc
title: Legacy Data Visualization Certification
+certification: legacy-data-visualization
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml b/curriculum/challenges/english/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
index 8c824f979f..d982030a01 100644
--- a/curriculum/challenges/english/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
+++ b/curriculum/challenges/english/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
@@ -1,5 +1,6 @@
id: 561add10cb82ac38a17513be
title: Legacy Front End Certification
+certification: legacy-front-end
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/legacy-full-stack-certification/legacy-full-stack-certification.yml b/curriculum/challenges/english/00-certifications/legacy-full-stack-certification/legacy-full-stack-certification.yml
index 2c64da3a6a..6ae27ad5ea 100644
--- a/curriculum/challenges/english/00-certifications/legacy-full-stack-certification/legacy-full-stack-certification.yml
+++ b/curriculum/challenges/english/00-certifications/legacy-full-stack-certification/legacy-full-stack-certification.yml
@@ -1,5 +1,6 @@
id: 561add10cb82ac38a17213bd
title: Legacy Full Stack Certification
+certification: legacy-full-stack
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/legacy-information-security-and-quality-assurance-certification/legacy-information-security-and-quality-assurance-certification.yml b/curriculum/challenges/english/00-certifications/legacy-information-security-and-quality-assurance-certification/legacy-information-security-and-quality-assurance-certification.yml
index e78b872b4e..87b0bef699 100644
--- a/curriculum/challenges/english/00-certifications/legacy-information-security-and-quality-assurance-certification/legacy-information-security-and-quality-assurance-certification.yml
+++ b/curriculum/challenges/english/00-certifications/legacy-information-security-and-quality-assurance-certification/legacy-information-security-and-quality-assurance-certification.yml
@@ -1,5 +1,6 @@
id: 561add10cb82ac38a17213bc
title: Legacy Information Security and Quality Assurance Certification
+certification: legacy-information-security-and-quality-assurance
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/machine-learning-with-python-certification/machine-learning-with-python-certification.yml b/curriculum/challenges/english/00-certifications/machine-learning-with-python-certification/machine-learning-with-python-certification.yml
index dda4f601e9..82b664f364 100644
--- a/curriculum/challenges/english/00-certifications/machine-learning-with-python-certification/machine-learning-with-python-certification.yml
+++ b/curriculum/challenges/english/00-certifications/machine-learning-with-python-certification/machine-learning-with-python-certification.yml
@@ -1,5 +1,6 @@
id: 5e46fc95ac417301a38fb935
title: Machine Learning with Python Certification
+certification: machine-learning-with-python
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/quality-assurance-certification/quality-assurance-certification.yml b/curriculum/challenges/english/00-certifications/quality-assurance-certification/quality-assurance-certification.yml
index 7c637098e6..b12e25b533 100644
--- a/curriculum/challenges/english/00-certifications/quality-assurance-certification/quality-assurance-certification.yml
+++ b/curriculum/challenges/english/00-certifications/quality-assurance-certification/quality-assurance-certification.yml
@@ -1,5 +1,6 @@
id: 5e611829481575a52dc59c0e
title: Quality Assurance Certification
+certification: quality-assurance
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/relational-databases-certification/relational-databases-certification.yml b/curriculum/challenges/english/00-certifications/relational-databases-certification/relational-databases-certification.yml
index f77b064f32..fda2831795 100644
--- a/curriculum/challenges/english/00-certifications/relational-databases-certification/relational-databases-certification.yml
+++ b/curriculum/challenges/english/00-certifications/relational-databases-certification/relational-databases-certification.yml
@@ -1,5 +1,6 @@
id: 606243f50267e718b1e755f4
title: Relational Databases Certification
+certification: relational-databases
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml b/curriculum/challenges/english/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
index 9c18da8150..811d45d6bf 100644
--- a/curriculum/challenges/english/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
+++ b/curriculum/challenges/english/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
@@ -1,5 +1,6 @@
id: 561add10cb82ac38a17513bc
title: Responsive Web Design Certification
+certification: responsive-web-design
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/00-certifications/scientific-computing-with-python-certification/scientific-computing-with-python-certification.yml b/curriculum/challenges/english/00-certifications/scientific-computing-with-python-certification/scientific-computing-with-python-certification.yml
index 27db8036c9..24bc6df56e 100644
--- a/curriculum/challenges/english/00-certifications/scientific-computing-with-python-certification/scientific-computing-with-python-certification.yml
+++ b/curriculum/challenges/english/00-certifications/scientific-computing-with-python-certification/scientific-computing-with-python-certification.yml
@@ -1,5 +1,6 @@
id: 5e44431b903586ffb414c951
title: Scientific Computing with Python Certification
+certification: scientific-computing-with-python
challengeType: 7
isPrivate: true
tests:
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md b/curriculum/challenges/english/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
index b951c3fa6e..6e2b5097e2 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
@@ -25,7 +25,7 @@ When users click the `Contacts` link, they'll be taken to the section of the web
# --instructions--
-Change your external link to an internal link by changing the `href` attribute to `"#footer"` and the text from `cat photos` to `Jump to Bottom`.
+Change your external link to an internal link by changing the `href` attribute to `#footer` and the text from `cat photos` to `Jump to Bottom`.
Remove the `target="_blank"` attribute from the anchor tag since this causes the linked document to open in a new window tab.
diff --git a/curriculum/challenges/english/10-coding-interview-prep/algorithms/implement-binary-search.md b/curriculum/challenges/english/10-coding-interview-prep/algorithms/implement-binary-search.md
new file mode 100644
index 0000000000..d2383c52ed
--- /dev/null
+++ b/curriculum/challenges/english/10-coding-interview-prep/algorithms/implement-binary-search.md
@@ -0,0 +1,150 @@
+---
+id: 61abc7ebf3029b56226de5b6
+title: Implement Binary Search
+challengeType: 1
+forumTopicId: 487618
+dashedName: implement-binary-search
+---
+
+# --description--
+
+Binary search is an **O(log(n))** efficiency algorithm for searching a sorted array to find an element. It operates using the following steps:
+
+1. Find the middle `value` of a sorted array. If `value == target` return (found it!).
+1. If middle `value < target`, search right half of array in next compare.
+1. If middle `value > target`, search left half of array in next compare.
+
+As you can see, you are successively halving an array, which gives you the log(n) efficiency. For this challenge, we want you to show your work - how you got to the target value... the path you took!
+
+# --instructions--
+
+Write a function `binarySearch` that implements the binary search algorithm on an array, returning the path you took (each middle value comparison) to find the target in an array.
+
+The function takes a sorted array of integers and a target value as input. It returns an array containing (in-order) the middle value you found at each halving of the original array until you found the target value. The target value should be the last element of the returned array. If value not is found, return the string `Value Not Found`.
+
+For example, `binarySearch([1,2,3,4,5,6,7], 5)` would return `[4,6,5]`.
+
+For this challenge, when halving, you MUST use `Math.floor()` when doing division: `Math.floor(x/2)`. This will give a consistent, testable path.
+
+**Note:** The following array will be used in tests:
+
+```js
+const testArray = [
+ 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 49, 70
+];
+```
+
+# --hints--
+
+`binarySearch` should be a function.
+
+```js
+assert(typeof binarySearch == 'function');
+```
+
+`binarySearch(testArray, 0)` should return `[13, 5, 2, 0]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 0), [13, 5, 2, 0]);
+```
+
+`binarySearch(testArray, 1)` should return `[13, 5, 2, 0, 1]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 1), [13, 5, 2, 0, 1]);
+```
+
+
+`binarySearch(testArray, 2)` should return `[13, 5, 2]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 2), [13, 5, 2]);
+```
+
+`binarySearch(testArray, 6)` should return the string `Value Not Found`.
+
+```js
+assert.strictEqual(binarySearch(_testArray, 6), 'Value Not Found');
+```
+
+`binarySearch(testArray, 11)` should return `[13, 5, 10, 11]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 11), [13, 5, 10, 11])
+```
+
+`binarySearch(testArray, 13)` should return `[13]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 13), [13]);
+```
+
+
+# --seed--
+
+## --after-user-code--
+
+```js
+const _testArray = [
+ 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 49, 70
+];
+```
+
+## --seed-contents--
+
+```js
+function binarySearch(searchList, value) {
+ let arrayPath = [];
+ return arrayPath;
+}
+```
+
+
+
+# --solutions--
+
+```js
+let binarySearch = (searchList, value) => {
+ let arrayPath = [];
+
+ // set initial L - M - R
+ let left = 0;
+ let right = searchList.length - 1;
+ let middle = Math.floor(right / 2);
+
+ // if first comparison finds value
+ if (searchList[middle] == value) {
+ arrayPath.push(searchList[middle]);
+ return arrayPath;
+ }
+
+ while (searchList[middle] !== value) {
+ // add to output array
+ arrayPath.push(searchList[middle]);
+
+ // not found
+ if (right < left) {
+ return 'Value Not Found';
+ }
+ // value is in left or right portion of array
+ // update L - M - R
+ if (searchList[middle] > value) {
+ right = middle - 1;
+ middle = left + Math.floor((right - left) / 2);
+ } else {
+ left = middle + 1;
+ middle = left + Math.floor((right - left) / 2);
+ }
+
+ // if found update output array and exit
+ if (searchList[middle] == value) {
+ arrayPath.push(searchList[middle]);
+
+ break;
+ }
+ }
+ return arrayPath;
+};
+```
diff --git a/curriculum/challenges/english/10-coding-interview-prep/rosetta-code/longest-string-challenge.md b/curriculum/challenges/english/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
index 06a0c9d550..5253483f86 100644
--- a/curriculum/challenges/english/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
+++ b/curriculum/challenges/english/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
@@ -28,7 +28,7 @@ assert(typeof longestString == 'function');
assert(Array.isArray(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg'])));
```
-`longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` should return `["ccc", "ggg"]'`.
+`longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` should return `["ccc", "ggg"]`.
```js
assert.deepEqual(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg']), [
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md b/curriculum/challenges/english/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md
new file mode 100644
index 0000000000..1a08c12c98
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md
@@ -0,0 +1,47 @@
+---
+id: bd7158d8c242eddfaeb5bd13
+title: Build a Personal Portfolio Webpage
+challengeType: 3
+forumTopicId: 301143
+dashedName: build-a-personal-portfolio-webpage
+---
+
+# --description--
+
+**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: .
+
+Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story) and get all of the tests to pass. Give it your own personal style.
+
+You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies (just for example jQuery, React, Angular, or Vue) are not recommended for this project, and using them is at your own risk. Other projects will give you a chance to work with different technology stacks like React. We will accept and try to fix all issue reports that use the suggested technology stack for this project. Happy coding!
+
+**User Story #1:** My portfolio should have a welcome section with an id of `welcome-section`.
+
+**User Story #2:** The welcome section should have an `h1` element that contains text.
+
+**User Story #3:** My portfolio should have a projects section with an id of `projects`.
+
+**User Story #4:** The projects section should contain at least one element with a class of `project-tile` to hold a project.
+
+**User Story #5:** The projects section should contain at least one link to a project.
+
+**User Story #6:** My portfolio should have a navbar with an id of `navbar`.
+
+**User Story #7:** The navbar should contain at least one link that I can click on to navigate to different sections of the page.
+
+**User Story #8:** My portfolio should have a link with an id of `profile-link`, which opens my GitHub or FCC profile in a new tab.
+
+**User Story #9:** My portfolio should have at least one media query.
+
+**User Story #10:** The height of the welcome section should be equal to the height of the viewport.
+
+**User Story #11:** The navbar should always be at the top of the viewport.
+
+You can build your project by using this CodePen template and clicking `Save` to create your own pen. Or you can use this CDN link to run the tests in any environment you like: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`
+
+Once you're done, submit the URL to your working project with all its tests passing.
+
+# --solutions--
+
+```html
+// solution required
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md b/curriculum/challenges/english/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md
new file mode 100644
index 0000000000..8c59b183c8
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md
@@ -0,0 +1,55 @@
+---
+id: 587d78af367417b2b2512b04
+title: Build a Product Landing Page
+challengeType: 3
+forumTopicId: 301144
+dashedName: build-a-product-landing-page
+---
+
+# --description--
+
+**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: .
+
+Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story) and get all of the tests to pass. Give it your own personal style.
+
+You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies (just for example jQuery, React, Angular, or Vue) are not recommended for this project, and using them is at your own risk. Other projects will give you a chance to work with different technology stacks like React. We will accept and try to fix all issue reports that use the suggested technology stack for this project. Happy coding!
+
+**User Story #1:** My product landing page should have a `header` element with a corresponding `id="header"`.
+
+**User Story #2:** I can see an image within the `header` element with a corresponding `id="header-img"`. A company logo would make a good image here.
+
+**User Story #3:** Within the `#header` element I can see a `nav` element with a corresponding `id="nav-bar"`.
+
+**User Story #4:** I can see at least three clickable elements inside the `nav` element, each with the class `nav-link`.
+
+**User Story #5:** When I click a `.nav-link` button in the `nav` element, I am taken to the corresponding section of the landing page.
+
+**User Story #6:** I can watch an embedded product video with `id="video"`.
+
+**User Story #7:** My landing page has a `form` element with a corresponding `id="form"`.
+
+**User Story #8:** Within the form, there is an `input` field with `id="email"` where I can enter an email address.
+
+**User Story #9:** The `#email` input field should have placeholder text to let the user know what the field is for.
+
+**User Story #10:** The `#email` input field uses HTML5 validation to confirm that the entered text is an email address.
+
+**User Story #11:** Within the form, there is a submit `input` with a corresponding `id="submit"`.
+
+**User Story #12:** When I click the `#submit` element, the email is submitted to a static page (use this mock URL: ).
+
+**User Story #13:** The navbar should always be at the top of the viewport.
+
+**User Story #14:** My product landing page should have at least one media query.
+
+**User Story #15:** My product landing page should utilize CSS flexbox at least once.
+
+You can build your project by using this CodePen template and clicking `Save` to create your own pen. Or you can use this CDN link to run the tests in any environment you like: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`
+
+Once you're done, submit the URL to your working project with all its tests passing.
+
+# --solutions--
+
+```html
+// solution required
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md b/curriculum/challenges/english/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md
new file mode 100644
index 0000000000..e62a17690f
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md
@@ -0,0 +1,57 @@
+---
+id: 587d78af367417b2b2512b03
+title: Build a Survey Form
+challengeType: 3
+forumTopicId: 301145
+dashedName: build-a-survey-form
+---
+
+# --description--
+
+**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: .
+
+Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story) and get all of the tests to pass. Give it your own personal style.
+
+You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies (just for example jQuery, React, Angular, or Vue) are not recommended for this project, and using them is at your own risk. Other projects will give you a chance to work with different technology stacks like React. We will accept and try to fix all issue reports that use the suggested technology stack for this project. Happy coding!
+
+**User Story #1:** I can see a title with `id="title"` in H1 sized text.
+
+**User Story #2:** I can see a short explanation with `id="description"` in P sized text.
+
+**User Story #3:** I can see a `form` with `id="survey-form"`.
+
+**User Story #4:** Inside the form element, I am required to enter my name in a field with `id="name"`.
+
+**User Story #5:** Inside the form element, I am required to enter an email in a field with `id="email"`.
+
+**User Story #6:** If I enter an email that is not formatted correctly, I will see an HTML5 validation error.
+
+**User Story #7:** Inside the form, I can enter a number in a field with `id="number"`.
+
+**User Story #8:** If I enter non-numbers in the number input, I will see an HTML5 validation error.
+
+**User Story #9:** If I enter numbers outside the range of the number input, which are defined by the `min` and `max` attributes, I will see an HTML5 validation error.
+
+**User Story #10:** For the name, email, and number input fields inside the form I can see corresponding labels that describe the purpose of each field with the following ids: `id="name-label"`, `id="email-label"`, and `id="number-label"`.
+
+**User Story #11:** For the name, email, and number input fields, I can see placeholder text that gives me a description or instructions for each field.
+
+**User Story #12:** Inside the form element, I can select an option from a dropdown that has a corresponding `id="dropdown"`.
+
+**User Story #13:** Inside the form element, I can select a field from one or more groups of radio buttons. Each group should be grouped using the `name` attribute.
+
+**User Story #14:** Inside the form element, I can select several fields from a series of checkboxes, each of which must have a `value` attribute.
+
+**User Story #15:** Inside the form element, I am presented with a `textarea` at the end for additional comments.
+
+**User Story #16:** Inside the form element, I am presented with a button with `id="submit"` to submit all my inputs.
+
+You can build your project by using this CodePen template and clicking `Save` to create your own pen. Or you can use this CDN link to run the tests in any environment you like: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`
+
+Once you're done, submit the URL to your working project with all its tests passing.
+
+# --solutions--
+
+```html
+// solution required
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md b/curriculum/challenges/english/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md
new file mode 100644
index 0000000000..edf404b17a
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md
@@ -0,0 +1,55 @@
+---
+id: 587d78b0367417b2b2512b05
+title: Build a Technical Documentation Page
+challengeType: 3
+forumTopicId: 301146
+dashedName: build-a-technical-documentation-page
+---
+
+# --description--
+
+**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: .
+
+Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story) and get all of the tests to pass. Give it your own personal style.
+
+You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies (just for example jQuery, React, Angular, or Vue) are not recommended for this project, and using them is at your own risk. Other projects will give you a chance to work with different technology stacks like React. We will accept and try to fix all issue reports that use the suggested technology stack for this project. Happy coding!
+
+**User Story #1:** I can see a `main` element with a corresponding `id="main-doc"`, which contains the page's main content (technical documentation).
+
+**User Story #2:** Within the `#main-doc` element, I can see several `section` elements, each with a class of `main-section`. There should be a minimum of 5.
+
+**User Story #3:** The first element within each `.main-section` should be a `header` element which contains text that describes the topic of that section.
+
+**User Story #4:** Each `section` element with the class of `main-section` should also have an id that corresponds with the text of each `header` contained within it. Any spaces should be replaced with underscores (e.g. The `section` that contains the header "JavaScript and Java" should have a corresponding `id="JavaScript_and_Java"`).
+
+**User Story #5:** The `.main-section` elements should contain at least 10 `p` elements total (not each).
+
+**User Story #6:** The `.main-section` elements should contain at least 5 `code` elements total (not each).
+
+**User Story #7:** The `.main-section` elements should contain at least 5 `li` items total (not each).
+
+**User Story #8:** I can see a `nav` element with a corresponding `id="navbar"`.
+
+**User Story #9:** The navbar element should contain one `header` element which contains text that describes the topic of the technical documentation.
+
+**User Story #10:** Additionally, the navbar should contain link (`a`) elements with the class of `nav-link`. There should be one for every element with the class `main-section`.
+
+**User Story #11:** The `header` element in the navbar must come before any link (`a`) elements in the navbar.
+
+**User Story #12:** Each element with the class of `nav-link` should contain text that corresponds to the `header` text within each `section` (e.g. if you have a "Hello world" section/header, your navbar should have an element which contains the text "Hello world").
+
+**User Story #13:** When I click on a navbar element, the page should navigate to the corresponding section of the `main-doc` element (e.g. If I click on a `nav-link` element that contains the text "Hello world", the page navigates to a `section` element that has that id and contains the corresponding `header`.
+
+**User Story #14:** On regular sized devices (laptops, desktops), the element with `id="navbar"` should be shown on the left side of the screen and should always be visible to the user.
+
+**User Story #15:** My Technical Documentation page should use at least one media query.
+
+You can build your project by using this CodePen template and clicking `Save` to create your own pen. Or you can use this CDN link to run the tests in any environment you like: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`
+
+Once you're done, submit the URL to your working project with all its tests passing.
+
+# --solutions--
+
+```html
+// solution required
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md b/curriculum/challenges/english/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md
new file mode 100644
index 0000000000..55dd100b33
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md
@@ -0,0 +1,43 @@
+---
+id: bd7158d8c442eddfaeb5bd18
+title: Build a Tribute Page
+challengeType: 3
+forumTopicId: 301147
+dashedName: build-a-tribute-page
+---
+
+# --description--
+
+**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: .
+
+Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story) and get all of the tests to pass. Give it your own personal style.
+
+You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies (just for example jQuery, React, Angular, or Vue) are not recommended for this project, and using them is at your own risk. Other projects will give you a chance to work with different technology stacks like React. We will accept and try to fix all issue reports that use the suggested technology stack for this project. Happy coding!
+
+**User Story #1:** My tribute page should have an element with a corresponding `id="main"`, which contains all other elements.
+
+**User Story #2:** I should see an element with a corresponding `id="title"`, which contains a string (i.e. text) that describes the subject of the tribute page (e.g. "Dr. Norman Borlaug").
+
+**User Story #3:** I should see either a `figure` or a `div` element with a corresponding `id="img-div"`.
+
+**User Story #4:** Within the `img-div` element, I should see an `img` element with a corresponding `id="image"`.
+
+**User Story #5:** Within the `img-div` element, I should see an element with a corresponding `id="img-caption"` that contains textual content describing the image shown in `img-div`.
+
+**User Story #6:** I should see an element with a corresponding `id="tribute-info"`, which contains textual content describing the subject of the tribute page.
+
+**User Story #7:** I should see an `a` element with a corresponding `id="tribute-link"`, which links to an outside site that contains additional information about the subject of the tribute page. HINT: You must give your element an attribute of `target` and set it to `_blank` in order for your link to open in a new tab (i.e. `target="_blank"`).
+
+**User Story #8:** The `img` element should responsively resize, relative to the width of its parent element, without exceeding its original size.
+
+**User Story #9:** The `img` element should be centered within its parent element.
+
+You can build your project by using this CodePen template and clicking `Save` to create your own pen. Or you can use this CDN link to run the tests in any environment you like: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`.
+
+Once you're done, submit the URL to your working project with all its tests passing.
+
+# --solutions--
+
+```html
+// solution required
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-accessibility-by-building-a-quiz/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-068.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-068.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-068.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-068.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-069.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-069.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-069.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-069.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-070.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-070.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-070.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-070.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-071.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-071.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-071.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-071.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-072.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-072.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-072.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-072.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-073.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-073.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-073.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-073.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-074.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-074.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-074.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-074.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-075.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-075.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-075.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-075.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-076.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-076.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-076.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-076.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-077.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-077.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-077.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-077.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-078.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-078.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-078.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-078.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-079.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-079.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-079.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-079.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-080.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-080.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-080.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-080.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-081.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-081.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-081.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-081.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-082.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-082.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-082.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-082.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-083.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-083.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-083.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-083.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-084.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-084.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-084.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-084.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-085.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-085.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-085.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-085.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-086.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-086.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-086.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-086.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-087.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-087.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-087.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-087.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-088.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-088.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-088.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-088.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-089.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-089.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-089.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-089.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-090.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-090.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-090.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-090.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-091.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-091.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-091.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-091.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-092.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-092.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-092.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/step-092.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-animation-by-building-a-ferris-wheel/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-flexbox-by-building-a-photo-gallery/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-068.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-068.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-068.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-068.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-069.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-069.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-069.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-069.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-070.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-070.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-070.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-070.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-071.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-071.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-071.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-071.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-072.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-072.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-072.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-072.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-073.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-073.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-073.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-073.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-074.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-074.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-074.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-074.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-075.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-075.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-075.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-075.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-076.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-076.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-076.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-076.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-077.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-077.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-077.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-077.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-078.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-078.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-078.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-078.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-079.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-079.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-079.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-079.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-080.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-080.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-grid-by-building-a-magazine/step-080.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/step-080.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-068.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-068.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-068.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-068.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-069.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-069.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-069.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-069.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-070.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-070.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-070.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-070.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-071.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-071.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-071.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-071.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-072.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-072.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-072.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-072.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-073.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-073.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-073.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-073.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-074.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-074.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-074.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-074.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-075.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-075.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-075.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-075.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-076.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-076.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-076.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-076.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-077.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-077.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-077.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-077.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-078.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-078.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-078.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-078.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-079.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-079.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-079.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-079.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-080.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-080.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-080.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-080.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-081.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-081.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-081.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-081.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-082.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-082.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-082.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-082.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-083.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-083.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-083.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-083.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-084.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-084.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-084.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-084.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-085.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-085.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-085.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-085.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-086.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-086.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-086.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-086.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-087.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-087.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-087.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-087.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-088.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-088.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-088.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-088.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-089.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-089.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-089.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-089.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-090.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-090.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-090.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-090.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-091.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-091.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-091.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-091.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-092.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-092.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-092.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-092.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-093.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-093.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-093.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-093.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-094.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-094.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-094.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-094.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-095.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-095.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-095.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-095.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-096.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-096.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-096.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-096.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-097.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-097.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-097.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-097.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-098.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-098.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-098.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-098.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-099.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-099.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-099.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-099.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-100.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-100.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-101.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-101.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-102.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-102.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-103.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-103.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-104.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/step-104.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-068.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-068.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-068.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-068.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-069.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-069.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-069.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-069.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-070.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-070.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-070.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-070.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-071.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-071.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-071.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-071.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-072.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-072.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-072.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-072.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-073.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-073.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-073.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-073.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-074.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-074.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-074.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-074.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-075.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-075.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-075.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-075.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-076.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-076.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-076.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-076.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-077.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-077.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-077.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-077.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-078.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-078.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-078.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-078.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-079.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-079.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-079.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-079.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-080.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-080.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-080.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-080.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-081.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-081.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-081.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-081.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-082.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-082.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-082.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-082.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-083.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-083.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-083.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-083.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-084.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-084.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-084.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-084.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-085.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-085.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-085.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-085.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-086.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-086.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-086.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-086.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-087.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-087.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-087.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-087.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-088.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-088.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-088.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-088.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-089.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-089.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-089.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-089.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-090.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-090.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-090.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-090.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-091.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-091.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-091.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-091.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-092.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-092.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-092.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-092.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-093.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-093.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-093.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-093.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-094.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-094.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-094.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-094.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-095.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-095.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-095.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-095.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-096.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-096.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-096.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-096.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-097.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-097.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-097.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-097.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-098.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-098.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-098.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-098.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-099.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-099.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-099.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-099.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-100.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-100.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-100.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-100.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-101.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-101.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-101.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-101.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-102.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-102.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-102.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-102.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-103.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-103.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-103.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-103.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-104.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-104.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-104.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-104.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-105.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-105.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-105.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-105.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-106.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-106.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-106.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-106.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-107.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-107.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-107.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-107.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-108.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-108.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-108.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-108.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-109.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-109.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-109.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-109.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-110.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-110.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-110.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-110.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-111.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-111.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-111.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-111.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-112.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-112.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-112.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-112.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-113.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-113.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-113.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-113.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-114.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-114.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-114.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-114.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-115.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-115.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-115.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-115.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-116.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-116.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-116.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-116.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-117.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-117.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-117.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-117.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-118.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-118.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-css-variables-by-building-a-city-skyline/step-118.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/step-118.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-by-building-a-cat-photo-app/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-html-forms-by-building-a-registration-form/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-066.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-067.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-067.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-067.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-067.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-068.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-068.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-068.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-068.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-069.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-069.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-069.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-069.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-070.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-070.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-070.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-070.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-071.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-071.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-071.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-071.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-072.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-072.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-072.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-072.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-073.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-073.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-073.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-073.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-074.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-074.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-074.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-074.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-075.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-075.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-075.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-075.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-076.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-076.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-076.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-076.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-077.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-077.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-077.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-077.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-078.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-078.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-078.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-078.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-079.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-079.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-079.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-079.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-080.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-080.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-080.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-080.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-081.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-081.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-081.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-081.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-082.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-082.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-082.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-082.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-083.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-083.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-083.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-083.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-084.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-084.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-084.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-084.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-085.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-085.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-085.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-085.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-086.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-086.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-086.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-086.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-087.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-087.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-087.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-087.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-088.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-088.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-088.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-088.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-089.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-089.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-intermediate-css-by-building-a-picasso-painting/step-089.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/step-089.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-responsive-web-design-by-building-a-piano/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-the-css-box-model-by-building-a-rothko-painting/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-001.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-001.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-001.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-001.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-002.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-002.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-002.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-002.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-003.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-003.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-003.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-003.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-004.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-004.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-004.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-004.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-005.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-005.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-005.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-005.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-006.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-006.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-006.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-006.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-007.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-007.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-007.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-007.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-008.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-008.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-008.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-008.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-009.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-009.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-009.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-009.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-010.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-010.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-010.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-010.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-011.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-011.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-011.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-011.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-012.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-012.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-012.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-012.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-013.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-013.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-013.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-013.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-014.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-014.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-014.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-014.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-015.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-015.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-015.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-015.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-016.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-016.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-016.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-016.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-017.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-017.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-017.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-017.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-018.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-018.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-018.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-018.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-019.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-019.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-019.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-019.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-020.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-020.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-020.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-020.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-021.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-021.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-021.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-021.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-022.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-022.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-022.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-022.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-023.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-023.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-023.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-023.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-024.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-024.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-024.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-024.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-025.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-025.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-025.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-025.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-026.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-026.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-026.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-026.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-027.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-027.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-027.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-027.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-028.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-028.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-028.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-028.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-029.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-029.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-029.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-029.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-030.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-030.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-030.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-030.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-031.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-031.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-031.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-031.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-032.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-032.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-032.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-032.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-033.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-033.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-033.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-033.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-034.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-034.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-034.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-034.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-035.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-035.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-035.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-035.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-036.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-036.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-036.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-036.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-037.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-037.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-037.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-037.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-038.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-038.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-038.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-038.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-039.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-039.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-039.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-039.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-040.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-040.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-040.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-040.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-041.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-041.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-041.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-041.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-042.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-042.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-042.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-042.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-043.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-043.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-043.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-043.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-044.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-044.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-044.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-044.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-045.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-045.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-045.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-045.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-046.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-046.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-046.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-046.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-047.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-047.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-047.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-047.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-048.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-048.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-048.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-048.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-049.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-049.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-049.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-049.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-050.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-050.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-050.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-050.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-051.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-051.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-051.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-052.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-052.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-052.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-053.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-053.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-053.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-054.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-054.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-054.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-054.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-055.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-055.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-055.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-055.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-056.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-056.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-056.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-056.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-057.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-057.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-057.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-057.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-058.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-058.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-058.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-058.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-059.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-059.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-059.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-059.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-060.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-060.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-060.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-060.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-061.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-061.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-061.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-061.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-062.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-062.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-062.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-062.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-063.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-063.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-063.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-063.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-064.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-064.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-064.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-064.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-065.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-065.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-065.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-065.md
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-066.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-066.md
similarity index 100%
rename from curriculum/challenges/english/01-responsive-web-design/learn-typography-by-building-a-nutrition-label/step-066.md
rename to curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/step-066.md
diff --git a/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md b/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md
index 60bf0f0bd1..4d0d847171 100644
--- a/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md
+++ b/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md
@@ -1,6 +1,6 @@
---
id: 587d824d367417b2b2512c53
-title: Test if a String Contains a Substring
+title: Evalúa si una cadena contiene un substring
challengeType: 2
forumTopicId: 301597
dashedName: test-if-a-string-contains-a-substring
@@ -8,17 +8,17 @@ dashedName: test-if-a-string-contains-a-substring
# --description--
-As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/).
+Como recordatorio, este proyecto está siendo construido con base en el siguiente proyecto inicial [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), o clonado desde [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/).
-`include()` and `notInclude()` work for strings too! `include()` asserts that the actual string contains the expected substring.
+`include()` y `notInclude()` también funcionan con cadenas! `include()` comprueba que la cadena actual contiene el substring esperado.
# --instructions--
-Within `tests/1_unit-tests.js` under the test labelled `#14` in the `Strings` suite, change each `assert` to either `assert.include` or `assert.notInclude` to make the test pass (should evaluate to `true`). Do not alter the arguments passed to the asserts.
+Dentro de `tests/1_unit-tests.js` bajo la prueba etiquetada `#14` en el conjunto de `Strings`, cambia cada `assert` a `assert.include` o `assert.notInclude` para pasar la prueba (debe evaluarse como `true`). No modifiques los argumentos pasados a los verificadores.
# --hints--
-All tests should pass.
+Todas las pruebas deben pasar.
```js
(getUserInput) =>
@@ -32,7 +32,7 @@ All tests should pass.
);
```
-You should choose the correct method for the first assertion - `include` vs. `notInclude`.
+Debe elegir el método correcto para la primera comprobación - `include` vs. `notInclude`.
```js
(getUserInput) =>
@@ -50,7 +50,7 @@ You should choose the correct method for the first assertion - `include` vs. `no
);
```
-You should choose the correct method for the second assertion - `include` vs. `notInclude`.
+Debe elegir el método correcto para la segunda comprobación - `include` vs. `notInclude`.
```js
(getUserInput) =>
diff --git a/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array.md b/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array.md
index 3ed6428022..5bbc0a720f 100644
--- a/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array.md
+++ b/curriculum/challenges/espanol/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array.md
@@ -1,6 +1,6 @@
---
id: 587d824d367417b2b2512c50
-title: Test if a Value is an Array
+title: Evalúa si un valor es un arreglo
challengeType: 2
forumTopicId: 301600
dashedName: test-if-a-value-is-an-array
@@ -8,15 +8,15 @@ dashedName: test-if-a-value-is-an-array
# --description--
-As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/).
+Como recordatorio, este proyecto está siendo construido con base en el siguiente proyecto inicial [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), o clonado desde [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/).
# --instructions--
-Within `tests/1_unit-tests.js` under the test labelled `#11` in the `Arrays` suite, change each `assert` to either `assert.isArray` or `assert.isNotArray` to make the test pass (should evaluate to `true`). Do not alter the arguments passed to the asserts.
+Dentro de `tests/1_unit-tests.js` bajo la prueba etiquetada `#11` en el `Arrays` suite, cambia cada `assert` a `assert.isArray` o `assert.isNotArray` para pasar la prueba (debe evaluarse como `true`). No modifiques los argumentos pasados a los verificadores.
# --hints--
-All tests should pass.
+Todas las pruebas deben pasar.
```js
(getUserInput) =>
@@ -30,7 +30,7 @@ All tests should pass.
);
```
-You should choose the correct method for the first assertion - `isArray` vs. `isNotArray`.
+Debes elegir el método correcto para la primera comprobación - `isArray` vs `isNotArray`.
```js
(getUserInput) =>
@@ -48,7 +48,7 @@ You should choose the correct method for the first assertion - `isArray` vs. `is
);
```
-You should choose the correct method for the second assertion - `isArray` vs. `isNotArray`.
+Debes elegir el método correcto para la segunda comprobación - `isArray` vs `isNotArray`.
```js
(getUserInput) =>
diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
index 338d88dd2e..68618717f1 100644
--- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
+++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md
@@ -25,7 +25,7 @@ Quando os usuários clicam no link `Contacts`, eles são levados à seção da p
# --instructions--
-Troque o link externo por um link interno mudando o atributo `href` para o valor `"#footer"` e o texto de `cat photos` para `Jump to Bottom`.
+Troque o link externo por um link interno mudando o atributo `href` para o valor `#footer` e o texto de `cat photos` para `Jump to Bottom`.
Remova o atributo `target="_blank"` da tag de âncora, pois ele faz com que o documento vinculado abra em uma nova aba do navegador.
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/algorithms/implement-binary-search.md b/curriculum/challenges/portuguese/10-coding-interview-prep/algorithms/implement-binary-search.md
new file mode 100644
index 0000000000..1af3b8b5be
--- /dev/null
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/algorithms/implement-binary-search.md
@@ -0,0 +1,150 @@
+---
+id: 61abc7ebf3029b56226de5b6
+title: Implementar a busca binária
+challengeType: 1
+forumTopicId: 487618
+dashedName: implement-binary-search
+---
+
+# --description--
+
+A busca binária é um algoritmo de eficiência **O(log(n))** para procurar um elemento em um array ordenado. Ele opera usando as seguintes etapas:
+
+1. Encontrar o `value` do meio de um array ordenado. Se `value == target`, retornar (encontramos!).
+1. Se `value < target`, procurar à direita do meio do array na próxima comparação.
+1. Se `value > target`, procurar à esquerda do meio do array na próxima comparação.
+
+Como você pode ver, você está dividindo um array para metade com sucesso, o que traz a eficiência log(n). Para este desafio, queremos que você mostre seu trabalho - como você conseguiu o valor de destino... o caminho que você fez!
+
+# --instructions--
+
+Escreva uma função `binarySearch` que implemente o algoritmo de busca binária em um array, retornando o caminho que você utilizou (cada comparação com o valor do meio) para encontrar o destino em um array.
+
+A função recebe um array ordenado de números inteiros e um valor de destino como entrada. Ele retorna um array contendo (em ordem) o valor do meio que você encontrou a cada divisão do array original até encontrar o valor de destino. O valor de destino deve ser o último elemento do array retornado. Se o valor não for encontrado, retorne a string `Value Not Found`.
+
+Por exemplo, `binarySearch([1,2,3,4,5,6,7], 5)` retornará `[4,6,5]`.
+
+Para este desafio, você DEVE usar `Math.floor()` ao fazer a divisão: `Math.floor(x/2)`. Isto criará um caminho coerente e testável.
+
+**Observação:** o array abaixo será usado nos testes:
+
+```js
+const testArray = [
+ 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 49, 70
+];
+```
+
+# --hints--
+
+`binarySearch` deve ser uma função.
+
+```js
+assert(typeof binarySearch == 'function');
+```
+
+`binarySearch(testArray, 0)` deve retornar `[13, 5, 2, 0]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 0), [13, 5, 2, 0]);
+```
+
+`binarySearch(testArray, 1)` deve retornar `[13, 5, 2, 0, 1]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 1), [13, 5, 2, 0, 1]);
+```
+
+
+`binarySearch(testArray, 2)` deve retornar `[13, 5, 2]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 2), [13, 5, 2]);
+```
+
+`binarySearch(testArray, 6)` deve retornar a string `Value Not Found`.
+
+```js
+assert.strictEqual(binarySearch(_testArray, 6), 'Value Not Found');
+```
+
+`binarySearch(testArray, 11)` deve retornar `[13, 5, 10, 11]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 11), [13, 5, 10, 11])
+```
+
+`binarySearch(testArray, 13)` deve retornar `[13]`.
+
+```js
+assert.deepEqual(binarySearch(_testArray, 13), [13]);
+```
+
+
+# --seed--
+
+## --after-user-code--
+
+```js
+const _testArray = [
+ 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 49, 70
+];
+```
+
+## --seed-contents--
+
+```js
+function binarySearch(searchList, value) {
+ let arrayPath = [];
+ return arrayPath;
+}
+```
+
+
+
+# --solutions--
+
+```js
+let binarySearch = (searchList, value) => {
+ let arrayPath = [];
+
+ // set initial L - M - R
+ let left = 0;
+ let right = searchList.length - 1;
+ let middle = Math.floor(right / 2);
+
+ // if first comparison finds value
+ if (searchList[middle] == value) {
+ arrayPath.push(searchList[middle]);
+ return arrayPath;
+ }
+
+ while (searchList[middle] !== value) {
+ // add to output array
+ arrayPath.push(searchList[middle]);
+
+ // not found
+ if (right < left) {
+ return 'Value Not Found';
+ }
+ // value is in left or right portion of array
+ // update L - M - R
+ if (searchList[middle] > value) {
+ right = middle - 1;
+ middle = left + Math.floor((right - left) / 2);
+ } else {
+ left = middle + 1;
+ middle = left + Math.floor((right - left) / 2);
+ }
+
+ // if found update output array and exit
+ if (searchList[middle] == value) {
+ arrayPath.push(searchList[middle]);
+
+ break;
+ }
+ }
+ return arrayPath;
+};
+```
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/longest-string-challenge.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
index 9880ca20e0..e11c9ef1d8 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/longest-string-challenge.md
@@ -28,7 +28,7 @@ assert(typeof longestString == 'function');
assert(Array.isArray(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg'])));
```
-`longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` deve retornar `["ccc", "ggg"]'`.
+`longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` deve retornar `["ccc", "ggg"]`.
```js
assert.deepEqual(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg']), [
diff --git a/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md b/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
new file mode 100644
index 0000000000..1ad0052da2
--- /dev/null
+++ b/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/create-a-more-complex-shape-using-css-and-html.md
@@ -0,0 +1,146 @@
+---
+id: 587d78a6367417b2b2512ade
+title: Створіть складнішу форму за допомогою CSS і HTML
+challengeType: 0
+videoUrl: 'https://scrimba.com/c/cPpz4fr'
+forumTopicId: 301050
+dashedName: create-a-more-complex-shape-using-css-and-html
+---
+
+# --description--
+
+Однією з найпопулярніших форм у світі є серце, і в цьому завданні ви створите його за допомогою CSS. Проте, спочатку вам потрібно зрозуміти, що собою являють псевдоелементи `::before` і `::after`. `::before` створює псевдоелемент, який є першим обраним дочірнім елементом, `::after` створює псевдоелемент, який є останнім обраним дочірнім елементом. У наступному прикладі псевдоелемент `::before` використовується, щоб додати прямокутник до елемента класу `heart`:
+
+```css
+.heart::before {
+ content: "";
+ background-color: yellow;
+ border-radius: 25%;
+ position: absolute;
+ height: 50px;
+ width: 70px;
+ top: -50px;
+ left: 5px;
+}
+```
+
+Для нормального функціонування псевдоелементів `::before` і `::after` необхідно, щоб вони мали визначену властивість `content`. Ця властивість зазвичай використовується, щоб додавати об'єкти на кшталт світлин або тексту до обраного елемента. Коли псевдоелементи `::before` і `::after` використовуються для створення форм, властивість `content` також необхідна, але вона встановлена як порожній рядок. У попередньому прикладі елемент з класом `heart` має псевдоелемент `::before`, що створює жовтий прямокутник зі значеннями висоти та ширини `50px` і `70px` відповідно. Цей прямокутник має заокруглені кути завдяки значенню `border-radius`, рівним 25%, і розташований на `5px` ліворуч від елемента і на `50px` над вершиною елемента.
+
+# --instructions--
+
+Перетворіть елемент на екрані на серце. У селекторі `heart::after` замініть фоновий колір `background-color` на `pink` і встановіть значення `border-radius` на 50%.
+
+Потім оберіть елемент з класом `heart` (тільки `heart`) і заповніть властивість `transform`. Використовуйте функцію `rotate()` з -45 градусами.
+
+Нарешті, у селекторі `heart::before` встановіть його властивість `content` на порожній рядок.
+
+# --hints--
+
+Властивість `background-color` селектора `heart::after` має бути `pink`.
+
+```js
+const heartAfter = code.match(/\.heart::after\s*{[\s\S]+?[^\}]}/g)[0];
+assert(
+ /({|;)\s*background-color\s*:\s*pink\s*(;|})/g.test(heartAfter)
+);
+```
+
+`border-radius` селектора `heart::after` повинен мати значення 50%.
+
+```js
+assert(code.match(/border-radius\s*?:\s*?50%/gi).length == 2);
+```
+
+Властивість `transform` класу `heart` повинна використовувати функцію `rotate()`, встановлену на -45 градусів.
+
+```js
+assert(code.match(/transform\s*?:\s*?rotate\(\s*?-45deg\s*?\)/gi));
+```
+
+Елемент `content` селектора `heart::before` має бути порожнім рядком.
+
+```js
+assert(code.match(/\.heart::before\s*?{\s*?content\s*?:\s*?("|')\1\s*?;/gi));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+```
+
+# --solutions--
+
+```html
+
+
+```
diff --git a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md
new file mode 100644
index 0000000000..eb9043c6e1
--- /dev/null
+++ b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md
@@ -0,0 +1,201 @@
+---
+id: 565bbe00e9cc8ac0725390f4
+title: Підрахунок карт
+challengeType: 1
+videoUrl: 'https://scrimba.com/c/c6KE7ty'
+forumTopicId: 16809
+dashedName: counting-cards
+---
+
+# --description--
+
+У казино грі Blackjack гравець може здобути перевагу над казино, відстежуючи відносне число старших та молодших карт, що залишились в колоді. Це називається [Підрахунок карт](https://en.wikipedia.org/wiki/Card_counting).
+
+Чим більше старших карт у колоді, тим краще для гравця. Кожній карті присвоєно значення відповідно до нижчеподаної таблиці. Коли рахунок є більшим за нуль, гравець повинен ставити старшу карту. Коли рахунок дорівнює нулю або є меншим, гравець повинен ставити молодшу карту.
+
+Зміна рахунку Карти +1 2, 3, 4, 5, 6 0 7, 8, 9 -1 10, 'J', 'Q', 'К', 'A'
+
+Ви писатимете функцію підрахунку карт. Вона матиме параметр `card`, який може бути числом або рядком, а також збільшить або зменшить загальну змінну `count` відповідно до значення карти (див. таблицю). Тоді функція поверне рядок з поточним рахунком і рядок `Bet`, якщо рахунок більше нуля, або `Hold`, якщо рахунок дорівнює або менше нуля. Між поточним рахунком та рішенням гравця (`Bet` чи `Hold`) повиннен бути один пробіл.
+
+**Приклад результатів:** `-3 Hold` або `5 Bet`
+
+**Підказка**
+НЕ скидайте `count` до 0, коли значення 7, 8 або 9. Не повертайте масив.
+Не вставляйте лапки (одинарні чи подвійні) у результаті.
+
+# --hints--
+
+Послідовність карт 2, 3, 4, 5, 6 має повернути рядок `5 Bet`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(2);
+ cc(3);
+ cc(4);
+ cc(5);
+ var out = cc(6);
+ if (out === '5 Bet') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 7, 8, 9 має повернути рядок `0 Hold`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(7);
+ cc(8);
+ var out = cc(9);
+ if (out === '0 Hold') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 10, J, Q, K, A має повернути рядок `-5 Hold`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(10);
+ cc('J');
+ cc('Q');
+ cc('K');
+ var out = cc('A');
+ if (out === '-5 Hold') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 3, 7, Q, 8, A має повернути рядок `-1 Hold`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(3);
+ cc(7);
+ cc('Q');
+ cc(8);
+ var out = cc('A');
+ if (out === '-1 Hold') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 2, J, 9, 2, 7 має повернути рядок `1 Bet`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(2);
+ cc('J');
+ cc(9);
+ cc(2);
+ var out = cc(7);
+ if (out === '1 Bet') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 2, 2, 10 має повернути рядок `1 Bet`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(2);
+ cc(2);
+ var out = cc(10);
+ if (out === '1 Bet') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+Послідовність карт 3, 2, A, 10, K має повернути рядок `-1 Hold`
+
+```js
+assert(
+ (function () {
+ count = 0;
+ cc(3);
+ cc(2);
+ cc('A');
+ cc(10);
+ var out = cc('K');
+ if (out === '-1 Hold') {
+ return true;
+ }
+ return false;
+ })()
+);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+let count = 0;
+
+function cc(card) {
+ // Only change code below this line
+
+
+ return "Change Me";
+ // Only change code above this line
+}
+
+cc(2); cc(3); cc(7); cc('K'); cc('A');
+```
+
+# --solutions--
+
+```js
+let count = 0;
+function cc(card) {
+ switch(card) {
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ count++;
+ break;
+ case 10:
+ case 'J':
+ case 'Q':
+ case 'K':
+ case 'A':
+ count--;
+ }
+ if(count > 0) {
+ return count + " Bet";
+ } else {
+ return count + " Hold";
+ }
+}
+```
diff --git a/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
new file mode 100644
index 0000000000..09caebba8e
--- /dev/null
+++ b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
@@ -0,0 +1,88 @@
+---
+id: bd7158d8c443edefaeb5bd0f
+title: Мікросервіс метаданих файлу
+challengeType: 4
+forumTopicId: 301506
+dashedName: file-metadata-microservice
+---
+
+# --description--
+
+Створіть full stack додаток на JavaScript, який функціонально схожий до цього: . Робота над цим проектом залучатиме тебе писати свій код використовуючи один з наступних методів:
+
+- Клонувати [цей репозиторій з GitHub](https://github.com/freeCodeCamp/boilerplate-project-filemetadata/) та локально завершити свій проект.
+- Використати [наш проект для початківців на Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-filemetadata) для завершення свого проекту.
+- Використати конструктор сайтів на свій вибір для завершення проекту. Впевніться, що ви зберегли всі файли із нашого GitHub репозиторію.
+
+По завершенню переконайтеся, що працююча демоверсія вашого проекту розміщена у відкритому доступі. Потім введіть його URL-адресу в поле `Solution Link`. За бажанням також можете ввести посилання на вихідний код вашого проєкту в полі `GitHub Link`.
+
+# --instructions--
+
+**ПІДКАЗКА:** Ви можете використовувати npm пакет `multer` щоб опрацювати завантаження файлу.
+
+# --hints--
+
+Вам необхідно вказати свій власний проект, а не приклад URL-адреси.
+
+```js
+(getUserInput) => {
+ assert(
+ !/.*\/file-metadata-microservice\.freecodecamp\.rocks/.test(
+ getUserInput('url')
+ )
+ );
+};
+```
+
+Ви можете надіслати форму, що включає в себе завантаження файлу.
+
+```js
+async (getUserInput) => {
+ const site = await fetch(getUserInput('url'));
+ const data = await site.text();
+ const doc = new DOMParser().parseFromString(data, 'text/html');
+ assert(doc.querySelector('input[type="file"]'));
+};
+```
+
+Поле вводу файлу форми має параметр `name` встановлений в `upfile`.
+
+```js
+async (getUserInput) => {
+ const site = await fetch(getUserInput('url'));
+ const data = await site.text();
+ const doc = new DOMParser().parseFromString(data, 'text/html');
+ assert(doc.querySelector('input[name="upfile"]'));
+};
+```
+
+Коли ви надсилаєте файл, ви отримуєте `name`, `type` і `size` файлу в байтах у відповіді JSON.
+
+```js
+async (getUserInput) => {
+ const formData = new FormData();
+ const fileData = await fetch(
+ 'https://cdn.freecodecamp.org/weather-icons/01d.png'
+ );
+ const file = await fileData.blob();
+ formData.append('upfile', file, 'icon');
+ const data = await fetch(getUserInput('url') + '/api/fileanalyse', {
+ method: 'POST',
+ body: formData
+ });
+ const parsed = await data.json();
+ assert.property(parsed, 'size');
+ assert.equal(parsed.name, 'icon');
+ assert.equal(parsed.type, 'image/png');
+};
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
new file mode 100644
index 0000000000..5bb3dc8366
--- /dev/null
+++ b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -0,0 +1,156 @@
+---
+id: bd7158d8c443edefaeb5bdef
+title: Мікросервіс часової мітки
+challengeType: 4
+forumTopicId: 301508
+dashedName: timestamp-microservice
+---
+
+# --description--
+
+Створіть full stack додаток на JavaScript, який функціонально схожий до цього: . Робота над цим проектом залучатиме тебе писати свій код використовуючи один з наступних методів:
+
+- Клонувати [цей репозиторій з GitHub](https://github.com/freeCodeCamp/boilerplate-project-timestamp/) та локально завершити свій проект.
+- Використати [наш проект для початківців на Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-timestamp) для завершення свого проекту.
+- Використати конструктор сайтів на свій вибір для завершення проекту. Впевніться, що ви зберегли всі файли із нашого GitHub репозиторію.
+
+По завершенню переконайтеся, що працююча демоверсія вашого проєкту розміщена у відкритому доступі. Потім введіть його URL-адресу в поле `Solution Link`. За бажанням також можете ввести посилання на вихідний код вашого проєкту в полі `GitHub Link`.
+
+**Зверніть увагу:** оскільки мета проєкту не в перетворенні часу, припускайте, що усі відправлені дати будуть розглянуті `new Date()` як GMT.
+
+# --hints--
+
+Вам необхідно вказати свій власний проект, а не приклад URL-адреси.
+
+```js
+(getUserInput) => {
+ assert(
+ !/.*\/timestamp-microservice\.freecodecamp\.rocks/.test(getUserInput('url'))
+ );
+};
+```
+
+Запит на `/api/:date?` з дійсною датою має повернути об’єкт JSON з `unix` ключем, який є часовою міткою Unix введеної дати в мілісекундах
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api/2016-12-25').then(
+ (data) => {
+ assert.equal(
+ data.unix,
+ 1482624000000,
+ 'Should be a valid unix timestamp'
+ );
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+Запит на `/api/:date?` з дійсною датою має повернути об'єкт JSON з `utc` ключем, який є рядком введеної дати в форматі: `Thu, 01 Jan 1970 00:00:00 GMT`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api/2016-12-25').then(
+ (data) => {
+ assert.equal(
+ data.utc,
+ 'Sun, 25 Dec 2016 00:00:00 GMT',
+ 'Should be a valid UTC date string'
+ );
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+Запит до `/api/1451001600000` має повертати `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api/1451001600000').then(
+ (data) => {
+ assert(
+ data.unix === 1451001600000 &&
+ data.utc === 'Fri, 25 Dec 2015 00:00:00 GMT'
+ );
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+Ваш проєкт може обробляти дати, які можуть бути успішно розпарсені за допомогою `new Date(date_string)`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api/05 October 2011, GMT').then(
+ (data) => {
+ assert(
+ data.unix === 1317772800000 &&
+ data.utc === 'Wed, 05 Oct 2011 00:00:00 GMT'
+ );
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+Якщо введений рядок дати невірний, api повертає об'єкт, що має структуру `{ error : "Invalid Date" }`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api/this-is-not-a-date').then(
+ (data) => {
+ assert.equal(data.error.toLowerCase(), 'invalid date');
+ },
+ (xhr) => {
+ assert(xhr.responseJSON.error.toLowerCase() === 'invalid date');
+ }
+ );
+```
+
+Порожній параметр дати має повернути поточний час в об'єкті JSON з ключем `unix`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api').then(
+ (data) => {
+ var now = Date.now();
+ assert.approximately(data.unix, now, 20000);
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+Порожній параметр дати має повернути поточний час в об'єкті JSON з ключем `utc`
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/api').then(
+ (data) => {
+ var now = Date.now();
+ var serverTime = new Date(data.utc).getTime();
+ assert.approximately(serverTime, now, 20000);
+ },
+ (xhr) => {
+ throw new Error(xhr.responseText);
+ }
+ );
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
new file mode 100644
index 0000000000..63b48c1f3a
--- /dev/null
+++ b/curriculum/challenges/ukrainian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
@@ -0,0 +1,119 @@
+---
+id: bd7158d8c443edefaeb5bd0e
+title: Мікросервіс скорочування URL-адрес
+challengeType: 4
+forumTopicId: 301509
+dashedName: url-shortener-microservice
+---
+
+# --description--
+
+Створіть повний пакет додатку на JavaScript, який функціонально схожий до цього: . Робота над цим проєктом включатиме написання коду одним із таких методів:
+
+- Клонувати [цей репозиторій з GitHub](https://github.com/freeCodeCamp/boilerplate-project-urlshortener/) та локально завершити свій проект.
+- Використати [наш проект для початківців на Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-urlshortener) для завершення свого проекту.
+- Використати конструктор сайту на свій вибір для завершення проекту. Впевнитися, що включили всі файли з нашого репозиторію GitHub.
+
+По завершенню переконайтеся, що працююча демо-версія вашого проекту розміщена у відкритому доступі. Потім введіть його URL-адресу в поле `Solution Link`. За бажанням також можете ввести посилання на вихідний код вашого проєкту в полі `GitHub Link`.
+
+# --instructions--
+
+**ПІДКАЗКА:** не забудьте використовувати проміжне програмне забезпечення body parsing для обробки запитів POST. Також ви можете використовувати функцію `dns.lookup(host, cb)` з основного модуля `dns` для перевірки надісланої URL-адреси.
+
+# --hints--
+
+Вам необхідно вказати свій власний проект, а не приклад URL-адреси.
+
+```js
+(getUserInput) => {
+ assert(
+ !/.*\/url-shortener-microservice\.freecodecamp\.rocks/.test(
+ getUserInput('url')
+ )
+ );
+};
+```
+
+Ви можете POST URL до `/api/shorturl` та отримати відповідь JSON з властивостями `original_url` і `short_url`. Ось приклад: `{ original_url : 'https://freeCodeCamp.org', short_url : 1}`
+
+```js
+async (getUserInput) => {
+ const url = getUserInput('url');
+ const urlVariable = Date.now();
+ const fullUrl = `${url}/?v=${urlVariable}`
+ const res = await fetch(url + '/api/shorturl', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ body: `url=${fullUrl}`
+ });
+ if (res.ok) {
+ const { short_url, original_url } = await res.json();
+ assert.isNotNull(short_url);
+ assert.strictEqual(original_url, `${url}/?v=${urlVariable}`);
+ } else {
+ throw new Error(`${res.status} ${res.statusText}`);
+ }
+};
+```
+
+Коли ви відкриєте `/api/shorturl/`, вас буде перенаправлено на оригінальне URL.
+
+```js
+async (getUserInput) => {
+ const url = getUserInput('url');
+ const urlVariable = Date.now();
+ const fullUrl = `${url}/?v=${urlVariable}`
+ let shortenedUrlVariable;
+ const postResponse = await fetch(url + '/api/shorturl', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ body: `url=${fullUrl}`
+ });
+ if (postResponse.ok) {
+ const { short_url } = await postResponse.json();
+ shortenedUrlVariable = short_url;
+ } else {
+ throw new Error(`${postResponse.status} ${postResponse.statusText}`);
+ }
+ const getResponse = await fetch(
+ url + '/api/shorturl/' + shortenedUrlVariable
+ );
+ if (getResponse) {
+ const { redirected, url } = getResponse;
+ assert.isTrue(redirected);
+ assert.strictEqual(url,fullUrl);
+ } else {
+ throw new Error(`${getResponse.status} ${getResponse.statusText}`);
+ }
+};
+```
+
+Якщо ви введете недійсний URL, який не відповідає дійсному формату `http://www.example.com` , то відповідь JSON буде містити `{ error: 'invalid url' }`
+
+```js
+async (getUserInput) => {
+ const url = getUserInput('url');
+ const res = await fetch(url + '/api/shorturl', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ body: `url=ftp:/john-doe.org`
+ });
+ if (res.ok) {
+ const { error } = await res.json();
+ assert.isNotNull(error);
+ assert.strictEqual(error.toLowerCase(), 'invalid url');
+ } else {
+ throw new Error(`${res.status} ${res.statusText}`);
+ }
+};
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md
new file mode 100644
index 0000000000..9b67fad630
--- /dev/null
+++ b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md
@@ -0,0 +1,78 @@
+---
+id: 5e46f7e5ac417301a38fb929
+title: Demographic Data Analyzer
+challengeType: 10
+forumTopicId: 462367
+dashedName: demographic-data-analyzer
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+In this challenge you must analyze demographic data using Pandas. You are given a dataset of demographic data that was extracted from the 1994 Census database. Here is a sample of what the data looks like:
+
+```markdown
+| | age | workclass | fnlwgt | education | education-num | marital-status | occupation | relationship | race | sex | capital-gain | capital-loss | hours-per-week | native-country | salary |
+|---:|------:|:-----------------|---------:|:------------|----------------:|:-------------------|:------------------|:---------------|:-------|:-------|---------------:|---------------:|-----------------:|:-----------------|:---------|
+| 0 | 39 | State-gov | 77516 | Bachelors | 13 | Never-married | Adm-clerical | Not-in-family | White | Male | 2174 | 0 | 40 | United-States | <=50K |
+| 1 | 50 | Self-emp-not-inc | 83311 | Bachelors | 13 | Married-civ-spouse | Exec-managerial | Husband | White | Male | 0 | 0 | 13 | United-States | <=50K |
+| 2 | 38 | Private | 215646 | HS-grad | 9 | Divorced | Handlers-cleaners | Not-in-family | White | Male | 0 | 0 | 40 | United-States | <=50K |
+| 3 | 53 | Private | 234721 | 11th | 7 | Married-civ-spouse | Handlers-cleaners | Husband | Black | Male | 0 | 0 | 40 | United-States | <=50K |
+| 4 | 28 | Private | 338409 | Bachelors | 13 | Married-civ-spouse | Prof-specialty | Wife | Black | Female | 0 | 0 | 40 | Cuba | <=50K |
+```
+
+You must use Pandas to answer the following questions:
+
+- How many people of each race are represented in this dataset? This should be a Pandas series with race names as the index labels. (`race` column)
+- What is the average age of men?
+- What is the percentage of people who have a Bachelor's degree?
+- What percentage of people with advanced education (`Bachelors`, `Masters`, or `Doctorate`) make more than 50K?
+- What percentage of people without advanced education make more than 50K?
+- What is the minimum number of hours a person works per week?
+- What percentage of the people who work the minimum number of hours per week have a salary of more than 50K?
+- What country has the highest percentage of people that earn >50K and what is that percentage?
+- Identify the most popular occupation for those who earn >50K in India.
+
+Use the starter code in the file `demographic_data_analyzer`. Update the code so all variables set to "None" are set to the appropriate calculation or code. Round all decimals to the nearest tenth.
+
+Unit tests are written for you under `test_module.py`.
+
+## Development
+
+For development, you can use `main.py` to test your functions. Click the "run" button and `main.py` will run.
+
+## Testing
+
+We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+## Dataset Source
+
+Dua, D. and Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). Irvine, CA: University of California, School of Information and Computer Science.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md
new file mode 100644
index 0000000000..447e9ece0b
--- /dev/null
+++ b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md
@@ -0,0 +1,80 @@
+---
+id: 5e46f7e5ac417301a38fb928
+title: Mean-Variance-Standard Deviation Calculator
+challengeType: 10
+forumTopicId: 462366
+dashedName: mean-variance-standard-deviation-calculator
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+Create a function named `calculate()` in `mean_var_std.py` that uses Numpy to output the mean, variance, standard deviation, max, min, and sum of the rows, columns, and elements in a 3 x 3 matrix.
+
+The input of the function should be a list containing 9 digits. The function should convert the list into a 3 x 3 Numpy array, and then return a dictionary containing the mean, variance, standard deviation, max, min, and sum along both axes and for the flattened matrix.
+
+The returned dictionary should follow this format:
+
+```py
+{
+ 'mean': [axis1, axis2, flattened],
+ 'variance': [axis1, axis2, flattened],
+ 'standard deviation': [axis1, axis2, flattened],
+ 'max': [axis1, axis2, flattened],
+ 'min': [axis1, axis2, flattened],
+ 'sum': [axis1, axis2, flattened]
+}
+```
+
+If a list containing less than 9 elements is passed into the function, it should raise a `ValueError` exception with the message: "List must contain nine numbers." The values in the returned dictionary should be lists and not Numpy arrays.
+
+For example, `calculate([0,1,2,3,4,5,6,7,8])` should return:
+
+```py
+{
+ 'mean': [[3.0, 4.0, 5.0], [1.0, 4.0, 7.0], 4.0],
+ 'variance': [[6.0, 6.0, 6.0], [0.6666666666666666, 0.6666666666666666, 0.6666666666666666], 6.666666666666667],
+ 'standard deviation': [[2.449489742783178, 2.449489742783178, 2.449489742783178], [0.816496580927726, 0.816496580927726, 0.816496580927726], 2.581988897471611],
+ 'max': [[6, 7, 8], [2, 5, 8], 8],
+ 'min': [[0, 1, 2], [0, 3, 6], 0],
+ 'sum': [[9, 12, 15], [3, 12, 21], 36]
+}
+```
+
+The unit tests for this project are in `test_module.py`.
+
+## Development
+
+For development, you can use `main.py` to test your `calculate()` function. Click the "run" button and `main.py` will run.
+
+## Testing
+
+We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md
new file mode 100644
index 0000000000..540499ebf5
--- /dev/null
+++ b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md
@@ -0,0 +1,90 @@
+---
+id: 5e46f7f8ac417301a38fb92a
+title: Medical Data Visualizer
+challengeType: 10
+forumTopicId: 462368
+dashedName: medical-data-visualizer
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+In this project, you will visualize and make calculations from medical examination data using matplotlib, seaborn, and pandas. The dataset values were collected during medical examinations.
+
+## Data description
+
+The rows in the dataset represent patients and the columns represent information like body measurements, results from various blood tests, and lifestyle choices. You will use the dataset to explore the relationship between cardiac disease, body measurements, blood markers, and lifestyle choices.
+
+File name: medical_examination.csv
+
+| Feature | Variable Type | Variable | Value Type |
+|:-------:|:------------:|:-------------:|:----------:|
+| Age | Objective Feature | age | int (days) |
+| Height | Objective Feature | height | int (cm) |
+| Weight | Objective Feature | weight | float (kg) |
+| Gender | Objective Feature | gender | categorical code |
+| Systolic blood pressure | Examination Feature | ap_hi | int |
+| Diastolic blood pressure | Examination Feature | ap_lo | int |
+| Cholesterol | Examination Feature | cholesterol | 1: normal, 2: above normal, 3: well above normal |
+| Glucose | Examination Feature | gluc | 1: normal, 2: above normal, 3: well above normal |
+| Smoking | Subjective Feature | smoke | binary |
+| Alcohol intake | Subjective Feature | alco | binary |
+| Physical activity | Subjective Feature | active | binary |
+| Presence or absence of cardiovascular disease | Target Variable | cardio | binary |
+
+## Tasks
+
+Create a chart similar to `examples/Figure_1.png`, where we show the counts of good and bad outcomes for the `cholesterol`, `gluc`, `alco`, `active`, and `smoke` variables for patients with cardio=1 and cardio=0 in different panels.
+
+Use the data to complete the following tasks in `medical_data_visualizer.py`:
+
+- Add an `overweight` column to the data. To determine if a person is overweight, first calculate their BMI by dividing their weight in kilograms by the square of their height in meters. If that value is > 25 then the person is overweight. Use the value 0 for NOT overweight and the value 1 for overweight.
+- Normalize the data by making 0 always good and 1 always bad. If the value of `cholesterol` or `gluc` is 1, make the value 0. If the value is more than 1, make the value 1.
+- Convert the data into long format and create a chart that shows the value counts of the categorical features using seaborn's `catplot()`. The dataset should be split by 'Cardio' so there is one chart for each `cardio` value. The chart should look like `examples/Figure_1.png`.
+- Clean the data. Filter out the following patient segments that represent incorrect data:
+ - diastolic pressure is higher than systolic (Keep the correct data with `(df['ap_lo'] <= df['ap_hi'])`)
+ - height is less than the 2.5th percentile (Keep the correct data with `(df['height'] >= df['height'].quantile(0.025))`)
+ - height is more than the 97.5th percentile
+ - weight is less than the 2.5th percentile
+ - weight is more than the 97.5th percentile
+- Create a correlation matrix using the dataset. Plot the correlation matrix using seaborn's `heatmap()`. Mask the upper triangle. The chart should look like `examples/Figure_2.png`.
+
+Any time a variable is set to `None`, make sure to set it to the correct code.
+
+Unit tests are written for you under `test_module.py`.
+
+## Development
+
+For development, you can use `main.py` to test your functions. Click the "run" button and `main.py` will run.
+
+## Testing
+
+We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md
new file mode 100644
index 0000000000..2ca374ca72
--- /dev/null
+++ b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md
@@ -0,0 +1,60 @@
+---
+id: 5e46f802ac417301a38fb92b
+title: Page View Time Series Visualizer
+challengeType: 10
+forumTopicId: 462369
+dashedName: page-view-time-series-visualizer
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-page-view-time-series-visualizer).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+For this project you will visualize time series data using a line chart, bar chart, and box plots. You will use Pandas, Matplotlib, and Seaborn to visualize a dataset containing the number of page views each day on the freeCodeCamp.org forum from 2016-05-09 to 2019-12-03. The data visualizations will help you understand the patterns in visits and identify yearly and monthly growth.
+
+Use the data to complete the following tasks:
+
+- Use Pandas to import the data from "fcc-forum-pageviews.csv". Set the index to the "date" column.
+- Clean the data by filtering out days when the page views were in the top 2.5% of the dataset or bottom 2.5% of the dataset.
+- Create a `draw_line_plot` function that uses Matplotlib to draw a line chart similar to "examples/Figure_1.png". The title should be "Daily freeCodeCamp Forum Page Views 5/2016-12/2019". The label on the x axis should be "Date" and the label on the y axis should be "Page Views".
+- Create a `draw_bar_plot` function that draws a bar chart similar to "examples/Figure_2.png". It should show average daily page views for each month grouped by year. The legend should show month labels and have a title of "Months". On the chart, the label on the x axis should be "Years" and the label on the y axis should be "Average Page Views".
+- Create a `draw_box_plot` function that uses Searborn to draw two adjacent box plots similar to "examples/Figure_3.png". These box plots should show how the values are distributed within a given year or month and how it compares over time. The title of the first chart should be "Year-wise Box Plot (Trend)" and the title of the second chart should be "Month-wise Box Plot (Seasonality)". Make sure the month labels on bottom start at "Jan" and the x and x axis are labeled correctly. The boilerplate includes commands to prepare the data.
+
+For each chart, make sure to use a copy of the data frame. Unit tests are written for you under `test_module.py`.
+
+The boilerplate also includes commands to save and return the image.
+
+## Development
+
+For development, you can use `main.py` to test your functions. Click the "run" button and `main.py` will run.
+
+## Testing
+
+We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md
new file mode 100644
index 0000000000..04742507b6
--- /dev/null
+++ b/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md
@@ -0,0 +1,64 @@
+---
+id: 5e4f5c4b570f7e3a4949899f
+title: Sea Level Predictor
+challengeType: 10
+forumTopicId: 462370
+dashedName: sea-level-predictor
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+You will analyze a dataset of the global average sea level change since 1880. You will use the data to predict the sea level change through year 2050.
+
+Use the data to complete the following tasks:
+
+- Use Pandas to import the data from `epa-sea-level.csv`.
+- Use matplotlib to create a scatter plot using the "Year" column as the x-axis and the "CSIRO Adjusted Sea Level" column as the y-axix.
+- Use the `linregress` function from `scipy.stats` to get the slope and y-intercept of the line of best fit. Plot the line of best fit over the top of the scatter plot. Make the line go through the year 2050 to predict the sea level rise in 2050.
+- Plot a new line of best fit just using the data from year 2000 through the most recent year in the dataset. Make the line also go through the year 2050 to predict the sea level rise in 2050 if the rate of rise continues as it has since the year 2000.
+- The x label should be "Year", the y label should be "Sea Level (inches)", and the title should be "Rise in Sea Level".
+
+Unit tests are written for you under `test_module.py`.
+
+The boilerplate also includes commands to save and return the image.
+
+## Development
+
+For development, you can use `main.py` to test your functions. Click the "run" button and `main.py` will run.
+
+## Testing
+
+We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+## Data Source
+[Global Average Absolute Sea Level Change](https://datahub.io/core/sea-level-rise), 1880-2014 from the US Environmental Protection Agency using data from CSIRO, 2015; NOAA, 2015.
+
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/anonymous-message-board.md
new file mode 100644
index 0000000000..b7be38cf5f
--- /dev/null
+++ b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/anonymous-message-board.md
@@ -0,0 +1,172 @@
+---
+id: 587d824a367417b2b2512c45
+title: Anonymous Message Board
+challengeType: 4
+forumTopicId: 301568
+dashedName: anonymous-message-board
+---
+
+# --description--
+
+Build a full stack JavaScript app that is functionally similar to this: .
+
+Working on this project will involve you writing your code using one of the following methods:
+
+- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-messageboard/) and complete your project locally.
+- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard) to complete your project.
+- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo.
+
+When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your project's source code in the `GitHub Link` field.
+
+# --instructions--
+
+1. Set `NODE_ENV` to test without quotes when ready to write tests and DB to your databases connection string (in `.env`)
+2. Recommended to create controllers/handlers and handle routing in `routes/api.js`
+3. You will add any security features to `server.js`
+
+Write the following tests in `tests/2_functional-tests.js`:
+
+- Creating a new thread: POST request to `/api/threads/{board}`
+- Viewing the 10 most recent threads with 3 replies each: GET request to `/api/threads/{board}`
+- Deleting a thread with the incorrect password: DELETE request to `/api/threads/{board}` with an invalid `delete_password`
+- Deleting a thread with the correct password: DELETE request to `/api/threads/{board}` with a valid `delete_password`
+- Reporting a thread: PUT request to `/api/threads/{board}`
+- Creating a new reply: POST request to `/api/replies/{board}`
+- Viewing a single thread with all replies: GET request to `/api/replies/{board}`
+- Deleting a reply with the incorrect password: DELETE request to `/api/replies/{board}` with an invalid `delete_password`
+- Deleting a reply with the correct password: DELETE request to `/api/replies/{board}` with a valid `delete_password`
+- Reporting a reply: PUT request to `/api/replies/{board}`
+
+# --hints--
+
+You can provide your own project, not the example URL.
+
+```js
+(getUserInput) => {
+ assert(
+ !/.*\/anonymous-message-board\.freecodecamp\.rocks/.test(
+ getUserInput('url')
+ )
+ );
+};
+```
+
+Only allow your site to be loaded in an iFrame on your own pages.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(getUserInput('url') + '/_api/app-info');
+ const parsed = await data.json();
+ assert.isTrue(parsed.headers['x-frame-options']?.includes('SAMEORIGIN'));
+};
+```
+
+Do not allow DNS prefetching.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(getUserInput('url') + '/_api/app-info');
+ const parsed = await data.json();
+ assert.isTrue(parsed.headers['x-dns-prefetch-control']?.includes('off'));
+};
+```
+
+Only allow your site to send the referrer for your own pages.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(getUserInput('url') + '/_api/app-info');
+ const parsed = await data.json();
+ assert.isTrue(parsed.headers['referrer-policy']?.includes('same-origin'));
+};
+```
+
+You can send a POST request to `/api/threads/{board}` with form data including `text` and `delete_password`. The saved database record will have at least the fields `_id`, `text`, `created_on`(date & time), `bumped_on`(date & time, starts same as `created_on`), `reported` (boolean), `delete_password`, & `replies` (array).
+
+```js
+async (getUserInput) => {
+ const date = new Date();
+ const text = `fcc_test_${date}`;
+ const deletePassword = 'delete_me';
+ const data = { text, delete_password: deletePassword };
+ const url = getUserInput('url');
+ const res = await fetch(url + '/api/threads/fcc_test', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(data)
+ });
+ if (res.ok) {
+ const checkData = await fetch(url + '/api/threads/fcc_test');
+ const parsed = await checkData.json();
+ try {
+ assert.equal(parsed[0].text, text);
+ assert.isNotNull(parsed[0]._id);
+ assert.equal(new Date(parsed[0].created_on).toDateString(), date.toDateString());
+ assert.equal(parsed[0].bumped_on, parsed[0].created_on);
+ assert.isArray(parsed[0].replies);
+ } catch (err) {
+ throw new Error(err.responseText || err.message);
+ }
+ } else {
+ throw new Error(`${res.status} ${res.statusText}`);
+ }
+};
+```
+
+You can send a POST request to `/api/replies/{board}` with form data including `text`, `delete_password`, & `thread_id`. This will update the `bumped_on` date to the comment's date. In the thread's `replies` array, an object will be saved with at least the properties `_id`, `text`, `created_on`, `delete_password`, & `reported`.
+
+```js
+
+```
+
+You can send a GET request to `/api/threads/{board}`. Returned will be an array of the most recent 10 bumped threads on the board with only the most recent 3 replies for each. The `reported` and `delete_password` fields will not be sent to the client.
+
+```js
+
+```
+
+You can send a GET request to `/api/replies/{board}?thread_id={thread_id}`. Returned will be the entire thread with all its replies, also excluding the same fields from the client as the previous test.
+
+```js
+
+```
+
+You can send a DELETE request to `/api/threads/{board}` and pass along the `thread_id` & `delete_password` to delete the thread. Returned will be the string `incorrect password` or `success`.
+
+```js
+
+```
+
+You can send a DELETE request to `/api/replies/{board}` and pass along the `thread_id`, `reply_id`, & `delete_password`. Returned will be the string `incorrect password` or `success`. On success, the text of the `reply_id` will be changed to `[deleted]`.
+
+```js
+
+```
+
+You can send a PUT request to `/api/threads/{board}` and pass along the `thread_id`. Returned will be the string `success`. The `reported` value of the `thread_id` will be changed to `true`.
+
+```js
+
+```
+
+You can send a PUT request to `/api/replies/{board}` and pass along the `thread_id` & `reply_id`. Returned will be the string `success`. The `reported` value of the `reply_id` will be changed to `true`.
+
+```js
+
+```
+
+All 10 functional tests are complete and passing.
+
+```js
+
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/09-information-security/information-security-projects/port-scanner.md b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/port-scanner.md
new file mode 100644
index 0000000000..10c950657d
--- /dev/null
+++ b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/port-scanner.md
@@ -0,0 +1,95 @@
+---
+id: 5e46f979ac417301a38fb932
+title: Port Scanner
+challengeType: 10
+forumTopicId: 462372
+helpCategory: Python
+dashedName: port-scanner
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+Create a port scanner using Python.
+
+In the `port_scanner.py` file, create a function called `get_open_ports` that takes a `target` argument and a `port_range` argument. `target` can be a URL or IP address. `port_range` is a list of two numbers indicating the first and last numbers of the range of ports to check.
+
+Here are examples of how the function may be called:
+
+```py
+get_open_ports("209.216.230.240", [440, 445])
+get_open_ports("www.stackoverflow.com", [79, 82])
+```
+
+The function should return a list of open ports in the given range.
+
+The `get_open_ports` function should also take an optional third argument of `True` to indicate "Verbose" mode. If this is set to true, the function should return a descriptive string instead of a list of ports.
+
+Here is the format of the string that should be returned in verbose mode (text inside `{}` indicates the information that should appear):
+
+```bash
+Open ports for {URL} ({IP address})
+PORT SERVICE
+{port} {service name}
+{port} {service name}
+```
+
+You can use the dictionary in `common_ports.py` to get the correct service name for each port.
+
+For example, if the function is called like this:
+
+```py
+port_scanner.get_open_ports("scanme.nmap.org", [20, 80], True)
+```
+
+It should return the following:
+
+```bash
+Open ports for scanme.nmap.org (45.33.32.156)
+PORT SERVICE
+22 ssh
+80 http
+```
+
+Make sure to include proper spacing and new line characters.
+
+If the URL passed into the `get_open_ports` function is invalid, the function should return the string: "Error: Invalid hostname".
+
+If the IP address passed into the `get_open_ports` function is invalid, the function should return the string: "Error: Invalid IP address".
+
+## Development
+
+Write your code in `port_scanner.py`. For development, you can use `main.py` to test your code. Click the "run" button and `main.py` will run.
+
+## Testing
+
+The unit tests for this project are in `test_module.py`. We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/09-information-security/information-security-projects/sha-1-password-cracker.md b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/sha-1-password-cracker.md
new file mode 100644
index 0000000000..5d297ce139
--- /dev/null
+++ b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/sha-1-password-cracker.md
@@ -0,0 +1,72 @@
+---
+id: 5e46f983ac417301a38fb933
+title: SHA-1 Password Cracker
+challengeType: 10
+forumTopicId: 462374
+helpCategory: Python
+dashedName: sha-1-password-cracker
+---
+
+# --description--
+
+You will be [working on this project with our Replit starter code](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker).
+
+We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
+
+- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
+
+- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 hours)
+
+# --instructions--
+
+Passwords should never be stored in plain text. They should be stored as hashes, just in case the password list is discovered. However, not all hashes are created equal.
+
+For this project you will learn about the importance of good security by creating a password cracker to figure out passwords that were hashed using SHA-1.
+
+Create a function that takes in a SHA-1 hash of a password and returns the password if it is one of the top 10,000 passwords used. If the SHA-1 hash is NOT of a password in the database, return "PASSWORD NOT IN DATABASE".
+
+The function should hash each password from `top-10000-passwords.txt` and compare it to the hash passed into the function.
+
+The function should take an optional second argument named `use_salts`. If set to true, each salt string from the file `known-salts.txt` should be appended AND prepended to each password from `top-10000-passwords.txt` before hashing and before comparing it to the hash passed into the function.
+
+Here are some hashed passwords to test the function with:
+
+- `b305921a3723cd5d70a375cd21a61e60aabb84ec` should return "sammy123"
+- `c7ab388a5ebefbf4d550652f1eb4d833e5316e3e` should return "abacab"
+- `5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8` should return "password"
+
+Here are some hashed passwords to test the function with when `use_salts` is set to `True`:
+
+- `53d8b3dc9d39f0184144674e310185e41a87ffd5` should return "superman"
+- `da5a4e8cf89539e66097acd2f8af128acae2f8ae` should return "q1w2e3r4t5"
+- `ea3f62d498e3b98557f9f9cd0d905028b3b019e1` should return "bubbles1"
+
+The `hashlib` library has been imported for you. You should condider using it in your code. [Learn more about "hashlib" here.](https://docs.python.org/3/library/hashlib.html)
+
+## Development
+
+Write your code in `password_cracker.py`. For development, you can use `main.py` to test your code. Click the "run" button and `main.py` will run.
+
+## Testing
+
+The unit tests for this project are in `test_module.py`. We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
+
+## Submitting
+
+Copy your project's URL and submit it to freeCodeCamp.
+
+# --hints--
+
+It should pass all Python tests.
+
+```js
+
+```
+
+# --solutions--
+
+```py
+ # Python challenges don't need solutions,
+ # because they would need to be tested against a full working project.
+ # Please check our contributing guidelines to learn more.
+```
diff --git a/curriculum/challenges/ukrainian/09-information-security/information-security-projects/stock-price-checker.md b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/stock-price-checker.md
new file mode 100644
index 0000000000..4d7baddcb5
--- /dev/null
+++ b/curriculum/challenges/ukrainian/09-information-security/information-security-projects/stock-price-checker.md
@@ -0,0 +1,136 @@
+---
+id: 587d824a367417b2b2512c44
+title: Перевірка ціни на ринку акцій
+challengeType: 4
+forumTopicId: 301572
+dashedName: stock-price-checker
+---
+
+# --description--
+
+Напишіть повний пакет програми JavaScript, що функціонально подібний до цього: .
+
+Оскільки всі надійні API цін на акції вимагають API-ключа, ми створили обхідний шлях. Користуйтесь , аби отримувати актуальну інформацію про ціни на акції без необхідності підписуватись на власний ключ.
+
+При роботі над цим проєктом Ви будете писати код, використовуючи один із наступних методів:
+
+- Дублюйте [цей репозиторій GitHub](https://github.com/freeCodeCamp/boilerplate-project-stockchecker/) та завершіть свій проєкт локально.
+- Використовуйте [наш стартовий проєкт Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker) для завершення Вашого проєкту.
+- Використовуйте конструктор сайту на власний розсуд, щоб завершити проєкт. Впевніться, що Ви включили усі файли з нашого репозиторію GitHub.
+
+Коли Ви завершите роботу, переконайтесь, що робоча демоверсія Вашого проєкту розміщена у вільному доступі. Потім введіть URL-адресу проєкту у поле `Solution Link`. За бажанням також введіть посилання на вихідний код проєкту у полі `GitHub Link`.
+
+# --instructions--
+
+1. Встановіть `NODE_ENV` до `test` без лапок та встановіть `DB` на ваш MongoDB
+2. Завершіть проект в `routes/api.js` або через створення обробника/контролера
+3. Додайте будь-які заходи безпеки до `server.js`
+4. Створіть усі функціональні тести в `tests/2_functional-tests.js`
+
+**Зверніть увагу** на питання конфіденційності: вам доведеться зберегти IP-адресу. Важливо дотримуватися законів про конфіденційність даних, як от загального регламенту про захист даних. Один із варіантів — отримати дозвіл на збереження даних користувача, однак все ж простіше зробити їх анонімними. Не забудьте зробити ваші IP-адреси анонімними, перш ніж зберігати їх до бази даних у цьому завданні. Для цього ви можете скористатися хеш-функцією, методом truncate чи просто змінити частину IP-адреси на 0.
+
+Напишіть наступні тести в `tests/2_functional-tests.js`:
+
+- Перегляд однієї акції: запит GET до `/api/stock-prices/`
+- Якщо Ви переглянули одну акцію й вона Вам сподобалась: запит GET в `/api/stock-prices/`
+- Якщо Ви переглянули ту ж саму акцію й обрали її знову: запит GET в `/api/stock-prices/`
+- Якщо Ви переглянули дві акції: запит GET в `/api/stock-prices/`
+- Якщо Ви переглянули дві акції та вони Вам сподобались: запит GET в `/api/stock-prices/`
+
+# --hints--
+
+Ви можете додати свій проєкт, а не URL-посилання прикладу.
+
+```js
+(getUserInput) => {
+ assert(
+ !/.*\/stock-price-checker\.freecodecamp\.rocks/.test(getUserInput('url'))
+ );
+};
+```
+
+Ви маєте налаштувати політику безпеки вмісту так, щоб дозволити завантаження скриптів та CSS лише з вашого сервера.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(getUserInput('url') + '/_api/app-info');
+ const parsed = await data.json();
+ assert.isTrue(
+ parsed.headers['content-security-policy'].includes("script-src 'self'")
+ );
+ assert.isTrue(
+ parsed.headers['content-security-policy'].includes("style-src 'self'")
+ );
+};
+```
+
+Ви можете надіслати запит `GET` до `/api/stock-prices`, передаючи символ акції NASDAQ в параметр запиту `stock`. Отриманий об'єкт міститиме властивість із назвою `stockData`.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(
+ getUserInput('url') + '/api/stock-prices?stock=GOOG'
+ );
+ const parsed = await data.json();
+ assert.property(parsed, 'stockData');
+};
+```
+
+Властивість `stockData` включає символ `stock` у вигляді строки, `price` та `likes` у вигляді чисел.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(
+ getUserInput('url') + '/api/stock-prices?stock=GOOG'
+ );
+ const parsed = await data.json();
+ const ticker = parsed.stockData;
+ assert.typeOf(ticker.price, 'number');
+ assert.typeOf(ticker.likes, 'number');
+ assert.typeOf(ticker.stock, 'string');
+};
+```
+
+Ви також можете передати поле `like` як `true` (логічний тип), аби ваші вподобання було додано до акції(й). Приймається лише одне вподобання на IP.
+
+```js
+
+```
+
+Якщо Ви передасте 2 акції, то отриманим значенням буде масив із інформацією про обидві акції. Замість `likes` буде показано `rel_likes` (різниця між уподобаннями на обох акціях) для обох об'єктів `stockData`.
+
+```js
+async (getUserInput) => {
+ const data = await fetch(
+ getUserInput('url') + '/api/stock-prices?stock=GOOG&stock=MSFT'
+ );
+ const parsed = await data.json();
+ const ticker = parsed.stockData;
+ assert.typeOf(ticker, 'array');
+ assert.property(ticker[0], 'rel_likes');
+ assert.property(ticker[1], 'rel_likes');
+};
+```
+
+Усі 5 функціональних тестів завершено та успішно пройдено.
+
+```js
+async (getUserInput) => {
+ const tests = await fetch(getUserInput('url') + '/_api/get-tests');
+ const parsed = await tests.json();
+ assert.isTrue(parsed.length >= 5);
+ parsed.forEach((test) => {
+ assert.equal(test.state, 'passed');
+ });
+};
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md b/curriculum/challenges/ukrainian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md
new file mode 100644
index 0000000000..1d72070146
--- /dev/null
+++ b/curriculum/challenges/ukrainian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md
@@ -0,0 +1,81 @@
+---
+id: 58a25bcff9fc0f352b528e7d
+title: Hash and Compare Passwords Asynchronously
+challengeType: 2
+forumTopicId: 301578
+dashedName: hash-and-compare-passwords-asynchronously
+---
+
+# --description--
+
+As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/).
+
+As hashing is designed to be computationally intensive, it is recommended to do so asynchronously on your server as to avoid blocking incoming connections while you hash. All you have to do to hash a password asynchronous is call
+
+```js
+bcrypt.hash(myPlaintextPassword, saltRounds, (err, hash) => {
+ /*Store hash in your db*/
+});
+```
+
+# --instructions--
+
+Add this hashing function to your server (we've already defined the variables used in the function for you to use) and log it to the console for you to see! At this point you would normally save the hash to your database.
+
+Now when you need to figure out if a new input is the same data as the hash you would just use the compare function.
+
+```js
+bcrypt.compare(myPlaintextPassword, hash, (err, res) => {
+ /*res == true or false*/
+});
+```
+
+Add this into your existing hash function (since you need to wait for the hash to complete before calling the compare function) after you log the completed hash and log 'res' to the console within the compare. You should see in the console a hash then 'true' is printed! If you change 'myPlaintextPassword' in the compare function to 'someOtherPlaintextPassword' then it should say false.
+
+```js
+bcrypt.hash('passw0rd!', 13, (err, hash) => {
+ console.log(hash);
+ //$2a$12$Y.PHPE15wR25qrrtgGkiYe2sXo98cjuMCG1YwSI5rJW1DSJp0gEYS
+ bcrypt.compare('passw0rd!', hash, (err, res) => {
+ console.log(res); //true
+ });
+});
+
+```
+
+Submit your page when you think you've got it right.
+
+# --hints--
+
+Async hash should be generated and correctly compared.
+
+```js
+(getUserInput) =>
+ $.get(getUserInput('url') + '/_api/server.js').then(
+ (data) => {
+ assert.match(
+ data,
+ /START_ASYNC[^]*bcrypt.hash.*myPlaintextPassword( |),( |)saltRounds( |),( |).*err( |),( |)hash[^]*END_ASYNC/gi,
+ 'You should call bcrypt.hash on myPlaintextPassword and saltRounds and handle err and hash as a result in the callback'
+ );
+ assert.match(
+ data,
+ /START_ASYNC[^]*bcrypt.hash[^]*bcrypt.compare.*myPlaintextPassword( |),( |)hash( |),( |).*err( |),( |)res[^]*}[^]*}[^]*END_ASYNC/gi,
+ 'Nested within the hash function should be the compare function comparing myPlaintextPassword to hash'
+ );
+ },
+ (xhr) => {
+ throw new Error(xhr.statusText);
+ }
+ );
+```
+
+# --solutions--
+
+```js
+/**
+ Backend challenges don't need solutions,
+ because they would need to be tested against a full working project.
+ Please check our contributing guidelines to learn more.
+*/
+```
diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-124-ordered-radicals.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-124-ordered-radicals.md
new file mode 100644
index 0000000000..08779282a3
--- /dev/null
+++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-124-ordered-radicals.md
@@ -0,0 +1,142 @@
+---
+id: 5900f3e81000cf542c50fefb
+title: 'Problem 124: Ordered radicals'
+challengeType: 5
+forumTopicId: 301751
+dashedName: problem-124-ordered-radicals
+---
+
+# --description--
+
+The radical of $n$, $rad(n)$, is the product of the distinct prime factors of $n$. For example, $504 = 2^3 × 3^2 × 7$, so $rad(504) = 2 × 3 × 7 = 42$.
+
+If we calculate $rad(n)$ for $1 ≤ n ≤ 10$, then sort them on $rad(n)$, and sorting on $n$ if the radical values are equal, we get:
+
+
+
+
+
+ $Unsorted$
+
+ $Sorted$
+
+
+ $n$
+ $rad(n)$
+
+ $n$
+ $rad(n)$
+ $k$
+
+
+ 1
+ 1
+
+ 1
+ 1
+ 1
+
+
+ 2
+ 2
+
+ 2
+ 2
+ 2
+
+
+ 3
+ 3
+
+ 4
+ 2
+ 3
+
+
+ 4
+ 2
+
+ 8
+ 2
+ 4
+
+
+ 5
+ 5
+
+ 3
+ 3
+ 5
+
+
+ 6
+ 6
+
+ 9
+ 3
+ 6
+
+
+ 7
+ 7
+
+ 5
+ 5
+ 7
+
+
+ 8
+ 2
+
+ 6
+ 6
+ 8
+
+
+ 9
+ 3
+
+ 7
+ 7
+ 9
+
+
+ 10
+ 10
+
+ 10
+ 10
+ 10
+
+
+
+
+
+Let $E(k)$ be the $k$th element in the sorted $n$ column; for example, $E(4) = 8$ and $E(6) = 9$. If $rad(n)$ is sorted for $1 ≤ n ≤ 100000$, find $E(10000)$.
+
+# --hints--
+
+`orderedRadicals()` should return `21417`.
+
+```js
+assert.strictEqual(orderedRadicals(), 21417);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+function orderedRadicals() {
+
+ return true;
+}
+
+orderedRadicals();
+```
+
+# --solutions--
+
+```js
+// solution required
+```
diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-199-iterative-circle-packing.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-199-iterative-circle-packing.md
new file mode 100644
index 0000000000..d2fc26383f
--- /dev/null
+++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-199-iterative-circle-packing.md
@@ -0,0 +1,75 @@
+---
+id: 5900f4341000cf542c50ff46
+title: 'Problem 199: Iterative Circle Packing'
+challengeType: 5
+forumTopicId: 301837
+dashedName: problem-199-iterative-circle-packing
+---
+
+# --description--
+
+Three circles of equal radius are placed inside a larger circle such that each pair of circles is tangent to one another and the inner circles do not overlap. There are four uncovered "gaps" which are to be filled iteratively with more tangent circles.
+
+
+
+At each iteration, a maximally sized circle is placed in each gap, which creates more gaps for the next iteration. After 3 iterations (pictured), there are 108 gaps and the fraction of the area which is not covered by circles is 0.06790342, rounded to eight decimal places.
+
+What fraction of the area is not covered by circles after `n` iterations? Give your answer rounded to eight decimal places using the format x.xxxxxxxx .
+
+# --hints--
+
+`iterativeCirclePacking(10)` should return a number.
+
+```js
+assert(typeof iterativeCirclePacking(10) === 'number');
+```
+
+`iterativeCirclePacking(10)` should return `0.00396087`.
+
+```js
+assert.strictEqual(iterativeCirclePacking(10), 0.00396087);
+```
+
+`iterativeCirclePacking(3)` should return `0.06790342`.
+
+```js
+assert.strictEqual(iterativeCirclePacking(3), 0.06790342);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+function iterativeCirclePacking(n) {
+
+ return true;
+}
+
+iterativeCirclePacking(10);
+```
+
+# --solutions--
+
+```js
+function iterativeCirclePacking(n) {
+ let k1 = 1;
+ let k0 = k1 * (3 - 2 * Math.sqrt(3));
+ let a0 = 1 / (k0 * k0);
+ let a1 = 3 / (k1 * k1);
+ a1 += 3 * getArea(k0, k1, k1, n);
+ a1 += getArea(k1, k1, k1, n);
+ let final = ((a0 - a1) / a0).toFixed(8);
+
+ return parseFloat(final);
+ function getArea(k1, k2, k3, depth) {
+ if (depth == 0) return 0.0;
+ let k4 = k1 + k2 + k3 + 2 * Math.sqrt(k1 * k2 + k2 * k3 + k3 * k1);
+ let a = 1 / (k4 * k4);
+ a += getArea(k1, k2, k4, depth - 1);
+ a += getArea(k2, k3, k4, depth - 1);
+ a += getArea(k3, k1, k4, depth - 1);
+ return a;
+ }
+}
+```
diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral.md
new file mode 100644
index 0000000000..d88415d481
--- /dev/null
+++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral.md
@@ -0,0 +1,48 @@
+---
+id: 5900f4881000cf542c50ff9a
+title: >-
+ Problem 283: Integer sided triangles for which the area / perimeter ratio is integral
+challengeType: 5
+forumTopicId: 301934
+dashedName: >-
+ problem-283-integer-sided-triangles-for-which-the-area--perimeter-ratio-is-integral
+---
+
+# --description--
+
+Consider the triangle with sides 6, 8 and 10. It can be seen that the perimeter and the area are both equal to 24.
+
+So the $\frac{\text{area}}{\text{perimeter}}$ ratio is equal to 1.
+
+Consider also the triangle with sides 13, 14 and 15. The perimeter equals 42 while the area is equal to 84.
+
+So for this triangle the $\frac{\text{area}}{\text{perimeter}}$ ratio is equal to 2.
+
+Find the sum of the perimeters of all integer sided triangles for which the area/perimeter ratios are equal to positive integers not exceeding 1000.
+
+# --hints--
+
+`integralAreaPerimeterRatio()` should return `28038042525570324`.
+
+```js
+assert.strictEqual(integralAreaPerimeterRatio(), 28038042525570324);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+function integralAreaPerimeterRatio() {
+
+ return true;
+}
+
+integralAreaPerimeterRatio();
+```
+
+# --solutions--
+
+```js
+// solution required
+```
diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-29-distinct-powers.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-29-distinct-powers.md
new file mode 100644
index 0000000000..0fc363ab98
--- /dev/null
+++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-29-distinct-powers.md
@@ -0,0 +1,86 @@
+---
+id: 5900f3891000cf542c50fe9c
+title: 'Problem 29: Distinct powers'
+challengeType: 5
+forumTopicId: 301941
+dashedName: problem-29-distinct-powers
+---
+
+# --description--
+
+Consider all integer combinations of $a^b$ for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:
+
+
+ 22 =4, 23 =8, 24 =16, 25 =32
+ 32 =9, 33 =27, 34 =81, 35 =243
+ 42 =16, 43 =64, 44 =256, 45 =1024
+ 52 =25, 53 =125, 54 =625, 55 =3125
+
+
+If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:
+
+
+ 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
+
+
+How many distinct terms are in the sequence generated by $a^b$ for 2 ≤ `a` ≤ `n` and 2 ≤ `b` ≤ `n`?
+
+# --hints--
+
+`distinctPowers(15)` should return a number.
+
+```js
+assert(typeof distinctPowers(15) === 'number');
+```
+
+`distinctPowers(15)` should return 177.
+
+```js
+assert.strictEqual(distinctPowers(15), 177);
+```
+
+`distinctPowers(20)` should return 324.
+
+```js
+assert.strictEqual(distinctPowers(20), 324);
+```
+
+`distinctPowers(25)` should return 519.
+
+```js
+assert.strictEqual(distinctPowers(25), 519);
+```
+
+`distinctPowers(30)` should return 755.
+
+```js
+assert.strictEqual(distinctPowers(30), 755);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+function distinctPowers(n) {
+
+ return n;
+}
+
+distinctPowers(30);
+```
+
+# --solutions--
+
+```js
+const distinctPowers = (n) => {
+ let list = [];
+ for (let a=2; a<=n; a++) {
+ for (let b=2; b<=n; b++) {
+ let term = Math.pow(a, b);
+ if (list.indexOf(term)===-1) list.push(term);
+ }
+ }
+ return list.length;
+};
+```
diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-331-cross-flips.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-331-cross-flips.md
new file mode 100644
index 0000000000..024faedcfd
--- /dev/null
+++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-331-cross-flips.md
@@ -0,0 +1,52 @@
+---
+id: 5900f4b71000cf542c50ffca
+title: 'Problem 331: Cross flips'
+challengeType: 5
+forumTopicId: 301989
+dashedName: problem-331-cross-flips
+---
+
+# --description--
+
+N×N disks are placed on a square game board. Each disk has a black side and white side.
+
+At each turn, you may choose a disk and flip all the disks in the same row and the same column as this disk: thus $2 × N - 1$ disks are flipped. The game ends when all disks show their white side. The following example shows a game on a 5×5 board.
+
+
+
+It can be proven that 3 is the minimal number of turns to finish this game.
+
+The bottom left disk on the $N×N$ board has coordinates (0, 0); the bottom right disk has coordinates ($N - 1$,$0$) and the top left disk has coordinates ($0$,$N - 1$).
+
+Let $C_N$ be the following configuration of a board with $N × N$ disks: A disk at ($x$, $y$) satisfying $N - 1 \le \sqrt{x^2 + y^2} \lt N$, shows its black side; otherwise, it shows its white side. $C_5$ is shown above.
+
+Let $T(N)$ be the minimal number of turns to finish a game starting from configuration $C_N$ or 0 if configuration $C_N$ is unsolvable. We have shown that $T(5) = 3$. You are also given that $T(10) = 29$ and $T(1\\,000) = 395\\,253$.
+
+Find $\displaystyle \sum_{i = 3}^{31} T(2^i - i)$.
+
+# --hints--
+
+`crossFlips()` should return `467178235146843500`.
+
+```js
+assert.strictEqual(crossFlips(), 467178235146843500);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```js
+function crossFlips() {
+
+ return true;
+}
+
+crossFlips();
+```
+
+# --solutions--
+
+```js
+// solution required
+```
diff --git a/curriculum/getChallenges.js b/curriculum/getChallenges.js
index 0ce7a378ba..3b61d57610 100644
--- a/curriculum/getChallenges.js
+++ b/curriculum/getChallenges.js
@@ -4,6 +4,7 @@ const util = require('util');
const yaml = require('js-yaml');
const { findIndex } = require('lodash');
const readDirP = require('readdirp');
+const { getSuperOrder } = require('./utils');
const { helpCategoryMap } = require('../client/utils/challenge-types');
const { showUpcomingChanges } = require('../config/env.json');
const { curriculum: curriculumLangs } =
@@ -227,6 +228,14 @@ async function buildChallenges({ path: filePath }, curriculum, lang) {
}
const { meta } = challengeBlock;
const isCert = path.extname(filePath) === '.yml';
+ // TODO: there's probably a better way, but this makes sure we don't build any
+ // of the new curriculum when we don't want it.
+ if (
+ process.env.SHOW_NEW_CURRICULUM !== 'true' &&
+ superBlock === 'responsive-web-design-22'
+ ) {
+ return;
+ }
const challenge = isCert
? await createCertification(challengesDir, filePath, lang)
: await createChallenge(challengesDir, filePath, lang, meta);
@@ -295,8 +304,8 @@ ${getFullPath('english')}
);
const {
name: blockName,
+ hasEditableBoundaries,
order,
- superOrder,
isPrivate,
required = [],
template,
@@ -304,8 +313,20 @@ ${getFullPath('english')}
usesMultifileEditor
} = meta;
challenge.block = dasherize(blockName);
+ challenge.hasEditableBoundaries = !!hasEditableBoundaries;
challenge.order = order;
- challenge.superOrder = superOrder;
+ const superOrder = getSuperOrder(superBlock, {
+ showNewCurriculum: process.env.SHOW_NEW_CURRICULUM === 'true'
+ });
+ if (superOrder !== null) challenge.superOrder = superOrder;
+ /* Since there can be more than one way to complete a certification (using the
+ legacy curriculum or the new one, for instance), we need a certification
+ field to track which certification this belongs to. */
+ // TODO: generalize this to all superBlocks
+ challenge.certification =
+ superBlock === 'responsive-web-design-22'
+ ? 'responsive-web-design'
+ : superBlock;
challenge.superBlock = superBlock;
challenge.challengeOrder = challengeOrder;
challenge.isPrivate = challenge.isPrivate || isPrivate;
diff --git a/curriculum/package.json b/curriculum/package.json
index 051c81c55d..ad82f817a1 100644
--- a/curriculum/package.json
+++ b/curriculum/package.json
@@ -29,11 +29,11 @@
"test:full-output": "cross-env FULL_OUTPUT=true mocha --delay --reporter progress"
},
"devDependencies": {
- "@babel/core": "7.16.0",
+ "@babel/core": "7.16.5",
"@babel/polyfill": "7.12.1",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-typescript": "7.16.0",
- "@babel/register": "7.16.0",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
+ "@babel/register": "7.16.5",
"acorn": "8.5.0",
"acorn-jsx": "5.3.2",
"babel-plugin-dynamic-import-node": "2.3.3",
diff --git a/curriculum/schema/challengeSchema.js b/curriculum/schema/challengeSchema.js
index a086146c1c..eaceb7f0f5 100644
--- a/curriculum/schema/challengeSchema.js
+++ b/curriculum/schema/challengeSchema.js
@@ -26,6 +26,7 @@ const schema = Joi.object()
blockId: Joi.objectId(),
challengeOrder: Joi.number(),
removeComments: Joi.bool(),
+ certification: Joi.string().regex(slugRE),
challengeType: Joi.number().min(0).max(12).required(),
checksum: Joi.number(),
// __commentCounts is only used to test the comment replacement
@@ -39,6 +40,7 @@ const schema = Joi.object()
}),
challengeFiles: Joi.array().items(fileJoi),
guideUrl: Joi.string().uri({ scheme: 'https' }),
+ hasEditableBoundaries: Joi.boolean(),
helpCategory: Joi.valid(
'JavaScript',
'HTML-CSS',
diff --git a/curriculum/test/test-challenges.js b/curriculum/test/test-challenges.js
index a014058772..abe4f2c849 100644
--- a/curriculum/test/test-challenges.js
+++ b/curriculum/test/test-challenges.js
@@ -50,7 +50,7 @@ const {
getTranslatableComments
} = require('../getChallenges');
const { challengeSchemaValidator } = require('../schema/challengeSchema');
-const { testedLang } = require('../utils');
+const { testedLang, getSuperOrder } = require('../utils');
const ChallengeTitles = require('./utils/challengeTitles');
const MongoIds = require('./utils/mongoIds');
const createPseudoWorker = require('./utils/pseudo-worker');
@@ -268,22 +268,16 @@ function populateTestsForLang({ lang, challenges, meta }) {
]);
superBlocks.forEach(superBlock => {
const filteredMeta = Object.values(meta)
- /**
- * Exclude any meta which doesn't have a superOrder, as these shouldn't
- * appear on the learn map and thus don't need to be validated.
- */
- .filter(
- el =>
- el.superBlock === superBlock && typeof el.superOrder !== 'undefined'
- )
+ .filter(el => el.superBlock === superBlock)
.sort((a, b) => a.order - b.order);
if (!filteredMeta.length) {
return;
}
it(`${superBlock} should have the same order in every meta`, function () {
- const firstOrder = filteredMeta[0].superOrder;
+ const firstOrder = getSuperOrder(filteredMeta[0].superBlock);
+ assert.isNumber(firstOrder);
assert.isTrue(
- filteredMeta.every(el => el.superOrder === firstOrder),
+ filteredMeta.every(el => getSuperOrder(el.superBlock) === firstOrder),
'The superOrder properties are mismatched.'
);
});
diff --git a/curriculum/test/utils/challengeTitles.js b/curriculum/test/utils/challengeTitles.js
index 823aa57a56..8b6c94ca0b 100644
--- a/curriculum/test/utils/challengeTitles.js
+++ b/curriculum/test/utils/challengeTitles.js
@@ -17,8 +17,9 @@ class ChallengeTitles {
const isProjectCurriculumChallenge = title.match(/^Step\s*\d+$/);
titleToCheck = isProjectCurriculumChallenge ? pathAndTitle : titleToCheck;
const isKnown = this.knownTitles.includes(titleToCheck);
+ // TODO: check for the exceptions or remove the warning.
if (isKnown) {
- throw new Error(`
+ console.warn(`
All current curriculum challenges must have a unique title.
The title ${title} (at ${pathAndTitle}) is already assigned
`);
diff --git a/curriculum/test/utils/mongoIds.js b/curriculum/test/utils/mongoIds.js
index efa01ff36b..50ab7b5f3b 100644
--- a/curriculum/test/utils/mongoIds.js
+++ b/curriculum/test/utils/mongoIds.js
@@ -16,11 +16,10 @@ class MongoIds {
}
const idIndex = findIndex(this.knownIds, existing => id === existing);
+ // TODO: check for the exceptions or remove the warning.
if (idIndex !== -1) {
- throw new Error(`
- All challenges must have a unique id.
-
- The id for ${title} is already assigned
+ console.warn(`The id for challenge ${title} appears more than once.
+ With the exception of some projects this should not happen.
`);
}
this.knownIds = [...this.knownIds, id];
diff --git a/curriculum/utils.js b/curriculum/utils.js
index 481117478c..b2815aa548 100644
--- a/curriculum/utils.js
+++ b/curriculum/utils.js
@@ -16,3 +16,52 @@ exports.testedLang = function testedLang() {
throw Error('LOCALE must be set for testing');
}
};
+
+// TODO: migrate to TS and use the SuperBlocks enum from
+// config/certification-settings.ts
+
+const superBlockToOrder = {
+ 'responsive-web-design': 0,
+ 'javascript-algorithms-and-data-structures': 1,
+ 'front-end-development-libraries': 2,
+ 'data-visualization': 3,
+ 'relational-databases': 4,
+ 'back-end-development-and-apis': 5,
+ 'quality-assurance': 6,
+ 'scientific-computing-with-python': 7,
+ 'data-analysis-with-python': 8,
+ 'information-security': 9,
+ 'machine-learning-with-python': 10,
+ 'coding-interview-prep': 11
+};
+
+const superBlockToNewOrder = {
+ 'responsive-web-design-22': 0,
+ 'javascript-algorithms-and-data-structures': 1,
+ 'front-end-development-libraries': 2,
+ 'data-visualization': 3,
+ 'relational-databases': 4,
+ 'back-end-development-and-apis': 5,
+ 'quality-assurance': 6,
+ 'scientific-computing-with-python': 7,
+ 'data-analysis-with-python': 8,
+ 'information-security': 9,
+ 'machine-learning-with-python': 10,
+ 'coding-interview-prep': 11,
+ 'responsive-web-design': 12
+};
+
+function getSuperOrder(
+ superblock,
+ { showNewCurriculum } = { showNewCurriculum: false }
+) {
+ const orderMap = showNewCurriculum ? superBlockToNewOrder : superBlockToOrder;
+ if (typeof superblock !== 'string')
+ throw Error('superblock must be a string');
+ const order = orderMap[superblock];
+ if (typeof order === 'undefined')
+ throw Error(`${superblock} is not a valid superblock`);
+ return order;
+}
+
+exports.getSuperOrder = getSuperOrder;
diff --git a/curriculum/utils.test.js b/curriculum/utils.test.js
new file mode 100644
index 0000000000..4698e6ef9e
--- /dev/null
+++ b/curriculum/utils.test.js
@@ -0,0 +1,88 @@
+import { getSuperOrder } from './utils';
+
+describe('getSuperOrder', () => {
+ it('returns a number for valid superblocks', () => {
+ expect.assertions(1);
+ expect(typeof getSuperOrder('responsive-web-design')).toBe('number');
+ });
+
+ it('throws for unknown superblocks', () => {
+ expect.assertions(4);
+ expect(() => getSuperOrder()).toThrow();
+ expect(() => getSuperOrder(null)).toThrow();
+ expect(() => getSuperOrder('')).toThrow();
+ expect(() => getSuperOrder('respansive-wib-desoin')).toThrow();
+ });
+
+ it('throws for "certifications"', () => {
+ expect.assertions(1);
+ expect(() => getSuperOrder('certifications')).toThrow();
+ });
+
+ it('returns unique numbers for all current superblocks', () => {
+ expect.assertions(12);
+ expect(getSuperOrder('responsive-web-design')).toBe(0);
+ expect(getSuperOrder('javascript-algorithms-and-data-structures')).toBe(1);
+ expect(getSuperOrder('front-end-development-libraries')).toBe(2);
+ expect(getSuperOrder('data-visualization')).toBe(3);
+ expect(getSuperOrder('relational-databases')).toBe(4);
+ expect(getSuperOrder('back-end-development-and-apis')).toBe(5);
+ expect(getSuperOrder('quality-assurance')).toBe(6);
+ expect(getSuperOrder('scientific-computing-with-python')).toBe(7);
+ expect(getSuperOrder('data-analysis-with-python')).toBe(8);
+ expect(getSuperOrder('information-security')).toBe(9);
+ expect(getSuperOrder('machine-learning-with-python')).toBe(10);
+ expect(getSuperOrder('coding-interview-prep')).toBe(11);
+ });
+
+ it('returns a different order if passed the option showNewCurriculum: true', () => {
+ expect.assertions(13);
+ expect(
+ getSuperOrder('responsive-web-design-22', { showNewCurriculum: true })
+ ).toBe(0);
+ expect(
+ getSuperOrder('javascript-algorithms-and-data-structures', {
+ showNewCurriculum: true
+ })
+ ).toBe(1);
+ expect(
+ getSuperOrder('front-end-development-libraries', {
+ showNewCurriculum: true
+ })
+ ).toBe(2);
+ expect(
+ getSuperOrder('data-visualization', { showNewCurriculum: true })
+ ).toBe(3);
+ expect(
+ getSuperOrder('relational-databases', { showNewCurriculum: true })
+ ).toBe(4);
+ expect(
+ getSuperOrder('back-end-development-and-apis', {
+ showNewCurriculum: true
+ })
+ ).toBe(5);
+ expect(
+ getSuperOrder('quality-assurance', { showNewCurriculum: true })
+ ).toBe(6);
+ expect(
+ getSuperOrder('scientific-computing-with-python', {
+ showNewCurriculum: true
+ })
+ ).toBe(7);
+ expect(
+ getSuperOrder('data-analysis-with-python', { showNewCurriculum: true })
+ ).toBe(8);
+ expect(
+ getSuperOrder('information-security', { showNewCurriculum: true })
+ ).toBe(9);
+ expect(
+ getSuperOrder('machine-learning-with-python', { showNewCurriculum: true })
+ ).toBe(10);
+ expect(
+ getSuperOrder('coding-interview-prep', { showNewCurriculum: true })
+ ).toBe(11);
+ expect(
+ getSuperOrder('responsive-web-design', { showNewCurriculum: true })
+ ).toBe(12);
+ });
+});
diff --git a/cypress/integration/ShowCertification.js b/cypress/integration/ShowCertification.js
index eaad82c898..c740d17325 100644
--- a/cypress/integration/ShowCertification.js
+++ b/cypress/integration/ShowCertification.js
@@ -1,112 +1,44 @@
-import { SuperBlocks } from '../../config/certification-settings';
-
-const certificationUrl = '/certification/developmentuser/responsive-web-design';
-const projects = {
- superBlock: SuperBlocks.RespWebDesign,
- block: 'responsive-web-design-projects',
- challenges: [
- {
- slug: 'build-a-tribute-page',
- solution: 'https://codepen.io/moT01/pen/ZpJpKp'
- },
- {
- slug: 'build-a-survey-form',
- solution: 'https://codepen.io/moT01/pen/LrrjGz?editors=1010'
- },
- {
- slug: 'build-a-product-landing-page',
- solution: 'https://codepen.io/moT01/full/qKyKYL/'
- },
- {
- slug: 'build-a-technical-documentation-page',
- solution: 'https://codepen.io/moT01/full/JBvzNL/'
- },
- {
- slug: 'build-a-personal-portfolio-webpage',
- solution: 'https://codepen.io/moT01/pen/vgOaoJ'
- }
- ]
-};
+const certifiedUser = '/certification/certifieduser/responsive-web-design';
describe('A certification,', function () {
before(() => {
- cy.exec('npm run seed');
- cy.login();
-
- // submit projects for certificate
- const { superBlock, block, challenges } = projects;
- challenges.forEach(({ slug, solution }) => {
- const url = `/learn/${superBlock}/${block}/${slug}`;
- cy.visit(url);
- cy.get('#dynamic-front-end-form')
- .get('#solution')
- .type(solution, { force: true, delay: 0 });
- cy.contains("I've completed this challenge")
- .should('not.be.disabled')
- .click();
- cy.contains('Submit and go to next challenge').click().wait(1000);
- });
- cy.get('.donation-modal').should('be.visible');
- cy.visit('/settings');
-
- // set user settings to public to claim a cert
- cy.get('label:contains(Public)>input').each(el => {
- if (!/toggle-active/.test(el[0].parentElement.className)) {
- cy.wrap(el).click({ force: true });
- cy.wait(1000);
- }
- });
-
- // if honest policy not accepted
- cy.get('.honesty-policy button').then(btn => {
- if (btn[0].innerText === 'Agree') {
- btn[0].click({ force: true });
- cy.wait(1000);
- }
- });
-
- // claim certificate
- cy.get('a[href*="developmentuser/responsive-web-design"]').click({
- force: true
- });
+ cy.exec('npm run seed:certified-user');
});
describe('while viewing your own,', function () {
- before(() => {
+ beforeEach(() => {
cy.login();
- cy.visit(certificationUrl);
});
-
it('should render a LinkedIn button', function () {
+ cy.visit(certifiedUser);
cy.contains('Add this certification to my LinkedIn profile')
.should('have.attr', 'href')
.and(
'match',
// eslint-disable-next-line max-len
- /https:\/\/www\.linkedin\.com\/profile\/add\?startTask=CERTIFICATION_NAME&name=Responsive Web Design&organizationId=4831032&issueYear=\d\d\d\d&issueMonth=\d\d?&certUrl=https:\/\/freecodecamp\.org\/certification\/developmentuser\/responsive-web-design/
+ /https:\/\/www\.linkedin\.com\/profile\/add\?startTask=CERTIFICATION_NAME&name=Responsive Web Design&organizationId=4831032&issueYear=\d\d\d\d&issueMonth=\d\d?&certUrl=https:\/\/freecodecamp\.org\/certification\/certifieduser\/responsive-web-design/
);
});
it('should render a Twitter button', function () {
+ cy.visit(certifiedUser);
cy.contains('Share this certification on Twitter').should(
'have.attr',
'href',
- 'https://twitter.com/intent/tweet?text=I just earned the Responsive Web Design certification @freeCodeCamp! Check it out here: https://freecodecamp.org/certification/developmentuser/responsive-web-design'
+ 'https://twitter.com/intent/tweet?text=I just earned the Responsive Web Design certification @freeCodeCamp! Check it out here: https://freecodecamp.org/certification/certifieduser/responsive-web-design'
);
});
- it("should be issued with today's date", () => {
- const date = new Date();
- const issued = `Issued\xa0${new Intl.DateTimeFormat('en-US', {
- month: 'long'
- }).format(date)} ${date.getDate()}, ${date.getFullYear()}`;
+ it('should be issued with the submission date', () => {
+ cy.visit(certifiedUser);
+ const issued = `Issued\xa0August 3, 2018`;
cy.get('[data-cy=issue-date]').should('have.text', issued);
});
});
describe("while viewing someone else's,", function () {
before(() => {
- cy.visit(certificationUrl);
+ cy.visit(certifiedUser);
});
it('should display certificate', function () {
diff --git a/cypress/integration/learn/challenges/projects.js b/cypress/integration/learn/challenges/projects.js
index f2a41d6148..08d736c8e6 100644
--- a/cypress/integration/learn/challenges/projects.js
+++ b/cypress/integration/learn/challenges/projects.js
@@ -34,6 +34,7 @@ const pythonProjects = {
describe('project submission', () => {
beforeEach(() => {
cy.exec('npm run seed');
+ cy.login();
});
// NOTE: this will fail once challenge tests are added.
it('Should be possible to submit Python projects', () => {
@@ -46,7 +47,7 @@ describe('project submission', () => {
.type('https://replit.com/@camperbot/python-project#main.py');
cy.contains("I've completed this challenge").click();
- cy.contains('Go to next challenge');
+ cy.contains('go to next challenge');
// clicking on 'Go to next challenge' seems to have caused flakiness, so
// it's commented out until we figure out why.
// cy.contains('Go to next challenge').click();
@@ -61,7 +62,6 @@ describe('project submission', () => {
'JavaScript projects can be submitted and then viewed in /settings and on the certifications',
{ browser: 'electron' },
() => {
- cy.login();
cy.fixture('../../config/curriculum.json').then(curriculum => {
const { challenges, meta } =
curriculum[SuperBlocks.JsAlgoDataStruct].blocks[
diff --git a/cypress/integration/learn/common-components/navbar.js b/cypress/integration/learn/common-components/navbar.js
index 6f0a6701ca..928cc7ee71 100644
--- a/cypress/integration/learn/common-components/navbar.js
+++ b/cypress/integration/learn/common-components/navbar.js
@@ -32,7 +32,7 @@ function waitForAppStart() {
});
}
-describe('Navbar', () => {
+describe('Navbar when logged out', () => {
beforeEach(() => {
appHasStarted = false;
cy.visit('/', {
@@ -41,6 +41,32 @@ describe('Navbar', () => {
cy.viewport(1300, 660);
});
+ it('Should have a "Sign in" button', () => {
+ cy.contains("[data-test-label='landing-small-cta']", 'Sign in');
+ });
+
+ it(
+ 'Should have `Sign in` link on landing and learn pages' +
+ ' when not signed in',
+ () => {
+ cy.contains(selectors.smallCallToAction, 'Sign in');
+ cy.get(selectors.menuButton).click();
+ cy.get(selectors.navigationLinks).contains('Curriculum').click();
+ cy.contains(selectors.smallCallToAction, 'Sign in');
+ }
+ );
+});
+
+describe('Navbar Logged in', () => {
+ beforeEach(() => {
+ cy.login();
+ appHasStarted = false;
+ cy.visit('/', {
+ onBeforeLoad: spyOnListener
+ }).then(waitForAppStart);
+ cy.viewport(1300, 660);
+ });
+
it('Should render properly', () => {
cy.get('#universal-nav').should('be.visible');
cy.get('#universal-nav').should('have.class', 'universal-nav');
@@ -56,10 +82,6 @@ describe('Navbar', () => {
}
);
- it('Should have a "Sign in" button', () => {
- cy.contains("[data-test-label='landing-small-cta']", 'Sign in');
- });
-
// have the curriculum and CTA on landing and /learn pages.
it(
'Should have `Radio`, `Forum`, and `Curriculum` links on landing and learn pages' +
@@ -75,32 +97,18 @@ describe('Navbar', () => {
}
);
- it(
- 'Should have `Sign in` link on landing and learn pages' +
- ' when not signed in',
- () => {
- cy.contains(selectors.smallCallToAction, 'Sign in');
- cy.get(selectors.menuButton).click();
- cy.get(selectors.navigationLinks).contains('Curriculum').click();
- cy.contains(selectors.smallCallToAction, 'Sign in');
- }
- );
-
it('Should have `Profile` link when user is signed in', () => {
- cy.login();
cy.get(selectors.menuButton).click();
cy.get(selectors.navigationLinks).contains('Profile').click();
cy.url().should('include', '/developmentuser');
});
it('Should have a profile image with class `default-border`', () => {
- cy.login();
cy.get(selectors.avatarContainer).should('have.class', 'default-border');
cy.get(selectors.defaultAvatar).should('exist');
});
it('Should have a profile image with dimensions that are <= 31px', () => {
- cy.login();
cy.get(selectors.avatarImage).invoke('width').should('lte', 31);
cy.get(selectors.avatarImage).invoke('height').should('lte', 31);
});
diff --git a/cypress/integration/settings/certifications.js b/cypress/integration/settings/certifications.js
index f566d0efc8..8d6daa5b90 100644
--- a/cypress/integration/settings/certifications.js
+++ b/cypress/integration/settings/certifications.js
@@ -1,57 +1,40 @@
import '@testing-library/cypress/add-commands';
describe('Settings certifications area', () => {
- before(() => {
- cy.exec('npm run seed');
- cy.login();
- cy.visit('/settings');
- });
-
describe('initially', () => {
- it('Should render 15 "Claim Certification" buttons', () => {
+ before(() => {
+ cy.exec('npm run seed');
+ cy.login();
+ });
+
+ it('Should render the default settings page', () => {
+ cy.visit('/settings/');
cy.findAllByText('Claim Certification').should($btns => {
expect($btns).to.have.length(15);
});
+ cy.findByText('Show Certification').should('not.exist');
+ cy.contains('Agree');
+ cy.contains('Claim Certification').click();
+ cy.contains(
+ 'To claim a certification, you must first accept our academic honesty policy'
+ );
+ });
+ });
+
+ describe('after isHonest', () => {
+ before(() => {
+ cy.exec('npm run seed');
+ cy.login();
});
- it('Should render zero "Show Certification" buttons', () => {
- cy.contains('Show Certification').should('not.exist');
- });
-
- it('Should render one "Agree" button', () => {
- cy.contains('Agree').should('exist');
- });
-
- describe('before isHonest', () => {
- it('Should show "must agree" message when trying to claim a cert', () => {
- cy.contains('Claim Certification').click();
- cy.contains(
- 'To claim a certification, you must first accept our academic honesty policy'
- ).should('exist');
- });
- });
-
- describe('after isHonest', () => {
- beforeEach(() => {
- cy.visit('/');
- cy.login();
- cy.visit('/settings');
- });
-
- it('Should render "You have accepted our Academic Honesty Policy." button after clicking "Agree"', () => {
- cy.contains('Agree').click({ force: true });
- cy.contains('You have accepted our Academic Honesty Policy.').should(
- 'exist'
- );
- });
-
- it('Should show "incompleted projects" message when clicking "Claim Certification"', () => {
- cy.contains('Claim Certification').click({ force: true });
-
- cy.contains(
- 'It looks like you have not completed the necessary steps. Please complete the required projects to claim the Responsive Web Design Certification'
- ).should('exist');
- });
+ it('Should update the user as they try to claim their certifications', () => {
+ cy.visit('/settings');
+ cy.contains('Agree').click();
+ cy.contains('You have accepted our Academic Honesty Policy.');
+ cy.contains('Claim Certification').click();
+ cy.contains(
+ 'It looks like you have not completed the necessary steps. Please complete the required projects to claim the Responsive Web Design Certification'
+ );
});
});
});
diff --git a/cypress/integration/settings/settings.js b/cypress/integration/settings/settings.js
index 5a40f885f8..c88efcf73f 100644
--- a/cypress/integration/settings/settings.js
+++ b/cypress/integration/settings/settings.js
@@ -1,6 +1,8 @@
describe('Settings', () => {
- it('should be possible to reset your progress', () => {
+ before(() => {
cy.login();
+ });
+ it('should be possible to reset your progress', () => {
cy.visit('/settings');
cy.contains('Reset all of my progress').click();
cy.contains('Reset everything. I want to start from the beginning').click();
diff --git a/cypress/integration/settings/username-change.js b/cypress/integration/settings/username-change.js
index ca13b3a1f9..d1bb2d75ab 100644
--- a/cypress/integration/settings/username-change.js
+++ b/cypress/integration/settings/username-change.js
@@ -1,14 +1,18 @@
describe('Username input field', () => {
beforeEach(() => {
cy.login();
+ });
+
+ function goToSettings() {
cy.visit('/settings');
// Setting aliases here
cy.get('input[name=username-settings]').as('usernameInput');
cy.get('form#usernameSettings').as('usernameForm');
- });
+ }
it('Should be possible to type', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('twaha', { force: true })
@@ -16,6 +20,7 @@ describe('Username input field', () => {
});
it('Should show message when validating name', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('twaha', { force: true });
@@ -28,6 +33,7 @@ describe('Username input field', () => {
});
it('Should show username is available if it is', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('brad', { force: true });
@@ -41,6 +47,7 @@ describe('Username input field', () => {
});
it('Should info message if username is available', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('mrugesh', { force: true });
@@ -58,6 +65,7 @@ describe('Username input field', () => {
// eslint-disable-next-line
it('Should be able to click the `Save` button if username is avalable', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('oliver', { force: true });
@@ -68,6 +76,7 @@ describe('Username input field', () => {
});
it('Should show username is unavailable if it is', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('twaha', { force: true });
@@ -82,6 +91,7 @@ describe('Username input field', () => {
// eslint-disable-next-line
it('Should not be possible to click the `Save` button if username is unavailable', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('twaha', { force: true });
@@ -97,6 +107,7 @@ describe('Username input field', () => {
});
it('Should not show anything if user types their current name', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('developmentuser', { force: true });
@@ -106,6 +117,7 @@ describe('Username input field', () => {
// eslint-disable-next-line max-len
it('Should not be possible to click the `Save` button if user types their current name', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('developmentuser', { force: true });
@@ -114,6 +126,7 @@ describe('Username input field', () => {
});
it('Should show warning if username includes invalid character', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('Quincy Larson', { force: true });
@@ -128,6 +141,7 @@ describe('Username input field', () => {
// eslint-disable-next-line max-len
it('Should not be able to click the `Save` button if username includes invalid character', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('Quincy Larson', { force: true });
@@ -136,6 +150,7 @@ describe('Username input field', () => {
});
it('Should change username if `Save` button is clicked', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('quincy', { force: true });
@@ -149,6 +164,7 @@ describe('Username input field', () => {
});
it('Should change username with uppercase characters if `Save` button is clicked', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('Quincy', { force: true });
@@ -162,6 +178,7 @@ describe('Username input field', () => {
});
it('Should show flash message showing username has been updated', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('nhcarrigan', { force: true });
@@ -181,6 +198,7 @@ describe('Username input field', () => {
});
it('Should be able to close the shown flash message', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('bjorno', { force: true });
@@ -197,6 +215,7 @@ describe('Username input field', () => {
});
it('Should change username if enter is pressed', () => {
+ goToSettings();
cy.get('@usernameInput')
.clear({ force: true })
.type('symbol', { force: true });
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index af020d1e21..c85d078178 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -33,14 +33,7 @@
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => {});
Cypress.Commands.add('login', () => {
- cy.visit('/');
- cy.contains("Get started (it's free)").click();
- cy.location({ timeout: 10000 }).should(loc => {
- // I'm not 100% sure why logins get redirected to /learn/ via 301 in
- // development, but not in production, but they do. Hence to make it easier
- // work on tests, we'll just allow for both.
- expect(loc.pathname).to.match(/^\/learn\/?$/);
- });
+ cy.visit('http://localhost:3000/signin');
cy.contains('Welcome back');
});
@@ -60,7 +53,6 @@ Cypress.Commands.add('toggleAll', () => {
});
Cypress.Commands.add('resetUsername', () => {
- cy.login();
cy.visit('/settings');
cy.get('@usernameInput')
diff --git a/docs/_translations.md b/docs/_translations.md
index 8aac1485d7..e3439aa2c5 100644
--- a/docs/_translations.md
+++ b/docs/_translations.md
@@ -14,6 +14,7 @@
- [Japanese](/i18n/japanese/index.md)
- [Portuguese](/i18n/portuguese/index.md)
- [Italian](/i18n/italian/index.md)
+- [Ukrainian](/i18n/ukrainian/index.md)
diff --git a/docs/devops.md b/docs/devops.md
index 68dca48f68..bbe9507773 100644
--- a/docs/devops.md
+++ b/docs/devops.md
@@ -563,7 +563,7 @@ Provisioning VMs with the Code
2. Update `npm` and install PM2 and setup `logrotate` and startup on boot
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/how-to-test-translations-locally.md b/docs/how-to-test-translations-locally.md
index 0602f4b214..2c95e2956c 100644
--- a/docs/how-to-test-translations-locally.md
+++ b/docs/how-to-test-translations-locally.md
@@ -9,9 +9,10 @@ If you would like to test your translations on a local instance of the freeCodeC
There are a few steps to take in order to allow the codebase to build in your desired language.
-First, visit the `config/i18n/all-langs.js` file to add the language to the available languages list and configure the values. There are four objects here.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. There are four objects here.
- `availableLangs`: For both the `client` and `curriculum` arrays, add the text name of the language. This is the value that will be used in the `.env` file later.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
@@ -30,6 +31,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -55,10 +95,13 @@ const langCodes = {
};
```
-Next, open the `client/src/utils/algolia-locale-setup.js` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
Add an object for your language to the `algoliaIndices` object. You should use the values for the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
+> [!NOTE]
+> If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
If you were to add Dothraki:
```js
@@ -86,40 +129,6 @@ const algoliaIndices = {
};
```
-Next, you will need to tell the client which certifications are translated, and which are still in English. Open the `utils/is-audited.js` file. Within the `auditedCerts`, add a new key with your language's `availableLangs` value. Assign the value of that key to an array containing the _dashed names_ for the certifications that have been translated. Refer to the existing data for those dashed names.
-
-Continuing the work to enable Dothraki - we have translated the first three certifications:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
@@ -144,7 +153,7 @@ For the video challenges, you need to change a few things. First add the new loc
...
```
-Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
diff --git a/docs/i18n/chinese/devops.md b/docs/i18n/chinese/devops.md
index e7241c9de4..a9cf732df2 100644
--- a/docs/i18n/chinese/devops.md
+++ b/docs/i18n/chinese/devops.md
@@ -536,7 +536,7 @@ Provisioning VMs with the Code
2. Update `npm` and install PM2 and setup `logrotate` and startup on boot
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/chinese/how-to-test-translations-locally.md b/docs/i18n/chinese/how-to-test-translations-locally.md
index c0ff23e4c1..8ef754c12c 100644
--- a/docs/i18n/chinese/how-to-test-translations-locally.md
+++ b/docs/i18n/chinese/how-to-test-translations-locally.md
@@ -8,9 +8,10 @@ If you would like to test your translations on a local instance of the freeCodeC
There are a few steps to take in order to allow the codebase to build in your desired language.
-First, visit the `config/i18n/all-langs.js` file to add the language to the available languages list and configure the values. There are four objects here.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. There are four objects here.
- `availableLangs`: For both the `client` and `curriculum` arrays, add the text name of the language. This is the value that will be used in the `.env` file later.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Next, open the `client/src/utils/algolia-locale-setup.js` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
Add an object for your language to the `algoliaIndices` object. You should use the values for the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
+> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
If you were to add Dothraki:
```js
@@ -85,40 +127,6 @@ const algoliaIndices = {
};
```
-Next, you will need to tell the client which certifications are translated, and which are still in English. Open the `utils/is-audited.js` file. Within the `auditedCerts`, add a new key with your language's `availableLangs` value. Assign the value of that key to an array containing the _dashed names_ for the certifications that have been translated. Refer to the existing data for those dashed names.
-
-Continuing the work to enable Dothraki - we have translated the first three certifications:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
@@ -143,7 +151,7 @@ For the video challenges, you need to change a few things. First add the new loc
...
```
-Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
diff --git a/docs/i18n/chinese/how-to-work-on-coding-challenges.md b/docs/i18n/chinese/how-to-work-on-coding-challenges.md
index af03d7fd4b..36ade2941a 100644
--- a/docs/i18n/chinese/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/chinese/how-to-work-on-coding-challenges.md
@@ -73,6 +73,10 @@ assert.equal(
);
```
+# --notes--
+
+Extra information for a challenge, in markdown
+
# --seed--
## --before-user-code--
diff --git a/docs/i18n/espanol/devops.md b/docs/i18n/espanol/devops.md
index 91cd539fce..e5ca8386dd 100644
--- a/docs/i18n/espanol/devops.md
+++ b/docs/i18n/espanol/devops.md
@@ -536,7 +536,7 @@ Aprovisionamiento de MVs con el código
2. Actualiza `npm` e instala PM2 y configura `logrotate` e inicia en el arranque
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/espanol/how-to-test-translations-locally.md b/docs/i18n/espanol/how-to-test-translations-locally.md
index 17be9cbdf6..63720a14e9 100644
--- a/docs/i18n/espanol/how-to-test-translations-locally.md
+++ b/docs/i18n/espanol/how-to-test-translations-locally.md
@@ -8,12 +8,13 @@ En caso de que quieras probar tus traducciones en una instancia local del sitio
Hay algunos pasos a seguir para permitirle a la base de código compilar en tu lenguaje deseado.
-Primero, visita el archivo `config/i18n/all-langs.js` para añadir el lenguaje a la lista de lenguajes disponibles y configura los valores. Hay cuatro objetos aquí.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. Hay cuatro objetos aquí.
- `avaliableLangs`: Tanto para el arreglo `client` como para el arreglo `curriculum`, añade el nombre en texto del lenguaje. Este es el valor que se utilizará en el archivo `.env` más tarde.
-- `i18nextCodes`: Estos son los codigos de idioma ISO para cada lenguaje. Necesitarás añadir el codigo ISO apropiado para el lenguaje que estas habilitando. Estos deben ser únicos para cada lenguaje.
-- `langDisplayNames`: Estos son los nombres exhibidos para el selector de lenguajes en el menú de navegación.
-- `langCodes`: Estos son los códigos de idioma utilizados para el formateo de fechas y números. Estos deberían ser códigos Unicode CLDR en lugar de códigos ISO.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
+- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
+- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
+- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
Por ejemplo, si quisieras habilitar Dothraki como un lenguaje, tus objetos `all-langs.js` deberían verse así:
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Ahora, abre el archivo `client/src/utils/algolia-locale-setup.js`. Estos datos son utilizados por la barra de búsqueda que carga artículos de `/news` (noticias). While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. Estos datos son utilizados por la barra de búsqueda que carga artículos de `/news` (noticias). While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
Add an object for your language to the `algoliaIndices` object. You should use the values for the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
+> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
If you were to add Dothraki:
```js
@@ -85,40 +127,6 @@ const algoliaIndices = {
};
```
-Next, you will need to tell the client which certifications are translated, and which are still in English. Open the `utils/is-audited.js` file. Within the `auditedCerts`, add a new key with your language's `availableLangs` value. Assign the value of that key to an array containing the _dashed names_ for the certifications that have been translated. Refer to the existing data for those dashed names.
-
-Continuing the work to enable Dothraki - we have translated the first three certifications:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
@@ -143,7 +151,7 @@ For the video challenges, you need to change a few things. First add the new loc
...
```
-Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
diff --git a/docs/i18n/espanol/how-to-work-on-coding-challenges.md b/docs/i18n/espanol/how-to-work-on-coding-challenges.md
index 6e3cf6c840..4338884d99 100644
--- a/docs/i18n/espanol/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/espanol/how-to-work-on-coding-challenges.md
@@ -77,6 +77,10 @@ assert.equal(
);
```
+# --notes--
+
+Extra information for a challenge, in markdown
+
# --seed--
## --before-user-code--
diff --git a/docs/i18n/italian/devops.md b/docs/i18n/italian/devops.md
index 91c2fa9295..6042c6ef79 100644
--- a/docs/i18n/italian/devops.md
+++ b/docs/i18n/italian/devops.md
@@ -536,7 +536,7 @@ Fare provisioning delle VM con il codice
2. Aggiorna `npm` e installa PM2 e fai il setup di `logrotate` e avvio all'accensione
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/italian/how-to-test-translations-locally.md b/docs/i18n/italian/how-to-test-translations-locally.md
index ad903a38f5..9553a5b999 100644
--- a/docs/i18n/italian/how-to-test-translations-locally.md
+++ b/docs/i18n/italian/how-to-test-translations-locally.md
@@ -8,12 +8,13 @@ Se vuoi testare le tue traduzioni in una istanza locale della piattaforma `/lear
Ci sono alcuni step da fare per avere una build del codebase nella lingua di tua scelta.
-Prima, visita il file `config/i18n/all-langs.js` per aggiungere la lingua alle lingue disponibili nella lista e configurare i valori. Ci sono quattro oggetti qui.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. Ci sono quattro oggetti qui.
- `availableLangs`: Aggiungi il nome testuale della lingua agli array `client` e `curriculum`. Questo è il valore che sarà usato nel file `.env` più tardi.
-- `i18nextCodes`: questi sono i codici ISO per le varie lingue. Dovrai aggiungere il codice ISO appropriato per la lingua che stai attivando. Questi devono essere unici per ogni lingua.
-- `langDisplayNames`: Questi sono i nomi delle lingue visualizzati nel menù di navigazione.
-- `langCodes`: Questi sono i codici delle lingue usati per formattare date e numeri. Questi devono essere codici Unicode CLDR invece di codici ISO.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
+- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
+- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
+- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
Per esempio, se vuoi attivare la lingua Dothraki, il tuo oggetto `all-langs.js` dovrebbe essere come segue:
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Successivamente, apri il file `client/src/utils/algolia-locale-setup.js`. Questi dati sono usati dalla barra di ricerca che carica gli articoli in `/news`. Anche se è poco probabile che tu stia testando questa funzione, se questi dati mancano per la tua lingua possono esserci degli errori nel costruire il codebase localmente.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. Questi dati sono usati dalla barra di ricerca che carica gli articoli in `/news`. Anche se è poco probabile che tu stia testando questa funzione, se questi dati mancano per la tua lingua possono esserci degli errori nel costruire il codebase localmente.
Aggiungi un oggetto per la tua lingua all'oggetto `algoliaIndices`. Dovresti usare i valori dell'oggetto `english` per testare in locale, sostituiendo la chiave `english` con il valore della tua lingua in `availableLangs`.
+> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
Se volessi aggiungere Dothraki:
```js
@@ -85,41 +127,7 @@ const algoliaIndices = {
};
```
-Quindi, devi dire al client quali certificazioni sono tradotte e quali sono ancora in inglese. Apri il file `utils/is-audited.js`. Aggiungi a `auditedCerts` una nuova chiave con il valore della tua lingua in `availableLangs`. Assegna il valore di quella chiave a un array contenente i _nomi con trattino_ (dashed name) per le certificazioni che sono state tradotte. Riferisciti ai dati esistenti per i nomi con trattino.
-
-Continuando il lavoro per attivare Dothraki, abbiamo tradotto le prime tre certificazioni:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
-Infinine, nel file `.env`, dai a `CLIENT_LOCALE` e `CURRICULUM_LOCALE` il valore della tua nuova lingua (usando il valore in `availableLangs`.)
+Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
CLIENT_LOCALE="dothraki"
@@ -128,7 +136,7 @@ CURRICULUM_LOCALE="dothraki"
## Attivare video localizzati
-Per le sfide video, devi cambiare alcune cose. Come prima cosa aggiungi la nuova lingua alla query per GraphQL nel file `client/src/templates/Challenges/video/Show.tsx`. Per esempio, in questo modo aggiungeresti Dothraki alla query:
+For the video challenges, you need to change a few things. First add the new locale to the GraphQL query in the `client/src/templates/Challenges/video/Show.tsx` file. For example, adding Dothraki to the query:
```tsx
query VideoChallenge($slug: String!) {
@@ -143,19 +151,19 @@ Per le sfide video, devi cambiare alcune cose. Come prima cosa aggiungi la nuova
...
```
-Quindi aggiungi un id per la nuova lingua ogni sfida video in un blocco verificato (`auditedCerts`). Per esempio, se `auditedCerts` in `all-langs.js` include `scientific-computing-with-python` per `dothraki`, allora devi aggiungere `dothraki` in `videoLocaleIds`. Il frontespizio dovrebbe essere simile a questo:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
espanol: 3muQV-Im3Z0
italian: hiRTRAqNlpE
portuguese: AelGAcoMXbI
- dothraki: nuovo-id-qui
+ dothraki: new-id-here
dashedName: introduction-why-program
---
```
-Aggiorna l'interfaccia `VideoLocaleIds` in `client/src/redux/prop-types` così che includa la nuova lingua.
+Update the `VideoLocaleIds` interface in `client/src/redux/prop-types` to include the new language.
```ts
export interface VideoLocaleIds {
@@ -166,7 +174,7 @@ export interface VideoLocaleIds {
}
```
-Infine aggiorna lo schema delle sfide in `curriculum/schema/challengeSchema.js`.
+And finally update the challenge schema in `curriculum/schema/challengeSchema.js`.
```js
videoLocaleIds: Joi.when('challengeType', {
@@ -182,10 +190,10 @@ videoLocaleIds: Joi.when('challengeType', {
## Caricare le traduzioni
-Poiché la lingua non è ancora stata approvata per la produzione, i nostri script ancora non scaricheranno automaticamente le traduzioni. Solo lo staff ha accesso al download diretto delle traduzioni - sei il benvenuto a rivolgerti a noi attraverso la [chat room per i contributori](https://chat.freecodecamp.org/channel/contributors), o puoi tradurre i file markdown inglesi per le esigenze di test.
+Because the language has not been approved for production, our scripts are not automatically downloading the translations yet. Only staff have the access to directly download the translations - you are welcome to reach out to us in our [contributors chat room](https://chat.freecodecamp.org/channel/contributors), or you can translate the English markdown files locally for testing purposes.
-Una volta che avrai i file, li dovrai mettere nelle cartelle giuste. Per le sfide del curriculum, dovresti mettere le cartelle dei certificati (ad esempio `01-responsive-web-design`) nella cartella `curriculum/challenges/{lang}`. Per la nostra traduzione in Dothraki, questo sarebbe `curriculum/challenges/dothraki`. I file `.json` con le traduzioni del client vanno nella cartella `client/i18n/locales/{lang}`.
+Once you have the files, you will need to place them in the correct directory. For the curriculum challenges, you should place the certification folders (i.e. `01-responsive-web-design`) within the `curriculum/challenges/{lang}` directory. For our Dothraki translations, this would be `curriculum/challenges/dothraki`. The client translation `.json` files will go in the `client/i18n/locales/{lang}` directory.
-Una volta che questi saranno in posizione, dovresti essere in grado di eseguire `npm run develop` per vedere la versione tradotta di freeCodeCamp.
+Once these are in place, you should be able to run `npm run develop` to view your translated version of freeCodeCamp.
-> [!ATTENTION] Anche se puoi farei delle traduzioni localmente per i test, ricordiamo che le traduzioni _non_ devono essere inviate attraverso GitHub ma solo tramite Crowdin. Assicurati di resettare il tuo codebase locale dopo che avrai finito con i test.
+> [!ATTENTION] While you may perform translations locally for the purpose of testing, we remind everyone that translations should _not_ be submitted through GitHub and should only be done through Crowdin. Be sure to reset your local codebase after you are done testing.
diff --git a/docs/i18n/italian/how-to-work-on-coding-challenges.md b/docs/i18n/italian/how-to-work-on-coding-challenges.md
index c90988f549..7993fd7442 100644
--- a/docs/i18n/italian/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/italian/how-to-work-on-coding-challenges.md
@@ -73,6 +73,10 @@ assert.equal(
);
```
+# --notes--
+
+Extra information for a challenge, in markdown
+
# --seed--
## --before-user-code--
@@ -89,7 +93,7 @@ Codice eseguito dopo il codice dell'utente, ma prima dei test
## --seed-contents--
-Codice di partenza da far apparire nell'editor. Questa sezione deve contenere solo codice in backtick, come il seguente:
+Boilerplate code to render to the editor. This section should only contain code inside backticks, like the following:
```html
@@ -114,7 +118,7 @@ console.log('freeCodeCamp is awesome!');
# --solutions--
-Le soluzioni sono usate dai test CI per assicurarsi che i cambiamenti alla sezione hints facciano eseguire i test correttamente
+Solutions are used for the CI tests to ensure that changes to the hints will still pass as intended
```js
// prima soluzione - il linguaggio deve combaciare con il seed.
@@ -134,27 +138,27 @@ Le soluzioni sono usate dai test CI per assicurarsi che i cambiamenti alla sezio
# --question--
-Questi campi sono usati per le domande a scelta multipla delle sfide di Python.
+These fields are currently used for the multiple-choice Python challenges.
## --text--
-Il testo della domanda va qui.
+The question text goes here.
## --answers--
-Risposa 1
+Answer 1
---
-Risposta 2
+Answer 2
---
-Altre risposte
+More answers
## --video-solution--
-Il numero della risposta corretta va qui.
+The number for the correct answer goes here.
````
> [!NOTE]
@@ -186,9 +190,9 @@ $ ObjectId()
ObjectId("5a474d78df58bafeb3535d34")
````
-Il risultato è un nuovo id, per esempio sopra `5a474d78df58bafeb3535d34`.
+The result is a new id, for example `5a474d78df58bafeb3535d34` above.
-Una volta che hai il tuo id, mettilo nel file markdown nel campo `id` in cima, per esempio
+Once you have your id, put it into the markdown file as the `id` field at the top, e.g.
```yml
---
@@ -198,13 +202,13 @@ title: Challenge Title
## Dare un nome alle sfide
-Dare un nome alle cose è difficile. Lo abbiamo reso più semplice dando dei limiti.
+Naming things is hard. We've made it easier by imposing some constraints.
-Tutti i titoli delle sfide devono essere espliciti e seguire questo schema:
+All challenge titles should be explicit and should follow this pattern:
-\[verbo\]\[complemento oggetto\]
+\[verb\]\[object clause\]
-Ecco alcuni esempi di nomi di sfide:
+Here are some example challenge names:
- Usare la notazione in senso orario per specificare il padding di un elemento
- Condensare array usando .reduce
@@ -212,19 +216,19 @@ Ecco alcuni esempi di nomi di sfide:
## Istruzioni e descrizione di una sfida
-Le frasi dovrebbero essere chiare e concise con minimo utilizzo di linguaggio tecnico. Se il linguaggio tecnico è usato, deve essere subito seguito da una definizione in linguaggio comune.
+Sentences should be clear and concise with minimal jargon. If used, jargon should be immediately defined in plain English.
-I paragrafi devono essere corti (1-4 frasi circa). È più probabile che vengano lette alcune frasi corte invece di un muro di testo.
+Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text.
-Il testo della sfida dovrebbe usare la seconda persona ("tu") per aiutare ad avere un tono colloquiale. In questo modo il testo e le istruzioni sembrano parlare direttamente al camper che lavora sulle sfide. Cerca di evitare la prima persona ("io", "noi", "facciamo").
+Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us").
-Non usare link a siti esterni. Questi interrompono il flusso. I camper non dovrebbero mai cercare qualcosa su Google durante queste sfide. Se ci sono risorse di cui pensi che il camper possa beneficiare, aggiungile all'articolo della sfida nella guida.
+Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article.
-Puoi aggiugere diagrammi se necessario.
+You can add diagrams if necessary.
-Non usare emoji o emoticon nelle sfide. freeCodeCamp ha una comunità globale, e il significato culturare di una emoji o emoticon può essere differente nelle varie parti del mondo. In più, le emoji possono avere un aspetto diverso su diversi sistemi.
+Don't use emojis or emoticons in challenges. freeCodeCamp has a global community, and the cultural meaning of an emoji or emoticon may be different around the world. Also, emojis can render differently on different systems.
-I nomi propri dovrebbero usare le maiuscole correttamente quando possibile. Qui sotto trovi una lista di parole come dovrebbero apparire nelle sfide.
+Proper nouns should use correct capitalization when possible. Below is a list of words as they should appear in the challenges.
- JavaScript (lettere maiuscole in "J" e "S" e senza abbreviazioni)
- Node.js
@@ -232,28 +236,28 @@ I nomi propri dovrebbero usare le maiuscole correttamente quando possibile. Qui
### La regola dei due minuti
-Ogni sfida dovrebbe essere risolvibile entro 120 secondi da un nativo inglese che ha completato tutte le sfide precedenti. Questo include l'ammontare di tempo necessario a leggere le istruzioni, comprendere il codice di partenza, scrivere il loro codice e avere tutti i test superati.
+Each challenge should be solvable within 120 seconds by a native English speaker who has completed the challenges leading up to it. This includes the amount of time it takes to read the directions/instructions understand the seeded code, write their code and get all the tests to pass.
-Se servono più di due minuti a completare la sfida hai due possibilità:
+If it takes longer than two minutes to complete the challenge, you have two options:
- Semplificare la sfida, o
- Dividere la sfida in due sfide.
-La regola dei due minuti obbliga te, designer della sfida, a rendere le tue istruzioni concise, il tuo codice seed chiaro, e i tuoi test diretti.
+The 2-minute rule forces you, the challenge designer, to make your directions concise, your seed code clear, and your tests straight-forward.
-Teniamo traccia di quanto tempo serve ai camper per risolvere le sfide e usiamo questa informazione per identificare sfide che devono essere semplificate o divise.
+We track how long it takes for campers to solve changes and use this information to identify challenges that need to be simplified or split.
### Modularità
-Ogni sfida dovrebbe insegnare esattamente un concetto, e quel concetto dovrebbe apparire nel titolo della sfida.
+Each challenge should teach exactly one concept, and that concept should be apparent from the challenge's name.
-Possiamo rinforzare concetti introdotti in precedenza tramite ripetizione e variazioni, per esempio introducendo gli elementi h1 in una sfida e gli elementi h3 alcune sfide più tardi.
+We can reinforce previously covered concepts through repetition and variations - for example, introducing h1 elements in one challenge, then h3 elements a few challenges later.
-Il nostro obbiettivo è di avere migliaia di sfide da due minuti. Queste possono scorrere insieme e rinforzare concetti già introdotti in precedenza.
+Our goal is to have thousands of 2-minute challenges. These can flow together and reiterate previously-covered concepts.
### Formattare il testo delle sfide
-Ecco le linee guidee di formattazione specifiche per il testo delle sfide e degli esempi:
+Here are specific formatting guidelines for challenge text and examples:
- Le parole chiave del linguaggio vanno in `` \` `` backtick. Per esempio i nomi dei tag HTML o i nomi delle proprietà CSS.
- Riferimenti a parti di codice (come nomi di funzioni, metodi o variabili) dovrebbero essere in `` \` `` backtick. Vedi gli esempi seguenti:
@@ -266,9 +270,9 @@ Usa `parseInt` per convertire la variabile `realNumber` a un numero intero.
- I blocchi di codice multi-riga **devono essere preceduti da una riga vuota**. La riga successiva deve iniziare con tre backticks seguiti immediatamente da uno dei [linguaggi supportati](https://prismjs.com/#supported-languages). Per completare il blocco di codice devi iniziare una nuova riga, scrivere tre backtick e poi **un'altra riga vuota**. Vedi l'esempio seguente:
- Gli spazi bianchi hanno significato in Markdown, raccomandiamo di renderli visibili nel tuo editor.
-**Nota:** Se devi usare un esempio di codice in YAML, usa `yaml` invece di `yml` per il linguaggio a fianco dei tre backtick.
+**Note:** If you are going to use an example code in YAML, use `yaml` instead of `yml` for the language to the right of the backticks.
-Il seguente è un esempio di codice:
+The following is an example of code:
````md
```{language}
@@ -312,13 +316,13 @@ Esempio di un commento a linea singola in JavaScript:
// Only change code below this line
````
-Esempio di un commento CSS valido:
+Example of a valid CSS comment:
```css
/* Only change code above this line */
```
-Se la sfida ha un unico punto dove il codice ha bisogno di cambiamenti, per favore usa i commenti nel seguente esempio per istruire l'utente su dove dovrebbe fare i cambiamenti.
+If a challenge only has a single place where code changes are needed, please use the comments in the following example to instruct the user where changes should be made.
```js
var a = 3;
@@ -331,7 +335,7 @@ b = 9 + b;
c = c + 7;
```
-Se la sfida ha diversi punti dove l'utente deve fare cambiamenti al codice (come in una sfida React)
+If a challenge has multiple places where the user is expected to change code (i.e. the React challenges)
```jsx
class MyComponent extends React.Component {
@@ -364,9 +368,9 @@ class MyComponent extends React.Component {
### Traduzione dei commenti nel codice seed
-Ci sono directory separate per ogni lingua. La [versione inglese della directory dei commenti](/curriculum/dictionaries/english/comments.js) è la base per le traduzioni trovate nelle corrispondenti versioni non-inglesi del file. La versione non-inglese della directory dei commenti cinese si trova in `/curriculum/dictionaries/chinese/comments.js`. Ogni directory consiste di un array di oggetti con una proprietà `id` unica e una proprietà `text` che contiene il testo del commento. Solo `text` dovrebbe essere modificato per includere la traduzione del corrispondente commento inglese.
+There are separate comment dictionaries for each language. The [English version of the comment dictionary](/curriculum/dictionaries/english/comments.js) is the basis for the translations found in the corresponding non-English versions of the files. The non-English version of the Chinese comment dictionary would be located at `/curriculum/dictionaries/chinese/comments.js`. Each dictionary consists of an array of objects with a unique `id` property and a `text` property. Only the `text` should be modified to encompass the translation of the corresponding English comment.
-Alcuni commenti potrebbero contenere delle parole o frasi che non devono essere tradotte. Per esempio, nomi di variabili o nomi propri di librerie come "React" non dovrebbero essere tradotti. Vedi il commento seguente come esempio. La parola `myGlobal` non deve essere tradotta.
+Some comments may contain a word/phrase that should not be translated. For example, variable names or proper library names like "React" should not be translated. See the comment below as an example. The word `myGlobal` should not be translated.
```text
Declare the myGlobal variable below this line
@@ -378,13 +382,13 @@ Declare the myGlobal variable below this line
## Suggerimenti e soluzioni
-Ogni sfida ha un pulsante `Get a Hint` (Ottieni un suggerimento), cosicché un utente possa avere accesso a suggerimenti e soluzioni che sono stati creati per la sfida. I suggerimenti e le soluzioni del curriculum si trovano nei topic [del nostro forum](https://forum.freecodecamp.org/c/guide) nella categoria `Guide`.
+Each challenge has a `Get a Hint` button, so a user can access any hints/solutions which have been created for the challenge. Curriculum hints/solutions topics are located on [our forum](https://forum.freecodecamp.org/c/guide) under the `Guide` category.
-Se trovi un problema con i suggerimenti e le soluzioni delle sfide puoi inviare i tuoi suggerimenti aprendo un topic nella [categoria contributors](https://forum.freecodecamp.org/c/contributors) sul forum. Moderatori e utenti con un livello di fiducia 3 rivedranno i tuoi commenti e decideranno se includere o meno i cambiamenti nel topic corrispondente.
+If you find a problem with an existing challenge's hints/solutions topic, you can make suggestions in the [contributors category](https://forum.freecodecamp.org/c/contributors) on the forum. Moderators and users with trust level 3 will review the comments and decide whether or not to include the changes in the corresponding hint/solutions topic.
### Aggiungere nuovi topic per i suggerimenti e le soluzioni delle sfide
-Segui i seguenti step quando crei un nuovo topic per le soluzioni e i suggerimenti di una sfida.
+Take the following steps when adding a new challenge hints/solutions related topic.
1. Inizia seguendo gli stessi passaggi per creare un nuovo argomento, ma rivedi il successivo per creare il titolo.
2. Il titolo dell'argomento dovrebbe iniziare con `freeCodeCamp Challenge Guide:` concatenato con il titolo effettivo della sfida del curriculum. Ad esempio, se la sfida è chiamata "`Chunky Monkey`", il titolo dell'argomento sarebbe "`freeCodeCamp Challenge Guide: Chunky Monkey`".
@@ -393,7 +397,7 @@ Segui i seguenti step quando crei un nuovo topic per le soluzioni e i suggerimen
### Linee guida per il contenuto dei topic dei suggerimenti e delle soluzioni
-Quando proponi una soluzione da aggiungere al topic relativo a una sfida, devi includere tutto il codice. Questo include sia il codice seed originale sia i cambiamenti necessari per superare i test. Dovresti usare il seguente template per creare nuovi topic per suggerimenti e soluzioni:
+When proposing a solution for a curriculum challenge related Guide topic, the full code must be added. This includes all the original seed code plus any changes needed to pass all the challenge tests. The following template should be used when creating new hints/solutions topics:
````md
# [Qui il nome della sfida]
@@ -474,12 +478,12 @@ Puoi anche testare una sfida singola con i seguenti step:
cd curriculum
```
-2. Esegui i seguenti comandi per ogni singolo file in cui hai fatto cambiamenti (rimpiazziando `challenge-title-goes-here` con il titolo intero della sfida):
+2. Run the following for each challenge file for which you have changed (replacing `challenge-title-goes-here` with the full title of the challenge):
```
npm run test -- -g challenge-title-goes-here ```
-Una volta che avrai verificato che ogni sfida su cui hai lavorato passi i test, [per favore crea una pull request](how-to-open-a-pull-request.md).
+Once you have verified that each challenge you've worked on passes the tests, [please create a pull request](how-to-open-a-pull-request.md).
> [!TIP] Puoi impostare la variabile d'ambiente `LOCALE` nel file `.env` alla lingua usata nelle sfide che devi testare.
>
@@ -487,7 +491,7 @@ Una volta che avrai verificato che ogni sfida su cui hai lavorato passi i test,
### Link utili
-Creare e modificare sfide:
+Creating and Editing Challenges:
1. [Tipo della sfida (challenge type)](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - cosa significa il tipo di sfida numerico (enum).
diff --git a/docs/i18n/japanese/devops.md b/docs/i18n/japanese/devops.md
index e7241c9de4..a9cf732df2 100644
--- a/docs/i18n/japanese/devops.md
+++ b/docs/i18n/japanese/devops.md
@@ -536,7 +536,7 @@ Provisioning VMs with the Code
2. Update `npm` and install PM2 and setup `logrotate` and startup on boot
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/japanese/how-to-test-translations-locally.md b/docs/i18n/japanese/how-to-test-translations-locally.md
index c0ff23e4c1..8ef754c12c 100644
--- a/docs/i18n/japanese/how-to-test-translations-locally.md
+++ b/docs/i18n/japanese/how-to-test-translations-locally.md
@@ -8,9 +8,10 @@ If you would like to test your translations on a local instance of the freeCodeC
There are a few steps to take in order to allow the codebase to build in your desired language.
-First, visit the `config/i18n/all-langs.js` file to add the language to the available languages list and configure the values. There are four objects here.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. There are four objects here.
- `availableLangs`: For both the `client` and `curriculum` arrays, add the text name of the language. This is the value that will be used in the `.env` file later.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Next, open the `client/src/utils/algolia-locale-setup.js` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
Add an object for your language to the `algoliaIndices` object. You should use the values for the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
+> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
If you were to add Dothraki:
```js
@@ -85,40 +127,6 @@ const algoliaIndices = {
};
```
-Next, you will need to tell the client which certifications are translated, and which are still in English. Open the `utils/is-audited.js` file. Within the `auditedCerts`, add a new key with your language's `availableLangs` value. Assign the value of that key to an array containing the _dashed names_ for the certifications that have been translated. Refer to the existing data for those dashed names.
-
-Continuing the work to enable Dothraki - we have translated the first three certifications:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
@@ -143,7 +151,7 @@ For the video challenges, you need to change a few things. First add the new loc
...
```
-Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
diff --git a/docs/i18n/japanese/how-to-work-on-coding-challenges.md b/docs/i18n/japanese/how-to-work-on-coding-challenges.md
index af03d7fd4b..36ade2941a 100644
--- a/docs/i18n/japanese/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/japanese/how-to-work-on-coding-challenges.md
@@ -73,6 +73,10 @@ assert.equal(
);
```
+# --notes--
+
+Extra information for a challenge, in markdown
+
# --seed--
## --before-user-code--
diff --git a/docs/i18n/portuguese/devops.md b/docs/i18n/portuguese/devops.md
index 23013785e3..cccc90c490 100644
--- a/docs/i18n/portuguese/devops.md
+++ b/docs/i18n/portuguese/devops.md
@@ -536,7 +536,7 @@ Provisionando MVs com o código
2. Atualize o `npm` e instale o PM2 e configure `logrotate` e inicie quando reiniciar
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/portuguese/how-to-test-translations-locally.md b/docs/i18n/portuguese/how-to-test-translations-locally.md
index ea3350e796..1fe5b48313 100644
--- a/docs/i18n/portuguese/how-to-test-translations-locally.md
+++ b/docs/i18n/portuguese/how-to-test-translations-locally.md
@@ -8,9 +8,10 @@ Se você gostaria de testar suas traduções em uma instância local do site Fre
Existem algumas etapas a serem seguidas para permitir que a base de código seja compilada no idioma desejado.
-Primeiro, visite o arquivo `config/i18n/all-langs.js` para adicionar o idioma à lista de idiomas disponíveis e configurar os valores. Existem quatro objetos aqui.
+Primeiro, visite o arquivo `config/i18n/all-langs.ts` para adicionar o idioma à lista de idiomas disponíveis e configurar os valores. Existem quatro objetos aqui.
- `availableLangs`: tanto para o array `client` quanto para o array `curriculum`, adicione o nome do idioma. Esse valor é o que será usado no arquivo `.env` depois.
+- `auditedCerts`: adicione o nome do texto do idioma como a _chave_ e adicione um array de variáveis `SuperBlocks.{cert}` como o _valor_. Isto informa ao cliente quais certificações estão totalmente traduzidas.
- `i18nextCodes`: esses são os códigos ISO de cada linguagem. Você vai precisar do código ISO apropriado para o idioma que você está habilitando. Eles precisam ser únicos para cada idioma.
- `langDisplayNames`: esses são os nomes dos idiomas que aparecerão para a seleção no menu de navegação.
- `langCodes`: esses são os códigos de idiomas usados para formatar datas e números. Esses deverão ser códigos Unicode CLDR ao invés de códigos ISO.
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Agora, abra o arquivo `client/src/utils/algolia-locale-setup.js`. Esse dado é usado para a barra de busca que carrega os artigos `/news`. Embora seja improvável que você venha a testar essa funcionalidade, não ter os dados para o seu idioma pode levar a erros quando tentar criar a base de código localmente.
+Agora, abra o arquivo `client/src/utils/algolia-locale-setup.ts`. Esse dado é usado para a barra de busca que carrega os artigos `/news`. Embora seja improvável que você venha a testar essa funcionalidade, não ter os dados para o seu idioma pode levar a erros quando tentar criar a base de código localmente.
Adicione um objeto para seu idioma no objeto `algoliaIndices`. Você deve usar os valores do objeto `english` para o teste local, substituindo a chave `english` pelo valor de `availableLangs` do seu idioma.
+> [!NOTE] Se nós já implantamos uma instância do editorial em sua língua-alvo, você pode atualizar os valores para refletir a instância que já está implantada. Do contrário, use os valores em inglês.
+
Se você fosse adicionar Dothraki:
```js
@@ -85,40 +127,6 @@ const algoliaIndices = {
};
```
-Depois, você precisará informar ao client quais certificações estão traduzidas e quais ainda estão em inglês. Abra o arquivo `utils/is-audited.js`. Dentro de `auditedCerts`, adicione uma nova chave com o valor de `availableLangs` de seu idioma. Atribua o valor daquela chave a um array que contém os _nomes hifenizados_ para as certificações foram traduzidas. Consulte os dados existentes para aqueles nomes hifenizados.
-
-Dando continuidade ao trabalho para habilitar o idioma Dothraki – traduzimos as três primeiras certificações:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Por fim, em seu arquivo `.env`, definimos `CLIENT_LOCALE` e `CURRICULUM_LOCALE` com o valor de seu novo idioma (use o valor de `availableLangs`.)
```txt
@@ -128,7 +136,7 @@ CURRICULUM_LOCALE="dothraki"
## Ativando vídeos localizados
-Para os desafios em vídeo, você precisa fazer algumas alterações. Primeiro, adicione o novo idioma (locale) à consilta do GraphQL no arquivo `client/src/templates/Challenges/video/Show.tsx`. Por exemplo, para adicionar Dothraki à consulta:
+Para os desafios em vídeo, você precisa fazer algumas alterações. Primeiro, adicione o novo idioma (locale) à consulta do GraphQL no arquivo `client/src/templates/Challenges/video/Show.tsx`. Por exemplo, para adicionar Dothraki à consulta:
```tsx
query VideoChallenge($slug: String!) {
@@ -143,7 +151,7 @@ Para os desafios em vídeo, você precisa fazer algumas alterações. Primeiro,
...
```
-Em seguida, adicione um id para o novo idioma para qualquer desafio em vídeo em um bloco auditado. Por exemplo, se `auditedCerts` em `all-langs.js` inclui `scientific-computing-with-python` para `dothraki`, você deve adicionar uma entrada em `dothraki` em `videoLocaleIds`. O frontmatter dever ter essa aparência:
+Em seguida, adicione um id para o novo idioma para qualquer desafio em vídeo em um bloco auditado. Por exemplo, se `auditedCerts` em `all-langs.ts` inclui `scientific-computing-with-python` para `dothraki`, você deve adicionar uma entrada em `dothraki` em `videoLocaleIds`. O frontmatter dever ter essa aparência:
```yml
videoLocaleIds:
@@ -151,7 +159,7 @@ videoLocaleIds:
italian: hiRTRAqNlpE
portuguese: AelGAcoMXbI
dothraki: new-id-here
-nomeComTracos: introducao-por-que-programa
+nomeComTracos: introducao-por-que-programar
---
```
diff --git a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md
index ff764ba282..34afa44cd8 100644
--- a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md
@@ -73,6 +73,10 @@ assert.equal(
);
```
+# --notes--
+
+Informações extras para um desafio, em markdown
+
# --seed--
## --before-user-code--
@@ -138,7 +142,7 @@ Esses espaços são utilizados geralmente para questões de múltipla escolha do
## --text--
-O texto da pergunta vêm aqui.
+O texto da questão vêm aqui.
## --answers--
@@ -202,7 +206,7 @@ Nomear coisas é difícil. Nós facilitamos com algumas restrições.
Todos os títulos dos desafios devem estar explícitos e devem seguir este padrão:
-\[verb\]\[frase objetiva\]
+\[verbo\]\[frase objetiva\]
Aqui estão alguns exemplos de nomes para desafios:
@@ -216,9 +220,9 @@ As frases devem ser claras e resumidas com o mínimo de termos técnicos. Se usa
Mantenha os parágrafos curtos (em torno de 1-4 frases). É mais provável que as pessoas leiam vários parágrafos curtos do que um parágrafo enorme.
-O texto do desafio deve usar a segunda pessoa ("você") para ajudar a dar um tom de conversa. Dessa forma, o texto e as instruções parecem falar diretamente ao usuário freeCodeCamp que está resolvendo o desafio. Tente evitar usar a primeira pessoa ("eu", "nós", "vamos").
+O desafio de texto deve usar a segunda pessoa ("você") para ajudar a dar um tom coloquial. Dessa forma, o texto e as instruções parecem falar diretamente ao usuário freeCodeCamp que está resolvendo o desafio. Tente evitar usar a primeira pessoa ("eu", "nós", "vamos").
-Não use links externos. Eles interrompem o fluxo. Os usuários freeCodeCamp nunca devem precisar pesquisar nada no Google durante esses desafios. Se há recursos que você acha que os usuários irão se beneficiar, adicione-os no artigo relacionado ao guia do desafio.
+Não use links externos. Eles interrompem o fluxo. Os usuários do freeCodeCamp nunca devem precisar pesquisar nada no Google durante esses desafios. Se há recursos que você acha que os usuários irão se beneficiar, adicione-os no artigo relacionado ao guia do desafio.
Você pode adicionar diagramas se necessário.
@@ -266,9 +270,9 @@ Use `parseInt` para converter a variável `realNumber` em um número inteiro.
- Blocos de código com várias linhas **devem ser precedidos por uma linha vazia**. A próxima linha deve começar com três crases seguidas imediatamente por uma das [linguagens suportadas](https://prismjs.com/#supported-languages). Para completar o bloco de código, você deve começar uma nova linha que apenas possui três crases e **outra linha vazia**. Veja o exemplo abaixo:
- Os espaços importam no Markdown. Então, recomendamos que os mantenham visíveis no seu editor.
-**Observação:** se você for usar um exemplo de códigoem YAML, use `yaml` ao invés de `yml` para a linguagem na direita das crases.
+**Observação:** se você for usar um exemplo de código em YAML, use `yaml` ao invés de `yml` para a linguagem à direita das crases.
-A seguir um exemplo do código:
+Exemplo de código:
````md
```{language}
@@ -369,7 +373,7 @@ class MyComponent extends React.Component {
Existem dicionários de comentários separados para cada linguagem. A [versão em inglês do dicionário de comentários](/curriculum/dictionaries/english/comments.js) é a base para as traduções encontradas nas versões correspondentes dos arquivos em outros idiomas. A versão não inglesa do dicionário de comentário chinesa pode ser encontrada em `/curriculum/dictionaries/chinese/comments.js`. Cada dicionário consiste em um array de objetos com uma propriedade de `id` única e uma propriedade de `text`. Somente a propriedade `text` deve ser modificada para englobar a tradução do comentário correspondente em inglês.
-Alguns comentários podem conter uma palavra/frase que não deve ser traduzida. Por exemplo, nomes de variáveis, ou nomes próprios de bibliotecas como "React" não devem ser traduzidas. Veja o comentário abaixo como um exemplo. a palavra `myGlobal` não deve ser traduzida.
+Alguns comentários podem conter uma palavra/frase que não deve ser traduzida. Por exemplo, nomes de variáveis, ou nomes próprios de bibliotecas como "React" não devem ser traduzidas. Veja o comentário abaixo como um exemplo. A palavra `myGlobal` não deve ser traduzida.
```text
Declare a variável myGlobal abaixo desta linha
@@ -477,12 +481,12 @@ Você também é capaz de testar um desafio individualmente seguindo as seguinte
cd curriculum
```
-2. Execute o comando a seguir para cada arquivo de desafio que você fez mudanças (substituindo `challenge-title-goes-here` com o título completo do desafio):
+2. Execute o comando a seguir para cada arquivo de desafio no qual você fez alteraçõess (substituindo `challenge-title-goes-here` com o título completo do desafio):
```
npm run test -- -g challenge-title-goes-here ```
-Quando você verificou que cada desafio modificado passou nos testes, [crie um pull request](how-to-open-a-pull-request.md).
+Quando você verificar que cada desafio modificado passou nos testes, [crie um pull request](how-to-open-a-pull-request.md).
> [!TIP] Você pode definir a variável de ambiente `LOCALE` no `.env` no idioma do(s) desafio(s) que precisa testar.
>
@@ -490,7 +494,7 @@ Quando você verificou que cada desafio modificado passou nos testes, [crie um p
### Links úteis
-Criando e editando desafios:
+Criação e edição de desafios:
1. [Tipos de desafio](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - o que significam os valores do tipo de desafio numérico (enum).
diff --git a/docs/i18n/ukrainian/devops.md b/docs/i18n/ukrainian/devops.md
index d2b53dfc68..b613fd8423 100644
--- a/docs/i18n/ukrainian/devops.md
+++ b/docs/i18n/ukrainian/devops.md
@@ -536,7 +536,7 @@ Provisioning VMs with the Code
2. Update `npm` and install PM2 and setup `logrotate` and startup on boot
```console
- npm i -g npm@6
+ npm i -g npm@8
npm i -g pm2
npm install -g serve
pm2 install pm2-logrotate
diff --git a/docs/i18n/ukrainian/how-to-test-translations-locally.md b/docs/i18n/ukrainian/how-to-test-translations-locally.md
index c0ff23e4c1..8ef754c12c 100644
--- a/docs/i18n/ukrainian/how-to-test-translations-locally.md
+++ b/docs/i18n/ukrainian/how-to-test-translations-locally.md
@@ -8,9 +8,10 @@ If you would like to test your translations on a local instance of the freeCodeC
There are a few steps to take in order to allow the codebase to build in your desired language.
-First, visit the `config/i18n/all-langs.js` file to add the language to the available languages list and configure the values. There are four objects here.
+First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. There are four objects here.
- `availableLangs`: For both the `client` and `curriculum` arrays, add the text name of the language. This is the value that will be used in the `.env` file later.
+- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
- `langDisplayNames`: These are the display names for the language selector in the navigation menu.
- `langCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
@@ -29,6 +30,45 @@ const availableLangs = {
]
};
+export const auditedCerts = {
+ espanol: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis
+ ],
+ chinese: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ 'chinese-traditional': [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs,
+ SuperBlocks.DataVis,
+ SuperBlocks.BackEndDevApis,
+ SuperBlocks.QualityAssurance,
+ SuperBlocks.SciCompPy,
+ SuperBlocks.DataAnalysisPy,
+ SuperBlocks.InfoSec,
+ SuperBlocks.MachineLearningPy
+ ],
+ dothraki: [
+ SuperBlocks.RespWebDesign,
+ SuperBlocks.JsAlgoDataStruct,
+ SuperBlocks.FrontEndDevLibs
+ ]
+};
+
const i18nextCodes = {
english: 'en',
espanol: 'es',
@@ -54,10 +94,12 @@ const langCodes = {
};
```
-Next, open the `client/src/utils/algolia-locale-setup.js` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
+Next, open the `client/src/utils/algolia-locale-setup.ts` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
Add an object for your language to the `algoliaIndices` object. You should use the values for the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
+> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
+
If you were to add Dothraki:
```js
@@ -85,40 +127,6 @@ const algoliaIndices = {
};
```
-Next, you will need to tell the client which certifications are translated, and which are still in English. Open the `utils/is-audited.js` file. Within the `auditedCerts`, add a new key with your language's `availableLangs` value. Assign the value of that key to an array containing the _dashed names_ for the certifications that have been translated. Refer to the existing data for those dashed names.
-
-Continuing the work to enable Dothraki - we have translated the first three certifications:
-
-```js
-const auditedCerts = {
- espanol: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures'
- ],
- chinese: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- 'chinese-traditional': [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries',
- 'data-visualization',
- 'back-end-development-and-apis',
- 'quality-assurance'
- ],
- dothraki: [
- 'responsive-web-design',
- 'javascript-algorithms-and-data-structures',
- 'front-end-development-libraries'
- ]
-};
-```
-
Finally, in your `.env` file, set `CLIENT_LOCALE` and `CURRICULUM_LOCALE` to your new language (use the `availableLangs` value.)
```txt
@@ -143,7 +151,7 @@ For the video challenges, you need to change a few things. First add the new loc
...
```
-Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
+Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.ts` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml
videoLocaleIds:
diff --git a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md
index af03d7fd4b..36ade2941a 100644
--- a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md
+++ b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md
@@ -73,6 +73,10 @@ assert.equal(
);
```
+# --notes--
+
+Extra information for a challenge, in markdown
+
# --seed--
## --before-user-code--
diff --git a/package-lock.json b/package-lock.json
index afff0606e6..f6bbca8f61 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -26,11 +26,11 @@
"invariant": "2.2.4"
},
"devDependencies": {
- "@babel/eslint-parser": "7.16.3",
- "@babel/plugin-proposal-function-bind": "7.16.0",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-react": "7.16.0",
- "@babel/preset-typescript": "7.16.0",
+ "@babel/eslint-parser": "7.16.5",
+ "@babel/plugin-proposal-function-bind": "7.16.5",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-react": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
"@testing-library/cypress": "7.0.7",
"@testing-library/dom": "8.11.1",
"@testing-library/jest-dom": "5.16.1",
@@ -46,7 +46,7 @@
"@types/jquery": "3.5.10",
"@types/loadable__component": "5.13.4",
"@types/lodash-es": "4.17.5",
- "@types/node": "16.11.12",
+ "@types/node": "16.11.14",
"@types/prismjs": "1.16.6",
"@types/psl": "1.1.0",
"@types/reach__router": "1.3.9",
@@ -64,8 +64,8 @@
"@types/sanitize-html": "2.6.0",
"@types/store": "2.0.2",
"@types/validator": "13.7.0",
- "@typescript-eslint/eslint-plugin": "5.6.0",
- "@typescript-eslint/parser": "5.6.0",
+ "@typescript-eslint/eslint-plugin": "5.7.0",
+ "@typescript-eslint/parser": "5.7.0",
"babel-eslint": "10.1.0",
"babel-plugin-transform-imports": "2.0.0",
"cross-env": "7.0.3",
@@ -83,9 +83,9 @@
"execa": "5.1.1",
"faker": "5.5.3",
"husky": "7.0.4",
- "jest": "27.4.3",
+ "jest": "27.4.5",
"js-yaml": "3.14.1",
- "lint-staged": "12.1.2",
+ "lint-staged": "12.1.3",
"lodash": "4.17.21",
"markdownlint": "0.24.0",
"mock-fs": "5.1.2",
@@ -96,7 +96,7 @@
"process": "0.11.10",
"shx": "0.3.3",
"start-server-and-test": "1.14.0",
- "typescript": "4.5.3",
+ "typescript": "4.5.4",
"webpack-bundle-analyzer": "4.5.0"
},
"engines": {
@@ -201,12 +201,12 @@
"version": "0.0.1",
"license": "BSD-3-Clause",
"dependencies": {
- "@babel/plugin-proposal-export-default-from": "7.16.0",
- "@babel/plugin-proposal-function-bind": "7.16.0",
+ "@babel/plugin-proposal-export-default-from": "7.16.5",
+ "@babel/plugin-proposal-function-bind": "7.16.5",
"@babel/polyfill": "7.12.1",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-react": "7.16.0",
- "@babel/standalone": "7.16.4",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-react": "7.16.5",
+ "@babel/standalone": "7.16.6",
"@fortawesome/fontawesome": "1.1.8",
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -216,10 +216,10 @@
"@freecodecamp/react-bootstrap": "0.32.3",
"@freecodecamp/react-calendar-heatmap": "1.0.0",
"@freecodecamp/strip-comments": "3.0.1",
- "@loadable/component": "5.15.0",
+ "@loadable/component": "5.15.2",
"@reach/router": "1.3.4",
- "@stripe/react-stripe-js": "1.6.0",
- "@stripe/stripe-js": "1.21.2",
+ "@stripe/react-stripe-js": "1.7.0",
+ "@stripe/stripe-js": "1.22.0",
"@types/react-scrollable-anchor": "0.6.1",
"algoliasearch": "4.11.0",
"assert": "2.0.0",
@@ -254,7 +254,7 @@
"nanoid": "3.1.30",
"normalize-url": "4.5.1",
"path-browserify": "1.0.1",
- "postcss": "8.4.4",
+ "postcss": "8.4.5",
"prismjs": "1.25.0",
"process": "0.11.10",
"prop-types": "15.7.2",
@@ -266,8 +266,8 @@
"react-ga": "3.3.0",
"react-helmet": "6.1.0",
"react-hotkeys": "2.0.0",
- "react-i18next": "11.14.3",
- "react-instantsearch-dom": "6.17.0",
+ "react-i18next": "11.15.1",
+ "react-instantsearch-dom": "6.18.0",
"react-lazy-load": "3.1.13",
"react-monaco-editor": "0.40.0",
"react-redux": "5.1.2",
@@ -291,14 +291,14 @@
"store": "2.0.12",
"stream-browserify": "3.0.0",
"tone": "14.7.77",
- "typescript": "4.5.3",
+ "typescript": "4.5.4",
"uuid": "8.3.2",
"validator": "13.7.0"
},
"devDependencies": {
"@babel/types": "7.16.0",
- "@codesee/babel-plugin-instrument": "0.150.0",
- "@codesee/tracker": "0.150.0",
+ "@codesee/babel-plugin-instrument": "0.153.0",
+ "@codesee/tracker": "0.153.0",
"@testing-library/jest-dom": "5.16.1",
"@testing-library/react": "12.1.2",
"autoprefixer": "10.4.0",
@@ -417,11 +417,11 @@
"version": "0.0.0-next.4",
"license": "(BSD-3-Clause AND CC-BY-SA-4.0)",
"devDependencies": {
- "@babel/core": "7.16.0",
+ "@babel/core": "7.16.5",
"@babel/polyfill": "7.12.1",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-typescript": "7.16.0",
- "@babel/register": "7.16.0",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
+ "@babel/register": "7.16.5",
"acorn": "8.5.0",
"acorn-jsx": "5.3.2",
"babel-plugin-dynamic-import-node": "2.3.3",
@@ -674,18 +674,18 @@
}
},
"node_modules/@babel/core": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz",
- "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz",
+ "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==",
"dependencies": {
"@babel/code-frame": "^7.16.0",
- "@babel/generator": "^7.16.0",
- "@babel/helper-compilation-targets": "^7.16.0",
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helpers": "^7.16.0",
- "@babel/parser": "^7.16.0",
+ "@babel/generator": "^7.16.5",
+ "@babel/helper-compilation-targets": "^7.16.3",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helpers": "^7.16.5",
+ "@babel/parser": "^7.16.5",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
@@ -724,9 +724,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/@babel/eslint-parser": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz",
- "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz",
+ "integrity": "sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA==",
"dependencies": {
"eslint-scope": "^5.1.1",
"eslint-visitor-keys": "^2.1.0",
@@ -741,9 +741,9 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz",
- "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz",
+ "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==",
"dependencies": {
"@babel/types": "^7.16.0",
"jsesc": "^2.5.1",
@@ -765,9 +765,9 @@
}
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz",
- "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz",
+ "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==",
"dependencies": {
"@babel/helper-explode-assignable-expression": "^7.16.0",
"@babel/types": "^7.16.0"
@@ -794,15 +794,16 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz",
- "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz",
+ "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
- "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-member-expression-to-functions": "^7.16.5",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-replace-supers": "^7.16.5",
"@babel/helper-split-export-declaration": "^7.16.0"
},
"engines": {
@@ -866,6 +867,17 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz",
+ "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==",
+ "dependencies": {
+ "@babel/types": "^7.16.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-explode-assignable-expression": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz",
@@ -913,9 +925,9 @@
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz",
- "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz",
+ "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==",
"dependencies": {
"@babel/types": "^7.16.0"
},
@@ -935,17 +947,17 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz",
- "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz",
+ "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==",
"dependencies": {
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-replace-supers": "^7.16.0",
"@babel/helper-simple-access": "^7.16.0",
"@babel/helper-split-export-declaration": "^7.16.0",
"@babel/helper-validator-identifier": "^7.15.7",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -964,20 +976,20 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
- "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz",
+ "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz",
- "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz",
+ "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-wrap-function": "^7.16.0",
+ "@babel/helper-wrap-function": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -985,13 +997,14 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz",
- "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz",
+ "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==",
"dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
+ "@babel/helper-member-expression-to-functions": "^7.16.5",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -1048,13 +1061,13 @@
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz",
- "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz",
+ "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==",
"dependencies": {
"@babel/helper-function-name": "^7.16.0",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -1062,12 +1075,12 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz",
- "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz",
+ "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==",
"dependencies": {
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.3",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -1122,9 +1135,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz",
- "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz",
+ "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1163,12 +1176,12 @@
}
},
"node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz",
- "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz",
+ "integrity": "sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.16.4",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-remap-async-to-generator": "^7.16.5",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
"engines": {
@@ -1179,12 +1192,12 @@
}
},
"node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz",
- "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz",
+ "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1194,12 +1207,12 @@
}
},
"node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz",
- "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz",
+ "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
@@ -1227,11 +1240,11 @@
}
},
"node_modules/@babel/plugin-proposal-dynamic-import": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz",
- "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz",
+ "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
},
"engines": {
@@ -1242,12 +1255,12 @@
}
},
"node_modules/@babel/plugin-proposal-export-default-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz",
- "integrity": "sha512-kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.5.tgz",
+ "integrity": "sha512-pU4aCS+AzGjDD/6LnwSmeelmtqfMSjzQxs7+/AS673bYsshK1XZm9eth6OkgivVscQM8XdkVYhrb6tPFVTBVHA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-export-default-from": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-export-default-from": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1257,11 +1270,11 @@
}
},
"node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz",
- "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz",
+ "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
@@ -1272,12 +1285,12 @@
}
},
"node_modules/@babel/plugin-proposal-function-bind": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.0.tgz",
- "integrity": "sha512-oTf/NztwTma6O4e16Iy6+DOqodQydc1/MLmENMTduigCYxvUvLblCRP5Tu3PkAGPKq5/F3lB44GWLc+egJi3VA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.5.tgz",
+ "integrity": "sha512-rOr/gYNm8pTBAfnwr/F6uSPjFJMqE2L1jLCoVrAcrt1he5e9F6pV6Cl4JBrFBbUnA+ETMnVFZIhfVbTq7So0Gw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-function-bind": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-function-bind": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1287,11 +1300,11 @@
}
},
"node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz",
- "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz",
+ "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
@@ -1302,11 +1315,11 @@
}
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz",
- "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz",
+ "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
@@ -1317,11 +1330,11 @@
}
},
"node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz",
- "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz",
+ "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
@@ -1332,11 +1345,11 @@
}
},
"node_modules/@babel/plugin-proposal-numeric-separator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz",
- "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz",
+ "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
},
"engines": {
@@ -1347,15 +1360,15 @@
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz",
- "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz",
+ "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==",
"dependencies": {
- "@babel/compat-data": "^7.16.0",
- "@babel/helper-compilation-targets": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/compat-data": "^7.16.4",
+ "@babel/helper-compilation-targets": "^7.16.3",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.0"
+ "@babel/plugin-transform-parameters": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1365,11 +1378,11 @@
}
},
"node_modules/@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz",
- "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz",
+ "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
},
"engines": {
@@ -1380,11 +1393,11 @@
}
},
"node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz",
- "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz",
+ "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
@@ -1396,12 +1409,12 @@
}
},
"node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz",
- "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz",
+ "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1411,13 +1424,13 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz",
- "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz",
+ "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -1428,12 +1441,12 @@
}
},
"node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz",
- "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz",
+ "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=4"
@@ -1517,11 +1530,11 @@
}
},
"node_modules/@babel/plugin-syntax-export-default-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz",
- "integrity": "sha512-xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.5.tgz",
+ "integrity": "sha512-tvY55nhq4mSG9WbM7IZcLIhdc5jzIZu0PQKJHtZ16+dF7oBxKbqV/Z0e9ta2zaLMvUjH+3rJv1hbZ0+lpXzuFQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1557,11 +1570,11 @@
}
},
"node_modules/@babel/plugin-syntax-function-bind": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.0.tgz",
- "integrity": "sha512-L+B4rMnFg2ElQUTjSr3gfmIAJ3ej/BeKGW32AL01qpLhkI4Vw1C+W8p6wl8S6eYqWSj9X9d/lyuQWI5JFYjCWw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.5.tgz",
+ "integrity": "sha512-Jn09tjgZuJIQdbqQCkBQErzjO4LV2NDUz03HSowJD0km7iXsKPX6Sk0G7xIkUItenYNLfkndlWojeTyYC6QbBA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1594,11 +1607,11 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz",
- "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz",
+ "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1716,11 +1729,11 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz",
- "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz",
+ "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1730,13 +1743,13 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz",
- "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz",
+ "integrity": "sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==",
"dependencies": {
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-remap-async-to-generator": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1746,11 +1759,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz",
- "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz",
+ "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1760,11 +1773,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz",
- "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz",
+ "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1774,15 +1787,16 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz",
- "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz",
+ "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-replace-supers": "^7.16.5",
"@babel/helper-split-export-declaration": "^7.16.0",
"globals": "^11.1.0"
},
@@ -1794,11 +1808,11 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz",
- "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz",
+ "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1808,11 +1822,11 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz",
- "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz",
+ "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1822,12 +1836,12 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz",
- "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz",
+ "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1837,11 +1851,11 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz",
- "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz",
+ "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1851,12 +1865,12 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz",
- "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz",
+ "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1882,11 +1896,11 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz",
- "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz",
+ "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1896,12 +1910,12 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz",
- "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz",
+ "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==",
"dependencies": {
"@babel/helper-function-name": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1911,11 +1925,11 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz",
- "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz",
+ "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1925,11 +1939,11 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz",
- "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz",
+ "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1939,12 +1953,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz",
- "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz",
+ "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1955,12 +1969,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz",
- "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz",
+ "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-simple-access": "^7.16.0",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
@@ -1972,13 +1986,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz",
- "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz",
+ "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==",
"dependencies": {
"@babel/helper-hoist-variables": "^7.16.0",
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-identifier": "^7.15.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
@@ -1990,12 +2004,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz",
- "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz",
+ "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2005,9 +2019,9 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz",
- "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz",
+ "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0"
},
@@ -2019,11 +2033,11 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz",
- "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz",
+ "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2033,12 +2047,12 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz",
- "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz",
+ "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-replace-supers": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2048,11 +2062,11 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz",
- "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz",
+ "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2062,11 +2076,11 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz",
- "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz",
+ "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2076,11 +2090,11 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz",
- "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz",
+ "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2090,14 +2104,14 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz",
- "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz",
+ "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-jsx": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-jsx": "^7.16.5",
"@babel/types": "^7.16.0"
},
"engines": {
@@ -2108,11 +2122,11 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz",
- "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz",
+ "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.16.0"
+ "@babel/plugin-transform-react-jsx": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2122,12 +2136,12 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz",
- "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz",
+ "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2137,9 +2151,9 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz",
- "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz",
+ "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==",
"dependencies": {
"regenerator-transform": "^0.14.2"
},
@@ -2151,11 +2165,11 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz",
- "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz",
+ "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2184,11 +2198,11 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz",
- "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz",
+ "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2198,11 +2212,11 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz",
- "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz",
+ "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
},
"engines": {
@@ -2213,11 +2227,11 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz",
- "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz",
+ "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2227,11 +2241,11 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz",
- "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz",
+ "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2241,11 +2255,11 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz",
- "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz",
+ "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2271,11 +2285,11 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz",
- "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz",
+ "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2285,12 +2299,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz",
- "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz",
+ "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2310,31 +2324,31 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz",
- "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz",
+ "integrity": "sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==",
"dependencies": {
"@babel/compat-data": "^7.16.4",
"@babel/helper-compilation-targets": "^7.16.3",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.4",
- "@babel/plugin-proposal-class-properties": "^7.16.0",
- "@babel/plugin-proposal-class-static-block": "^7.16.0",
- "@babel/plugin-proposal-dynamic-import": "^7.16.0",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.0",
- "@babel/plugin-proposal-json-strings": "^7.16.0",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
- "@babel/plugin-proposal-numeric-separator": "^7.16.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.0",
- "@babel/plugin-proposal-private-methods": "^7.16.0",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.16.5",
+ "@babel/plugin-proposal-class-properties": "^7.16.5",
+ "@babel/plugin-proposal-class-static-block": "^7.16.5",
+ "@babel/plugin-proposal-dynamic-import": "^7.16.5",
+ "@babel/plugin-proposal-export-namespace-from": "^7.16.5",
+ "@babel/plugin-proposal-json-strings": "^7.16.5",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.16.5",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.5",
+ "@babel/plugin-proposal-numeric-separator": "^7.16.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.16.5",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.16.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.16.5",
+ "@babel/plugin-proposal-private-methods": "^7.16.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.16.5",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.16.5",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
@@ -2349,38 +2363,38 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.0",
- "@babel/plugin-transform-async-to-generator": "^7.16.0",
- "@babel/plugin-transform-block-scoped-functions": "^7.16.0",
- "@babel/plugin-transform-block-scoping": "^7.16.0",
- "@babel/plugin-transform-classes": "^7.16.0",
- "@babel/plugin-transform-computed-properties": "^7.16.0",
- "@babel/plugin-transform-destructuring": "^7.16.0",
- "@babel/plugin-transform-dotall-regex": "^7.16.0",
- "@babel/plugin-transform-duplicate-keys": "^7.16.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.16.0",
- "@babel/plugin-transform-for-of": "^7.16.0",
- "@babel/plugin-transform-function-name": "^7.16.0",
- "@babel/plugin-transform-literals": "^7.16.0",
- "@babel/plugin-transform-member-expression-literals": "^7.16.0",
- "@babel/plugin-transform-modules-amd": "^7.16.0",
- "@babel/plugin-transform-modules-commonjs": "^7.16.0",
- "@babel/plugin-transform-modules-systemjs": "^7.16.0",
- "@babel/plugin-transform-modules-umd": "^7.16.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0",
- "@babel/plugin-transform-new-target": "^7.16.0",
- "@babel/plugin-transform-object-super": "^7.16.0",
- "@babel/plugin-transform-parameters": "^7.16.3",
- "@babel/plugin-transform-property-literals": "^7.16.0",
- "@babel/plugin-transform-regenerator": "^7.16.0",
- "@babel/plugin-transform-reserved-words": "^7.16.0",
- "@babel/plugin-transform-shorthand-properties": "^7.16.0",
- "@babel/plugin-transform-spread": "^7.16.0",
- "@babel/plugin-transform-sticky-regex": "^7.16.0",
- "@babel/plugin-transform-template-literals": "^7.16.0",
- "@babel/plugin-transform-typeof-symbol": "^7.16.0",
- "@babel/plugin-transform-unicode-escapes": "^7.16.0",
- "@babel/plugin-transform-unicode-regex": "^7.16.0",
+ "@babel/plugin-transform-arrow-functions": "^7.16.5",
+ "@babel/plugin-transform-async-to-generator": "^7.16.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.16.5",
+ "@babel/plugin-transform-block-scoping": "^7.16.5",
+ "@babel/plugin-transform-classes": "^7.16.5",
+ "@babel/plugin-transform-computed-properties": "^7.16.5",
+ "@babel/plugin-transform-destructuring": "^7.16.5",
+ "@babel/plugin-transform-dotall-regex": "^7.16.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.16.5",
+ "@babel/plugin-transform-exponentiation-operator": "^7.16.5",
+ "@babel/plugin-transform-for-of": "^7.16.5",
+ "@babel/plugin-transform-function-name": "^7.16.5",
+ "@babel/plugin-transform-literals": "^7.16.5",
+ "@babel/plugin-transform-member-expression-literals": "^7.16.5",
+ "@babel/plugin-transform-modules-amd": "^7.16.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.16.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.16.5",
+ "@babel/plugin-transform-modules-umd": "^7.16.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.5",
+ "@babel/plugin-transform-new-target": "^7.16.5",
+ "@babel/plugin-transform-object-super": "^7.16.5",
+ "@babel/plugin-transform-parameters": "^7.16.5",
+ "@babel/plugin-transform-property-literals": "^7.16.5",
+ "@babel/plugin-transform-regenerator": "^7.16.5",
+ "@babel/plugin-transform-reserved-words": "^7.16.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.16.5",
+ "@babel/plugin-transform-spread": "^7.16.5",
+ "@babel/plugin-transform-sticky-regex": "^7.16.5",
+ "@babel/plugin-transform-template-literals": "^7.16.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.16.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.16.5",
+ "@babel/plugin-transform-unicode-regex": "^7.16.5",
"@babel/preset-modules": "^0.1.5",
"@babel/types": "^7.16.0",
"babel-plugin-polyfill-corejs2": "^0.3.0",
@@ -2429,16 +2443,16 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz",
- "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz",
+ "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-react-display-name": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-react-jsx-development": "^7.16.0",
- "@babel/plugin-transform-react-pure-annotations": "^7.16.0"
+ "@babel/plugin-transform-react-display-name": "^7.16.5",
+ "@babel/plugin-transform-react-jsx": "^7.16.5",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.16.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2448,13 +2462,13 @@
}
},
"node_modules/@babel/preset-typescript": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz",
- "integrity": "sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz",
+ "integrity": "sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-typescript": "^7.16.0"
+ "@babel/plugin-transform-typescript": "^7.16.1"
},
"engines": {
"node": ">=6.9.0"
@@ -2464,9 +2478,9 @@
}
},
"node_modules/@babel/register": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz",
- "integrity": "sha512-lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.5.tgz",
+ "integrity": "sha512-NpluD+cToBiZiDsG3y9rtIcqDyivsahpaM9csfyfiq1qQWduSmihUZ+ruIqqSDGjZKZMJfgAElo9x2YWlOQuRw==",
"dev": true,
"dependencies": {
"clone-deep": "^4.0.1",
@@ -2506,9 +2520,9 @@
}
},
"node_modules/@babel/standalone": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.4.tgz",
- "integrity": "sha512-FDRLwjeQfPm5jaHNuB+vwNyGCp24Ah3kEsbLzKmh0eSru+QCr4DmjgbRPoz71AwXLVtXU+l/i7MlVlIj5XO7Gw==",
+ "version": "7.16.6",
+ "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.6.tgz",
+ "integrity": "sha512-wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw==",
"engines": {
"node": ">=6.9.0"
}
@@ -2527,16 +2541,17 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz",
- "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz",
+ "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==",
"dependencies": {
"@babel/code-frame": "^7.16.0",
- "@babel/generator": "^7.16.0",
+ "@babel/generator": "^7.16.5",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
"@babel/helper-hoist-variables": "^7.16.0",
"@babel/helper-split-export-declaration": "^7.16.0",
- "@babel/parser": "^7.16.3",
+ "@babel/parser": "^7.16.5",
"@babel/types": "^7.16.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
@@ -2607,9 +2622,9 @@
}
},
"node_modules/@codesee/babel-plugin-instrument": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@codesee/babel-plugin-instrument/-/babel-plugin-instrument-0.150.0.tgz",
- "integrity": "sha512-OKLo86DsXEDflhM7x9gOMIHc3VsnCA/cO6kTM6elopU2dogw0gIKHTNZXDf7ivZA0nbVKNbfXDujyLsOHCF/yA==",
+ "version": "0.153.0",
+ "resolved": "https://registry.npmjs.org/@codesee/babel-plugin-instrument/-/babel-plugin-instrument-0.153.0.tgz",
+ "integrity": "sha512-Ip8/N1w1OvaOfeN/TOcotRb5/Q86AfyQ30j2w0OE0k9w3XKrpPl+yqoVZ4V/1ore2s5z+pQqTu6SiPEvZN0AcQ==",
"dev": true,
"dependencies": {
"@babel/plugin-syntax-jsx": "^7.12.13",
@@ -2624,9 +2639,9 @@
}
},
"node_modules/@codesee/tracker": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@codesee/tracker/-/tracker-0.150.0.tgz",
- "integrity": "sha512-dUjhKrAMTd7ViW1PifGJHe6golDUAK8X9z+/6L6NR3/Sc8s0xzDo8WtXGxvYkbvIb6GG+r/XEB8XJ+NnejjBng==",
+ "version": "0.153.0",
+ "resolved": "https://registry.npmjs.org/@codesee/tracker/-/tracker-0.153.0.tgz",
+ "integrity": "sha512-cVJQFBrtPqkD+YbudKC+Ayq+cGrW4sdCnmrBpSAjOAmP3oV10DPSmCWodwfUZdHbdhdF6qwTf7ly92rDhFglOg==",
"dev": true
},
"node_modules/@cspotcode/source-map-consumer": {
@@ -3787,15 +3802,15 @@
}
},
"node_modules/@jest/core": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz",
- "integrity": "sha512-V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.5.tgz",
+ "integrity": "sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ==",
"dev": true,
"dependencies": {
"@jest/console": "^27.4.2",
- "@jest/reporters": "^27.4.2",
+ "@jest/reporters": "^27.4.5",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
@@ -3804,15 +3819,15 @@
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"jest-changed-files": "^27.4.2",
- "jest-config": "^27.4.3",
- "jest-haste-map": "^27.4.2",
+ "jest-config": "^27.4.5",
+ "jest-haste-map": "^27.4.5",
"jest-message-util": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-resolve-dependencies": "^27.4.2",
- "jest-runner": "^27.4.3",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-resolve-dependencies": "^27.4.5",
+ "jest-runner": "^27.4.5",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"jest-watcher": "^27.4.2",
@@ -3913,9 +3928,9 @@
}
},
"node_modules/@jest/environment": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz",
- "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.4.tgz",
+ "integrity": "sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==",
"dev": true,
"dependencies": {
"@jest/fake-timers": "^27.4.2",
@@ -3945,12 +3960,12 @@
}
},
"node_modules/@jest/globals": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz",
- "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.4.tgz",
+ "integrity": "sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ==",
"dev": true,
"dependencies": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/types": "^27.4.2",
"expect": "^27.4.2"
},
@@ -3959,15 +3974,15 @@
}
},
"node_modules/@jest/reporters": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz",
- "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.5.tgz",
+ "integrity": "sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA==",
"dev": true,
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^27.4.2",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"chalk": "^4.0.0",
@@ -3980,10 +3995,10 @@
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
- "jest-haste-map": "^27.4.2",
- "jest-resolve": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
+ "jest-resolve": "^27.4.5",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"slash": "^3.0.0",
"source-map": "^0.6.0",
"string-length": "^4.0.1",
@@ -4061,9 +4076,9 @@
}
},
"node_modules/@jest/reporters/node_modules/jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -4158,24 +4173,24 @@
}
},
"node_modules/@jest/test-sequencer": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz",
- "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz",
+ "integrity": "sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ==",
"dev": true,
"dependencies": {
"@jest/test-result": "^27.4.2",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
- "jest-runtime": "^27.4.2"
+ "jest-haste-map": "^27.4.5",
+ "jest-runtime": "^27.4.5"
},
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/@jest/transform": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz",
- "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.5.tgz",
+ "integrity": "sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==",
"dev": true,
"dependencies": {
"@babel/core": "^7.1.0",
@@ -4185,7 +4200,7 @@
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-regex-util": "^27.4.0",
"jest-util": "^27.4.2",
"micromatch": "^4.0.4",
@@ -4373,9 +4388,9 @@
}
},
"node_modules/@loadable/component": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.0.tgz",
- "integrity": "sha512-g63rQzypPOZi0BeGsK4ST2MYhsFR+i7bhL8k/McUoWDNMDuTTdUlQ2GACKxqh5sI/dNC/6nVoPrycMnSylnAgQ==",
+ "version": "5.15.2",
+ "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz",
+ "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==",
"dependencies": {
"@babel/runtime": "^7.7.7",
"hoist-non-react-statics": "^3.3.1",
@@ -5193,9 +5208,9 @@
}
},
"node_modules/@rollup/plugin-node-resolve": {
- "version": "13.0.6",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz",
- "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==",
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz",
+ "integrity": "sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^3.1.0",
@@ -13988,22 +14003,22 @@
}
},
"node_modules/@stripe/react-stripe-js": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.6.0.tgz",
- "integrity": "sha512-tMmsPD+wkpiiVJZgQ1E06tklG5MZHG462s6OWja9abpxq76kerAxMFN+KdhUg0LIEY79THbzvH3s/WGHasnV3w==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.7.0.tgz",
+ "integrity": "sha512-L20v8Jq0TDZFL2+y+uXD751t6q9SalSFkSYZpmZ2VWrGZGK7HAGfRQ804dzYSSr5fGenW6iz6y7U0YKfC/TK3g==",
"dependencies": {
"prop-types": "^15.7.2"
},
"peerDependencies": {
- "@stripe/stripe-js": "^1.19.1",
+ "@stripe/stripe-js": "^1.20.3",
"react": "^16.8.0 || ^17.0.0",
"react-dom": "^16.8.0 || ^17.0.0"
}
},
"node_modules/@stripe/stripe-js": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.21.2.tgz",
- "integrity": "sha512-iIXe+XF9XdyO4/1i+TPRdsjy4rFOkYLeCsmB/uuSrCVs+Y0nxCdaRK3oD6n7c7lEi1sxDbAQX615wlt9E4EqWQ=="
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.22.0.tgz",
+ "integrity": "sha512-fm8TR8r4LwbXgBIYdPmeMjJJkxxFC66tvoliNnmXOpUgZSgQKoNPW3ON0ZphZIiif1oqWNhAaSrr7tOvGu+AFg=="
},
"node_modules/@szmarczak/http-timer": {
"version": "4.0.6",
@@ -14884,9 +14899,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"node_modules/@types/node": {
- "version": "16.11.12",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz",
- "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw=="
+ "version": "16.11.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz",
+ "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw=="
},
"node_modules/@types/node-fetch": {
"version": "2.5.12",
@@ -15380,13 +15395,13 @@
"integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz",
- "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz",
+ "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/experimental-utils": "5.6.0",
- "@typescript-eslint/scope-manager": "5.6.0",
+ "@typescript-eslint/experimental-utils": "5.7.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
"debug": "^4.3.2",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.1.8",
@@ -15468,15 +15483,15 @@
"dev": true
},
"node_modules/@typescript-eslint/experimental-utils": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz",
- "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz",
+ "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.6.0",
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/typescript-estree": "5.6.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/typescript-estree": "5.7.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -15492,14 +15507,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz",
- "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz",
+ "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.6.0",
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/typescript-estree": "5.6.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/typescript-estree": "5.7.0",
"debug": "^4.3.2"
},
"engines": {
@@ -15542,13 +15557,13 @@
"dev": true
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz",
- "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz",
+ "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/visitor-keys": "5.6.0"
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/visitor-keys": "5.7.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -15559,9 +15574,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz",
- "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz",
+ "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -15572,13 +15587,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz",
- "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz",
+ "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/visitor-keys": "5.6.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/visitor-keys": "5.7.0",
"debug": "^4.3.2",
"globby": "^11.0.4",
"is-glob": "^4.0.3",
@@ -15655,12 +15670,12 @@
"dev": true
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz",
- "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz",
+ "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.6.0",
+ "@typescript-eslint/types": "5.7.0",
"eslint-visitor-keys": "^3.0.0"
},
"engines": {
@@ -17430,12 +17445,12 @@
}
},
"node_modules/babel-jest": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz",
- "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.5.tgz",
+ "integrity": "sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==",
"dev": true,
"dependencies": {
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/babel__core": "^7.1.14",
"babel-plugin-istanbul": "^6.0.0",
@@ -31258,8 +31273,7 @@
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
},
"node_modules/html-minifier-terser": {
"version": "6.1.0",
@@ -33099,14 +33113,14 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"node_modules/jest": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz",
- "integrity": "sha512-jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.5.tgz",
+ "integrity": "sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg==",
"dev": true,
"dependencies": {
- "@jest/core": "^27.4.3",
+ "@jest/core": "^27.4.5",
"import-local": "^3.0.2",
- "jest-cli": "^27.4.3"
+ "jest-cli": "^27.4.5"
},
"bin": {
"jest": "bin/jest.js"
@@ -33138,12 +33152,12 @@
}
},
"node_modules/jest-circus": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz",
- "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.5.tgz",
+ "integrity": "sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==",
"dev": true,
"dependencies": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -33155,8 +33169,8 @@
"jest-each": "^27.4.2",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"pretty-format": "^27.4.2",
"slash": "^3.0.0",
@@ -33247,19 +33261,19 @@
}
},
"node_modules/jest-cli": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz",
- "integrity": "sha512-zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.5.tgz",
+ "integrity": "sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg==",
"dev": true,
"dependencies": {
- "@jest/core": "^27.4.3",
+ "@jest/core": "^27.4.5",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
"chalk": "^4.0.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"import-local": "^3.0.2",
- "jest-config": "^27.4.3",
+ "jest-config": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"prompts": "^2.0.1",
@@ -33398,28 +33412,28 @@
}
},
"node_modules/jest-config": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz",
- "integrity": "sha512-DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.5.tgz",
+ "integrity": "sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA==",
"dev": true,
"dependencies": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^27.4.2",
+ "@jest/test-sequencer": "^27.4.5",
"@jest/types": "^27.4.2",
- "babel-jest": "^27.4.2",
+ "babel-jest": "^27.4.5",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
- "jest-circus": "^27.4.2",
- "jest-environment-jsdom": "^27.4.3",
- "jest-environment-node": "^27.4.2",
+ "jest-circus": "^27.4.5",
+ "jest-environment-jsdom": "^27.4.4",
+ "jest-environment-node": "^27.4.4",
"jest-get-type": "^27.4.0",
- "jest-jasmine2": "^27.4.2",
+ "jest-jasmine2": "^27.4.5",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-runner": "^27.4.3",
+ "jest-resolve": "^27.4.5",
+ "jest-runner": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"micromatch": "^4.0.4",
@@ -33707,12 +33721,12 @@
}
},
"node_modules/jest-environment-jsdom": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz",
- "integrity": "sha512-x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz",
+ "integrity": "sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==",
"dev": true,
"dependencies": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/fake-timers": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -33725,12 +33739,12 @@
}
},
"node_modules/jest-environment-node": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz",
- "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.4.tgz",
+ "integrity": "sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==",
"dev": true,
"dependencies": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/fake-timers": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -33751,9 +33765,9 @@
}
},
"node_modules/jest-haste-map": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz",
- "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.5.tgz",
+ "integrity": "sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q==",
"dev": true,
"dependencies": {
"@jest/types": "^27.4.2",
@@ -33765,7 +33779,7 @@
"jest-regex-util": "^27.4.0",
"jest-serializer": "^27.4.0",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"micromatch": "^4.0.4",
"walker": "^1.0.7"
},
@@ -33786,9 +33800,9 @@
}
},
"node_modules/jest-haste-map/node_modules/jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -33815,13 +33829,13 @@
}
},
"node_modules/jest-jasmine2": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz",
- "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz",
+ "integrity": "sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==",
"dev": true,
"dependencies": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/source-map": "^27.4.0",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
@@ -33833,8 +33847,8 @@
"jest-each": "^27.4.2",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"pretty-format": "^27.4.2",
"throat": "^6.0.1"
@@ -34337,15 +34351,15 @@
}
},
"node_modules/jest-resolve": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz",
- "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.5.tgz",
+ "integrity": "sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw==",
"dev": true,
"dependencies": {
"@jest/types": "^27.4.2",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-pnp-resolver": "^1.2.2",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
@@ -34358,14 +34372,14 @@
}
},
"node_modules/jest-resolve-dependencies": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz",
- "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz",
+ "integrity": "sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w==",
"dev": true,
"dependencies": {
"@jest/types": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-snapshot": "^27.4.2"
+ "jest-snapshot": "^27.4.5"
},
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
@@ -34451,15 +34465,15 @@
}
},
"node_modules/jest-runner": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz",
- "integrity": "sha512-JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.5.tgz",
+ "integrity": "sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==",
"dev": true,
"dependencies": {
"@jest/console": "^27.4.2",
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"chalk": "^4.0.0",
@@ -34467,15 +34481,15 @@
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"jest-docblock": "^27.4.0",
- "jest-environment-jsdom": "^27.4.3",
- "jest-environment-node": "^27.4.2",
- "jest-haste-map": "^27.4.2",
+ "jest-environment-jsdom": "^27.4.4",
+ "jest-environment-node": "^27.4.4",
+ "jest-haste-map": "^27.4.5",
"jest-leak-detector": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-resolve": "^27.4.2",
- "jest-runtime": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-runtime": "^27.4.5",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"source-map-support": "^0.5.6",
"throat": "^6.0.1"
},
@@ -34542,9 +34556,9 @@
}
},
"node_modules/jest-runner/node_modules/jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -34583,17 +34597,17 @@
}
},
"node_modules/jest-runtime": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz",
- "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.5.tgz",
+ "integrity": "sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ==",
"dev": true,
"dependencies": {
"@jest/console": "^27.4.2",
- "@jest/environment": "^27.4.2",
- "@jest/globals": "^27.4.2",
+ "@jest/environment": "^27.4.4",
+ "@jest/globals": "^27.4.4",
"@jest/source-map": "^27.4.0",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/yargs": "^16.0.0",
"chalk": "^4.0.0",
@@ -34603,12 +34617,12 @@
"exit": "^0.1.2",
"glob": "^7.1.3",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-message-util": "^27.4.2",
"jest-mock": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"slash": "^3.0.0",
@@ -34759,9 +34773,9 @@
}
},
"node_modules/jest-snapshot": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz",
- "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.5.tgz",
+ "integrity": "sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==",
"dev": true,
"dependencies": {
"@babel/core": "^7.7.2",
@@ -34770,7 +34784,7 @@
"@babel/plugin-syntax-typescript": "^7.7.2",
"@babel/traverse": "^7.7.2",
"@babel/types": "^7.0.0",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/babel__traverse": "^7.0.4",
"@types/prettier": "^2.1.5",
@@ -34780,10 +34794,10 @@
"graceful-fs": "^4.2.4",
"jest-diff": "^27.4.2",
"jest-get-type": "^27.4.0",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-resolve": "^27.4.2",
+ "jest-resolve": "^27.4.5",
"jest-util": "^27.4.2",
"natural-compare": "^1.4.0",
"pretty-format": "^27.4.2",
@@ -35843,24 +35857,23 @@
}
},
"node_modules/lint-staged": {
- "version": "12.1.2",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz",
- "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==",
+ "version": "12.1.3",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.3.tgz",
+ "integrity": "sha512-ajapdkaFxx+MVhvq6xQRg9zCnCLz49iQLJZP7+w8XaA3U4B35Z9xJJGq9vxmWo73QTvJLG+N2NxhjWiSexbAWQ==",
"dev": true,
"dependencies": {
"cli-truncate": "^3.1.0",
"colorette": "^2.0.16",
"commander": "^8.3.0",
- "debug": "^4.3.2",
- "enquirer": "^2.3.6",
+ "debug": "^4.3.3",
"execa": "^5.1.1",
"lilconfig": "2.0.4",
- "listr2": "^3.13.3",
+ "listr2": "^3.13.5",
"micromatch": "^4.0.4",
"normalize-path": "^3.0.0",
- "object-inspect": "^1.11.0",
+ "object-inspect": "^1.11.1",
"string-argv": "^0.3.1",
- "supports-color": "^9.0.2",
+ "supports-color": "^9.2.1",
"yaml": "^1.10.2"
},
"bin": {
@@ -41419,9 +41432,9 @@
}
},
"node_modules/object-inspect": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
- "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
+ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -43262,9 +43275,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz",
- "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==",
+ "version": "8.4.5",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
+ "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
"dependencies": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
@@ -45153,11 +45166,12 @@
}
},
"node_modules/react-i18next": {
- "version": "11.14.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.14.3.tgz",
- "integrity": "sha512-Hf2aanbKgYxPjG8ZdKr+PBz9sY6sxXuZWizxCYyJD2YzvJ0W9JTQcddVEjDaKyBoCyd3+5HTerdhc9ehFugc6g==",
+ "version": "11.15.1",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.15.1.tgz",
+ "integrity": "sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA==",
"dependencies": {
"@babel/runtime": "^7.14.5",
+ "html-escaper": "^2.0.2",
"html-parse-stringify": "^3.0.1"
},
"peerDependencies": {
@@ -45180,9 +45194,9 @@
}
},
"node_modules/react-instantsearch-core": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.17.0.tgz",
- "integrity": "sha512-aFeoLcO5YSrXXWeMGaTvoOa2odiPIIeV1ftENqYeoJtHO/Jk4sDNpHlEXSmPctr/v1lludsFKIp1Xo4cNjrqiA==",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.18.0.tgz",
+ "integrity": "sha512-lPbKGsprh7eV0ILR5Sj9qoP7R3jJ6/I3+++iB6rWOmBzMhbZ8ivl6i6LDJwYYt9lOghYqRDbtdWVx/hAE4O4Ng==",
"dependencies": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.6.2",
@@ -45195,16 +45209,16 @@
}
},
"node_modules/react-instantsearch-dom": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.17.0.tgz",
- "integrity": "sha512-KwQJ0HqD9YBvO1VBS+GZC2binTfrGFRClXxDwmd014I9lyqr05m1U2NR81zD0xoBkoZwELP5RWvfpuvbEL0Gdg==",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.18.0.tgz",
+ "integrity": "sha512-gsxSyzviDMcCX9+cgEnmOxRcQhoQq6e3+hCh/QvlF36Qw6xASeAt5VD+f+fRXCYX0oFJ3SoIoJXjcag4E4C4kQ==",
"dependencies": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.6.2",
"classnames": "^2.2.5",
"prop-types": "^15.6.2",
"react-fast-compare": "^3.0.0",
- "react-instantsearch-core": "^6.17.0"
+ "react-instantsearch-core": "^6.18.0"
},
"peerDependencies": {
"react": ">= 16.3.0 < 18",
@@ -47140,9 +47154,9 @@
"integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
},
"node_modules/rollup": {
- "version": "2.61.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.0.tgz",
- "integrity": "sha512-teQ+T1mUYbyvGyUavCodiyA9hD4DxwYZJwr/qehZGhs1Z49vsmzelMVYMxGU4ZhGRKxYPupHuz5yzm/wj7VpWA==",
+ "version": "2.61.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz",
+ "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@@ -51808,9 +51822,9 @@
}
},
"node_modules/typescript": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz",
- "integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
+ "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -54863,7 +54877,7 @@
"inquirer": "8.2.0",
"prettier": "2.5.1",
"ts-node": "10.4.0",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
},
"engines": {
"node": ">=16",
@@ -55191,17 +55205,17 @@
"version": "0.0.1",
"license": "BSD-3-Clause",
"dependencies": {
- "@babel/preset-typescript": "7.16.0",
+ "@babel/preset-typescript": "7.16.5",
"react": "16.14.0",
"react-dom": "16.14.0",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
},
"devDependencies": {
- "@babel/core": "7.16.0",
- "@babel/preset-env": "7.16.4",
+ "@babel/core": "7.16.5",
+ "@babel/preset-env": "7.16.5",
"@rollup/plugin-babel": "5.3.0",
"@rollup/plugin-commonjs": "19.0.2",
- "@rollup/plugin-node-resolve": "13.0.6",
+ "@rollup/plugin-node-resolve": "13.1.1",
"@storybook/addon-actions": "6.4.9",
"@storybook/addon-docs": "6.4.9",
"@storybook/addon-essentials": "6.4.9",
@@ -55217,10 +55231,10 @@
"babel-loader": "8.2.3",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"cross-env": "7.0.3",
- "postcss": "8.4.4",
+ "postcss": "8.4.5",
"postcss-import": "14.0.2",
"rimraf": "3.0.2",
- "rollup": "2.61.0",
+ "rollup": "2.61.1",
"rollup-plugin-postcss": "4.0.2",
"rollup-plugin-terser": "7.0.2",
"tailwindcss": "2.2.19"
@@ -55390,12 +55404,6 @@
}
}
},
- "tools/ui-components/node_modules/@types/node": {
- "version": "14.18.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz",
- "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==",
- "dev": true
- },
"tools/ui-components/node_modules/@types/yargs": {
"version": "15.0.14",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz",
@@ -55810,18 +55818,18 @@
"integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q=="
},
"@babel/core": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz",
- "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz",
+ "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==",
"requires": {
"@babel/code-frame": "^7.16.0",
- "@babel/generator": "^7.16.0",
- "@babel/helper-compilation-targets": "^7.16.0",
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helpers": "^7.16.0",
- "@babel/parser": "^7.16.0",
+ "@babel/generator": "^7.16.5",
+ "@babel/helper-compilation-targets": "^7.16.3",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helpers": "^7.16.5",
+ "@babel/parser": "^7.16.5",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
@@ -55847,9 +55855,9 @@
}
},
"@babel/eslint-parser": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz",
- "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz",
+ "integrity": "sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA==",
"requires": {
"eslint-scope": "^5.1.1",
"eslint-visitor-keys": "^2.1.0",
@@ -55857,9 +55865,9 @@
}
},
"@babel/generator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz",
- "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz",
+ "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==",
"requires": {
"@babel/types": "^7.16.0",
"jsesc": "^2.5.1",
@@ -55875,9 +55883,9 @@
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz",
- "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz",
+ "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==",
"requires": {
"@babel/helper-explode-assignable-expression": "^7.16.0",
"@babel/types": "^7.16.0"
@@ -55895,15 +55903,16 @@
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz",
- "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz",
+ "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
- "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-member-expression-to-functions": "^7.16.5",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-replace-supers": "^7.16.5",
"@babel/helper-split-export-declaration": "^7.16.0"
}
},
@@ -55946,6 +55955,14 @@
}
}
},
+ "@babel/helper-environment-visitor": {
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz",
+ "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==",
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
"@babel/helper-explode-assignable-expression": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz",
@@ -55981,9 +55998,9 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz",
- "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz",
+ "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==",
"requires": {
"@babel/types": "^7.16.0"
}
@@ -55997,17 +56014,17 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz",
- "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz",
+ "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==",
"requires": {
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-replace-supers": "^7.16.0",
"@babel/helper-simple-access": "^7.16.0",
"@babel/helper-split-export-declaration": "^7.16.0",
"@babel/helper-validator-identifier": "^7.15.7",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
@@ -56020,28 +56037,29 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
- "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ=="
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz",
+ "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ=="
},
"@babel/helper-remap-async-to-generator": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz",
- "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz",
+ "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-wrap-function": "^7.16.0",
+ "@babel/helper-wrap-function": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
"@babel/helper-replace-supers": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz",
- "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz",
+ "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==",
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
+ "@babel/helper-member-expression-to-functions": "^7.16.5",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
@@ -56080,23 +56098,23 @@
"integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow=="
},
"@babel/helper-wrap-function": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz",
- "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz",
+ "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==",
"requires": {
"@babel/helper-function-name": "^7.16.0",
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.0",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
"@babel/helpers": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz",
- "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz",
+ "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==",
"requires": {
"@babel/template": "^7.16.0",
- "@babel/traverse": "^7.16.3",
+ "@babel/traverse": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
@@ -56133,9 +56151,9 @@
}
},
"@babel/parser": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz",
- "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng=="
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz",
+ "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.16.2",
@@ -56156,31 +56174,31 @@
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz",
- "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz",
+ "integrity": "sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.16.4",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-remap-async-to-generator": "^7.16.5",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz",
- "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz",
+ "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz",
- "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz",
+ "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
@@ -56196,135 +56214,135 @@
}
},
"@babel/plugin-proposal-dynamic-import": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz",
- "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz",
+ "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
}
},
"@babel/plugin-proposal-export-default-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz",
- "integrity": "sha512-kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.5.tgz",
+ "integrity": "sha512-pU4aCS+AzGjDD/6LnwSmeelmtqfMSjzQxs7+/AS673bYsshK1XZm9eth6OkgivVscQM8XdkVYhrb6tPFVTBVHA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-export-default-from": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-export-default-from": "^7.16.5"
}
},
"@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz",
- "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz",
+ "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
}
},
"@babel/plugin-proposal-function-bind": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.0.tgz",
- "integrity": "sha512-oTf/NztwTma6O4e16Iy6+DOqodQydc1/MLmENMTduigCYxvUvLblCRP5Tu3PkAGPKq5/F3lB44GWLc+egJi3VA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.5.tgz",
+ "integrity": "sha512-rOr/gYNm8pTBAfnwr/F6uSPjFJMqE2L1jLCoVrAcrt1he5e9F6pV6Cl4JBrFBbUnA+ETMnVFZIhfVbTq7So0Gw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-function-bind": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-function-bind": "^7.16.5"
}
},
"@babel/plugin-proposal-json-strings": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz",
- "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz",
+ "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-json-strings": "^7.8.3"
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz",
- "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz",
+ "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
"@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz",
- "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz",
+ "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
}
},
"@babel/plugin-proposal-numeric-separator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz",
- "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz",
+ "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz",
- "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz",
+ "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==",
"requires": {
- "@babel/compat-data": "^7.16.0",
- "@babel/helper-compilation-targets": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/compat-data": "^7.16.4",
+ "@babel/helper-compilation-targets": "^7.16.3",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.0"
+ "@babel/plugin-transform-parameters": "^7.16.5"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz",
- "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz",
+ "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz",
- "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz",
+ "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
"@babel/plugin-proposal-private-methods": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz",
- "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz",
+ "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz",
- "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz",
+ "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-create-class-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz",
- "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz",
+ "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==",
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-syntax-async-generators": {
@@ -56378,11 +56396,11 @@
}
},
"@babel/plugin-syntax-export-default-from": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz",
- "integrity": "sha512-xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.5.tgz",
+ "integrity": "sha512-tvY55nhq4mSG9WbM7IZcLIhdc5jzIZu0PQKJHtZ16+dF7oBxKbqV/Z0e9ta2zaLMvUjH+3rJv1hbZ0+lpXzuFQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-syntax-export-namespace-from": {
@@ -56403,11 +56421,11 @@
}
},
"@babel/plugin-syntax-function-bind": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.0.tgz",
- "integrity": "sha512-L+B4rMnFg2ElQUTjSr3gfmIAJ3ej/BeKGW32AL01qpLhkI4Vw1C+W8p6wl8S6eYqWSj9X9d/lyuQWI5JFYjCWw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.5.tgz",
+ "integrity": "sha512-Jn09tjgZuJIQdbqQCkBQErzjO4LV2NDUz03HSowJD0km7iXsKPX6Sk0G7xIkUItenYNLfkndlWojeTyYC6QbBA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-syntax-import-meta": {
@@ -56428,11 +56446,11 @@
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz",
- "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz",
+ "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-syntax-logical-assignment-operators": {
@@ -56508,93 +56526,94 @@
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz",
- "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz",
+ "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz",
- "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz",
+ "integrity": "sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==",
"requires": {
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-remap-async-to-generator": "^7.16.5"
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz",
- "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz",
+ "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz",
- "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz",
+ "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz",
- "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz",
+ "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
"@babel/helper-optimise-call-expression": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-replace-supers": "^7.16.5",
"@babel/helper-split-export-declaration": "^7.16.0",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz",
- "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz",
+ "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz",
- "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz",
+ "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-dotall-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz",
- "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz",
+ "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==",
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz",
- "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz",
+ "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz",
- "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz",
+ "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==",
"requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-flow-strip-types": {
@@ -56608,172 +56627,172 @@
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz",
- "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz",
+ "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-function-name": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz",
- "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz",
+ "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==",
"requires": {
"@babel/helper-function-name": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz",
- "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz",
+ "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-member-expression-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz",
- "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz",
+ "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz",
- "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz",
+ "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==",
"requires": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz",
- "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz",
+ "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==",
"requires": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-simple-access": "^7.16.0",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz",
- "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz",
+ "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==",
"requires": {
"@babel/helper-hoist-variables": "^7.16.0",
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-identifier": "^7.15.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz",
- "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz",
+ "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==",
"requires": {
- "@babel/helper-module-transforms": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-module-transforms": "^7.16.5",
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz",
- "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz",
+ "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==",
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz",
- "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz",
+ "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz",
- "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz",
+ "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.16.0"
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/helper-replace-supers": "^7.16.5"
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz",
- "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz",
+ "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-property-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz",
- "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz",
+ "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz",
- "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz",
+ "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz",
- "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz",
+ "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
"@babel/helper-module-imports": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-jsx": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.16.5",
+ "@babel/plugin-syntax-jsx": "^7.16.5",
"@babel/types": "^7.16.0"
}
},
"@babel/plugin-transform-react-jsx-development": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz",
- "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz",
+ "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==",
"requires": {
- "@babel/plugin-transform-react-jsx": "^7.16.0"
+ "@babel/plugin-transform-react-jsx": "^7.16.5"
}
},
"@babel/plugin-transform-react-pure-annotations": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz",
- "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz",
+ "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz",
- "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz",
+ "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==",
"requires": {
"regenerator-transform": "^0.14.2"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz",
- "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz",
+ "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-runtime": {
@@ -56790,44 +56809,44 @@
}
},
"@babel/plugin-transform-shorthand-properties": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz",
- "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz",
+ "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz",
- "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz",
+ "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
}
},
"@babel/plugin-transform-sticky-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz",
- "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz",
+ "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz",
- "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz",
+ "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz",
- "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz",
+ "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-typescript": {
@@ -56841,20 +56860,20 @@
}
},
"@babel/plugin-transform-unicode-escapes": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz",
- "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz",
+ "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz",
- "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz",
+ "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==",
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.0",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.5"
}
},
"@babel/polyfill": {
@@ -56867,31 +56886,31 @@
}
},
"@babel/preset-env": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz",
- "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz",
+ "integrity": "sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==",
"requires": {
"@babel/compat-data": "^7.16.4",
"@babel/helper-compilation-targets": "^7.16.3",
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.4",
- "@babel/plugin-proposal-class-properties": "^7.16.0",
- "@babel/plugin-proposal-class-static-block": "^7.16.0",
- "@babel/plugin-proposal-dynamic-import": "^7.16.0",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.0",
- "@babel/plugin-proposal-json-strings": "^7.16.0",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
- "@babel/plugin-proposal-numeric-separator": "^7.16.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.0",
- "@babel/plugin-proposal-private-methods": "^7.16.0",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.16.5",
+ "@babel/plugin-proposal-class-properties": "^7.16.5",
+ "@babel/plugin-proposal-class-static-block": "^7.16.5",
+ "@babel/plugin-proposal-dynamic-import": "^7.16.5",
+ "@babel/plugin-proposal-export-namespace-from": "^7.16.5",
+ "@babel/plugin-proposal-json-strings": "^7.16.5",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.16.5",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.5",
+ "@babel/plugin-proposal-numeric-separator": "^7.16.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.16.5",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.16.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.16.5",
+ "@babel/plugin-proposal-private-methods": "^7.16.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.16.5",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.16.5",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
@@ -56906,38 +56925,38 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.0",
- "@babel/plugin-transform-async-to-generator": "^7.16.0",
- "@babel/plugin-transform-block-scoped-functions": "^7.16.0",
- "@babel/plugin-transform-block-scoping": "^7.16.0",
- "@babel/plugin-transform-classes": "^7.16.0",
- "@babel/plugin-transform-computed-properties": "^7.16.0",
- "@babel/plugin-transform-destructuring": "^7.16.0",
- "@babel/plugin-transform-dotall-regex": "^7.16.0",
- "@babel/plugin-transform-duplicate-keys": "^7.16.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.16.0",
- "@babel/plugin-transform-for-of": "^7.16.0",
- "@babel/plugin-transform-function-name": "^7.16.0",
- "@babel/plugin-transform-literals": "^7.16.0",
- "@babel/plugin-transform-member-expression-literals": "^7.16.0",
- "@babel/plugin-transform-modules-amd": "^7.16.0",
- "@babel/plugin-transform-modules-commonjs": "^7.16.0",
- "@babel/plugin-transform-modules-systemjs": "^7.16.0",
- "@babel/plugin-transform-modules-umd": "^7.16.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0",
- "@babel/plugin-transform-new-target": "^7.16.0",
- "@babel/plugin-transform-object-super": "^7.16.0",
- "@babel/plugin-transform-parameters": "^7.16.3",
- "@babel/plugin-transform-property-literals": "^7.16.0",
- "@babel/plugin-transform-regenerator": "^7.16.0",
- "@babel/plugin-transform-reserved-words": "^7.16.0",
- "@babel/plugin-transform-shorthand-properties": "^7.16.0",
- "@babel/plugin-transform-spread": "^7.16.0",
- "@babel/plugin-transform-sticky-regex": "^7.16.0",
- "@babel/plugin-transform-template-literals": "^7.16.0",
- "@babel/plugin-transform-typeof-symbol": "^7.16.0",
- "@babel/plugin-transform-unicode-escapes": "^7.16.0",
- "@babel/plugin-transform-unicode-regex": "^7.16.0",
+ "@babel/plugin-transform-arrow-functions": "^7.16.5",
+ "@babel/plugin-transform-async-to-generator": "^7.16.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.16.5",
+ "@babel/plugin-transform-block-scoping": "^7.16.5",
+ "@babel/plugin-transform-classes": "^7.16.5",
+ "@babel/plugin-transform-computed-properties": "^7.16.5",
+ "@babel/plugin-transform-destructuring": "^7.16.5",
+ "@babel/plugin-transform-dotall-regex": "^7.16.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.16.5",
+ "@babel/plugin-transform-exponentiation-operator": "^7.16.5",
+ "@babel/plugin-transform-for-of": "^7.16.5",
+ "@babel/plugin-transform-function-name": "^7.16.5",
+ "@babel/plugin-transform-literals": "^7.16.5",
+ "@babel/plugin-transform-member-expression-literals": "^7.16.5",
+ "@babel/plugin-transform-modules-amd": "^7.16.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.16.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.16.5",
+ "@babel/plugin-transform-modules-umd": "^7.16.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.5",
+ "@babel/plugin-transform-new-target": "^7.16.5",
+ "@babel/plugin-transform-object-super": "^7.16.5",
+ "@babel/plugin-transform-parameters": "^7.16.5",
+ "@babel/plugin-transform-property-literals": "^7.16.5",
+ "@babel/plugin-transform-regenerator": "^7.16.5",
+ "@babel/plugin-transform-reserved-words": "^7.16.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.16.5",
+ "@babel/plugin-transform-spread": "^7.16.5",
+ "@babel/plugin-transform-sticky-regex": "^7.16.5",
+ "@babel/plugin-transform-template-literals": "^7.16.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.16.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.16.5",
+ "@babel/plugin-transform-unicode-regex": "^7.16.5",
"@babel/preset-modules": "^0.1.5",
"@babel/types": "^7.16.0",
"babel-plugin-polyfill-corejs2": "^0.3.0",
@@ -56971,32 +56990,32 @@
}
},
"@babel/preset-react": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz",
- "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz",
+ "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-react-display-name": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-react-jsx-development": "^7.16.0",
- "@babel/plugin-transform-react-pure-annotations": "^7.16.0"
+ "@babel/plugin-transform-react-display-name": "^7.16.5",
+ "@babel/plugin-transform-react-jsx": "^7.16.5",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.16.5"
}
},
"@babel/preset-typescript": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz",
- "integrity": "sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz",
+ "integrity": "sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.16.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-typescript": "^7.16.0"
+ "@babel/plugin-transform-typescript": "^7.16.1"
}
},
"@babel/register": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz",
- "integrity": "sha512-lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.5.tgz",
+ "integrity": "sha512-NpluD+cToBiZiDsG3y9rtIcqDyivsahpaM9csfyfiq1qQWduSmihUZ+ruIqqSDGjZKZMJfgAElo9x2YWlOQuRw==",
"dev": true,
"requires": {
"clone-deep": "^4.0.1",
@@ -57024,9 +57043,9 @@
}
},
"@babel/standalone": {
- "version": "7.16.4",
- "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.4.tgz",
- "integrity": "sha512-FDRLwjeQfPm5jaHNuB+vwNyGCp24Ah3kEsbLzKmh0eSru+QCr4DmjgbRPoz71AwXLVtXU+l/i7MlVlIj5XO7Gw=="
+ "version": "7.16.6",
+ "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.6.tgz",
+ "integrity": "sha512-wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw=="
},
"@babel/template": {
"version": "7.16.0",
@@ -57039,16 +57058,17 @@
}
},
"@babel/traverse": {
- "version": "7.16.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz",
- "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==",
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz",
+ "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==",
"requires": {
"@babel/code-frame": "^7.16.0",
- "@babel/generator": "^7.16.0",
+ "@babel/generator": "^7.16.5",
+ "@babel/helper-environment-visitor": "^7.16.5",
"@babel/helper-function-name": "^7.16.0",
"@babel/helper-hoist-variables": "^7.16.0",
"@babel/helper-split-export-declaration": "^7.16.0",
- "@babel/parser": "^7.16.3",
+ "@babel/parser": "^7.16.5",
"@babel/types": "^7.16.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
@@ -57101,9 +57121,9 @@
}
},
"@codesee/babel-plugin-instrument": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@codesee/babel-plugin-instrument/-/babel-plugin-instrument-0.150.0.tgz",
- "integrity": "sha512-OKLo86DsXEDflhM7x9gOMIHc3VsnCA/cO6kTM6elopU2dogw0gIKHTNZXDf7ivZA0nbVKNbfXDujyLsOHCF/yA==",
+ "version": "0.153.0",
+ "resolved": "https://registry.npmjs.org/@codesee/babel-plugin-instrument/-/babel-plugin-instrument-0.153.0.tgz",
+ "integrity": "sha512-Ip8/N1w1OvaOfeN/TOcotRb5/Q86AfyQ30j2w0OE0k9w3XKrpPl+yqoVZ4V/1ore2s5z+pQqTu6SiPEvZN0AcQ==",
"dev": true,
"requires": {
"@babel/plugin-syntax-jsx": "^7.12.13",
@@ -57115,9 +57135,9 @@
}
},
"@codesee/tracker": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@codesee/tracker/-/tracker-0.150.0.tgz",
- "integrity": "sha512-dUjhKrAMTd7ViW1PifGJHe6golDUAK8X9z+/6L6NR3/Sc8s0xzDo8WtXGxvYkbvIb6GG+r/XEB8XJ+NnejjBng==",
+ "version": "0.153.0",
+ "resolved": "https://registry.npmjs.org/@codesee/tracker/-/tracker-0.153.0.tgz",
+ "integrity": "sha512-cVJQFBrtPqkD+YbudKC+Ayq+cGrW4sdCnmrBpSAjOAmP3oV10DPSmCWodwfUZdHbdhdF6qwTf7ly92rDhFglOg==",
"dev": true
},
"@cspotcode/source-map-consumer": {
@@ -57665,15 +57685,15 @@
"@freecodecamp/client": {
"version": "file:client",
"requires": {
- "@babel/plugin-proposal-export-default-from": "7.16.0",
- "@babel/plugin-proposal-function-bind": "7.16.0",
+ "@babel/plugin-proposal-export-default-from": "7.16.5",
+ "@babel/plugin-proposal-function-bind": "7.16.5",
"@babel/polyfill": "7.12.1",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-react": "7.16.0",
- "@babel/standalone": "7.16.4",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-react": "7.16.5",
+ "@babel/standalone": "7.16.6",
"@babel/types": "7.16.0",
- "@codesee/babel-plugin-instrument": "0.150.0",
- "@codesee/tracker": "0.150.0",
+ "@codesee/babel-plugin-instrument": "0.153.0",
+ "@codesee/tracker": "0.153.0",
"@fortawesome/fontawesome": "1.1.8",
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -57683,10 +57703,10 @@
"@freecodecamp/react-bootstrap": "0.32.3",
"@freecodecamp/react-calendar-heatmap": "1.0.0",
"@freecodecamp/strip-comments": "3.0.1",
- "@loadable/component": "5.15.0",
+ "@loadable/component": "5.15.2",
"@reach/router": "1.3.4",
- "@stripe/react-stripe-js": "1.6.0",
- "@stripe/stripe-js": "1.21.2",
+ "@stripe/react-stripe-js": "1.7.0",
+ "@stripe/stripe-js": "1.22.0",
"@testing-library/jest-dom": "5.16.1",
"@testing-library/react": "12.1.2",
"@types/react-scrollable-anchor": "0.6.1",
@@ -57731,7 +57751,7 @@
"nanoid": "3.1.30",
"normalize-url": "4.5.1",
"path-browserify": "1.0.1",
- "postcss": "8.4.4",
+ "postcss": "8.4.5",
"prismjs": "1.25.0",
"process": "0.11.10",
"prop-types": "15.7.2",
@@ -57743,8 +57763,8 @@
"react-ga": "3.3.0",
"react-helmet": "6.1.0",
"react-hotkeys": "2.0.0",
- "react-i18next": "11.14.3",
- "react-instantsearch-dom": "6.17.0",
+ "react-i18next": "11.15.1",
+ "react-instantsearch-dom": "6.18.0",
"react-lazy-load": "3.1.13",
"react-monaco-editor": "0.40.0",
"react-redux": "5.1.2",
@@ -57772,7 +57792,7 @@
"store": "2.0.12",
"stream-browserify": "3.0.0",
"tone": "14.7.77",
- "typescript": "4.5.3",
+ "typescript": "4.5.4",
"uuid": "8.3.2",
"validator": "13.7.0",
"webpack": "5.65.0",
@@ -57853,11 +57873,11 @@
"@freecodecamp/curriculum": {
"version": "file:curriculum",
"requires": {
- "@babel/core": "7.16.0",
+ "@babel/core": "7.16.5",
"@babel/polyfill": "7.12.1",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-typescript": "7.16.0",
- "@babel/register": "7.16.0",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
+ "@babel/register": "7.16.5",
"acorn": "8.5.0",
"acorn-jsx": "5.3.2",
"babel-plugin-dynamic-import-node": "2.3.3",
@@ -57907,7 +57927,7 @@
"inquirer": "8.2.0",
"prettier": "2.5.1",
"ts-node": "10.4.0",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
},
"dependencies": {
"acorn-walk": {
@@ -58071,12 +58091,12 @@
"@freecodecamp/ui": {
"version": "file:tools/ui-components",
"requires": {
- "@babel/core": "7.16.0",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-typescript": "7.16.0",
+ "@babel/core": "7.16.5",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
"@rollup/plugin-babel": "5.3.0",
"@rollup/plugin-commonjs": "19.0.2",
- "@rollup/plugin-node-resolve": "13.0.6",
+ "@rollup/plugin-node-resolve": "13.1.1",
"@storybook/addon-actions": "6.4.9",
"@storybook/addon-docs": "6.4.9",
"@storybook/addon-essentials": "6.4.9",
@@ -58092,16 +58112,16 @@
"babel-loader": "8.2.3",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"cross-env": "7.0.3",
- "postcss": "8.4.4",
+ "postcss": "8.4.5",
"postcss-import": "14.0.2",
"react": "16.14.0",
"react-dom": "16.14.0",
"rimraf": "3.0.2",
- "rollup": "2.61.0",
+ "rollup": "2.61.1",
"rollup-plugin-postcss": "4.0.2",
"rollup-plugin-terser": "7.0.2",
"tailwindcss": "2.2.19",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
},
"dependencies": {
"@jest/transform": {
@@ -58194,12 +58214,6 @@
"util-deprecate": "^1.0.2"
}
},
- "@types/node": {
- "version": "14.18.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz",
- "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==",
- "dev": true
- },
"@types/yargs": {
"version": "15.0.14",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz",
@@ -58859,15 +58873,15 @@
}
},
"@jest/core": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz",
- "integrity": "sha512-V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.5.tgz",
+ "integrity": "sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ==",
"dev": true,
"requires": {
"@jest/console": "^27.4.2",
- "@jest/reporters": "^27.4.2",
+ "@jest/reporters": "^27.4.5",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
@@ -58876,15 +58890,15 @@
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"jest-changed-files": "^27.4.2",
- "jest-config": "^27.4.3",
- "jest-haste-map": "^27.4.2",
+ "jest-config": "^27.4.5",
+ "jest-haste-map": "^27.4.5",
"jest-message-util": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-resolve-dependencies": "^27.4.2",
- "jest-runner": "^27.4.3",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-resolve-dependencies": "^27.4.5",
+ "jest-runner": "^27.4.5",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"jest-watcher": "^27.4.2",
@@ -58952,9 +58966,9 @@
}
},
"@jest/environment": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz",
- "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.4.tgz",
+ "integrity": "sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==",
"dev": true,
"requires": {
"@jest/fake-timers": "^27.4.2",
@@ -58978,26 +58992,26 @@
}
},
"@jest/globals": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz",
- "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.4.tgz",
+ "integrity": "sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/types": "^27.4.2",
"expect": "^27.4.2"
}
},
"@jest/reporters": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz",
- "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.5.tgz",
+ "integrity": "sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^27.4.2",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"chalk": "^4.0.0",
@@ -59010,10 +59024,10 @@
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
- "jest-haste-map": "^27.4.2",
- "jest-resolve": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
+ "jest-resolve": "^27.4.5",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"slash": "^3.0.0",
"source-map": "^0.6.0",
"string-length": "^4.0.1",
@@ -59062,9 +59076,9 @@
"dev": true
},
"jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -59138,21 +59152,21 @@
}
},
"@jest/test-sequencer": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz",
- "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz",
+ "integrity": "sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ==",
"dev": true,
"requires": {
"@jest/test-result": "^27.4.2",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
- "jest-runtime": "^27.4.2"
+ "jest-haste-map": "^27.4.5",
+ "jest-runtime": "^27.4.5"
}
},
"@jest/transform": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz",
- "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.5.tgz",
+ "integrity": "sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
@@ -59162,7 +59176,7 @@
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-regex-util": "^27.4.0",
"jest-util": "^27.4.2",
"micromatch": "^4.0.4",
@@ -59300,9 +59314,9 @@
}
},
"@loadable/component": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.0.tgz",
- "integrity": "sha512-g63rQzypPOZi0BeGsK4ST2MYhsFR+i7bhL8k/McUoWDNMDuTTdUlQ2GACKxqh5sI/dNC/6nVoPrycMnSylnAgQ==",
+ "version": "5.15.2",
+ "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz",
+ "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==",
"requires": {
"@babel/runtime": "^7.7.7",
"hoist-non-react-statics": "^3.3.1",
@@ -59916,9 +59930,9 @@
}
},
"@rollup/plugin-node-resolve": {
- "version": "13.0.6",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz",
- "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==",
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz",
+ "integrity": "sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.1.0",
@@ -66544,17 +66558,17 @@
}
},
"@stripe/react-stripe-js": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.6.0.tgz",
- "integrity": "sha512-tMmsPD+wkpiiVJZgQ1E06tklG5MZHG462s6OWja9abpxq76kerAxMFN+KdhUg0LIEY79THbzvH3s/WGHasnV3w==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.7.0.tgz",
+ "integrity": "sha512-L20v8Jq0TDZFL2+y+uXD751t6q9SalSFkSYZpmZ2VWrGZGK7HAGfRQ804dzYSSr5fGenW6iz6y7U0YKfC/TK3g==",
"requires": {
"prop-types": "^15.7.2"
}
},
"@stripe/stripe-js": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.21.2.tgz",
- "integrity": "sha512-iIXe+XF9XdyO4/1i+TPRdsjy4rFOkYLeCsmB/uuSrCVs+Y0nxCdaRK3oD6n7c7lEi1sxDbAQX615wlt9E4EqWQ=="
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.22.0.tgz",
+ "integrity": "sha512-fm8TR8r4LwbXgBIYdPmeMjJJkxxFC66tvoliNnmXOpUgZSgQKoNPW3ON0ZphZIiif1oqWNhAaSrr7tOvGu+AFg=="
},
"@szmarczak/http-timer": {
"version": "4.0.6",
@@ -67330,9 +67344,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"@types/node": {
- "version": "16.11.12",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz",
- "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw=="
+ "version": "16.11.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz",
+ "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw=="
},
"@types/node-fetch": {
"version": "2.5.12",
@@ -67817,13 +67831,13 @@
"integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz",
- "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz",
+ "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "5.6.0",
- "@typescript-eslint/scope-manager": "5.6.0",
+ "@typescript-eslint/experimental-utils": "5.7.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
"debug": "^4.3.2",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.1.8",
@@ -67874,28 +67888,28 @@
}
},
"@typescript-eslint/experimental-utils": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz",
- "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz",
+ "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.6.0",
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/typescript-estree": "5.6.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/typescript-estree": "5.7.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz",
- "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz",
+ "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.6.0",
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/typescript-estree": "5.6.0",
+ "@typescript-eslint/scope-manager": "5.7.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/typescript-estree": "5.7.0",
"debug": "^4.3.2"
},
"dependencies": {
@@ -67917,29 +67931,29 @@
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz",
- "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz",
+ "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/visitor-keys": "5.6.0"
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/visitor-keys": "5.7.0"
}
},
"@typescript-eslint/types": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz",
- "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz",
+ "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz",
- "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz",
+ "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.6.0",
- "@typescript-eslint/visitor-keys": "5.6.0",
+ "@typescript-eslint/types": "5.7.0",
+ "@typescript-eslint/visitor-keys": "5.7.0",
"debug": "^4.3.2",
"globby": "^11.0.4",
"is-glob": "^4.0.3",
@@ -67989,12 +68003,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz",
- "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz",
+ "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.6.0",
+ "@typescript-eslint/types": "5.7.0",
"eslint-visitor-keys": "^3.0.0"
},
"dependencies": {
@@ -69456,12 +69470,12 @@
}
},
"babel-jest": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz",
- "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.5.tgz",
+ "integrity": "sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==",
"dev": true,
"requires": {
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/babel__core": "^7.1.14",
"babel-plugin-istanbul": "^6.0.0",
@@ -80369,8 +80383,7 @@
"html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
},
"html-minifier-terser": {
"version": "6.1.0",
@@ -81717,14 +81730,14 @@
}
},
"jest": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz",
- "integrity": "sha512-jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.5.tgz",
+ "integrity": "sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg==",
"dev": true,
"requires": {
- "@jest/core": "^27.4.3",
+ "@jest/core": "^27.4.5",
"import-local": "^3.0.2",
- "jest-cli": "^27.4.3"
+ "jest-cli": "^27.4.5"
}
},
"jest-changed-files": {
@@ -81739,12 +81752,12 @@
}
},
"jest-circus": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz",
- "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.5.tgz",
+ "integrity": "sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -81756,8 +81769,8 @@
"jest-each": "^27.4.2",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"pretty-format": "^27.4.2",
"slash": "^3.0.0",
@@ -81823,19 +81836,19 @@
}
},
"jest-cli": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz",
- "integrity": "sha512-zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.5.tgz",
+ "integrity": "sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg==",
"dev": true,
"requires": {
- "@jest/core": "^27.4.3",
+ "@jest/core": "^27.4.5",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
"chalk": "^4.0.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"import-local": "^3.0.2",
- "jest-config": "^27.4.3",
+ "jest-config": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"prompts": "^2.0.1",
@@ -81932,28 +81945,28 @@
}
},
"jest-config": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz",
- "integrity": "sha512-DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.5.tgz",
+ "integrity": "sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^27.4.2",
+ "@jest/test-sequencer": "^27.4.5",
"@jest/types": "^27.4.2",
- "babel-jest": "^27.4.2",
+ "babel-jest": "^27.4.5",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
- "jest-circus": "^27.4.2",
- "jest-environment-jsdom": "^27.4.3",
- "jest-environment-node": "^27.4.2",
+ "jest-circus": "^27.4.5",
+ "jest-environment-jsdom": "^27.4.4",
+ "jest-environment-node": "^27.4.4",
"jest-get-type": "^27.4.0",
- "jest-jasmine2": "^27.4.2",
+ "jest-jasmine2": "^27.4.5",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-runner": "^27.4.3",
+ "jest-resolve": "^27.4.5",
+ "jest-runner": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"micromatch": "^4.0.4",
@@ -82161,12 +82174,12 @@
}
},
"jest-environment-jsdom": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz",
- "integrity": "sha512-x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz",
+ "integrity": "sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/fake-timers": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -82176,12 +82189,12 @@
}
},
"jest-environment-node": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz",
- "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==",
+ "version": "27.4.4",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.4.tgz",
+ "integrity": "sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/fake-timers": "^27.4.2",
"@jest/types": "^27.4.2",
"@types/node": "*",
@@ -82196,9 +82209,9 @@
"dev": true
},
"jest-haste-map": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz",
- "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.5.tgz",
+ "integrity": "sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q==",
"dev": true,
"requires": {
"@jest/types": "^27.4.2",
@@ -82211,7 +82224,7 @@
"jest-regex-util": "^27.4.0",
"jest-serializer": "^27.4.0",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"micromatch": "^4.0.4",
"walker": "^1.0.7"
},
@@ -82223,9 +82236,9 @@
"dev": true
},
"jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -82245,13 +82258,13 @@
}
},
"jest-jasmine2": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz",
- "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz",
+ "integrity": "sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/source-map": "^27.4.0",
"@jest/test-result": "^27.4.2",
"@jest/types": "^27.4.2",
@@ -82263,8 +82276,8 @@
"jest-each": "^27.4.2",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-runtime": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-runtime": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"pretty-format": "^27.4.2",
"throat": "^6.0.1"
@@ -82639,15 +82652,15 @@
"dev": true
},
"jest-resolve": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz",
- "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.5.tgz",
+ "integrity": "sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw==",
"dev": true,
"requires": {
"@jest/types": "^27.4.2",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-pnp-resolver": "^1.2.2",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
@@ -82714,26 +82727,26 @@
}
},
"jest-resolve-dependencies": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz",
- "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz",
+ "integrity": "sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w==",
"dev": true,
"requires": {
"@jest/types": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-snapshot": "^27.4.2"
+ "jest-snapshot": "^27.4.5"
}
},
"jest-runner": {
- "version": "27.4.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz",
- "integrity": "sha512-JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.5.tgz",
+ "integrity": "sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==",
"dev": true,
"requires": {
"@jest/console": "^27.4.2",
- "@jest/environment": "^27.4.2",
+ "@jest/environment": "^27.4.4",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/node": "*",
"chalk": "^4.0.0",
@@ -82741,15 +82754,15 @@
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"jest-docblock": "^27.4.0",
- "jest-environment-jsdom": "^27.4.3",
- "jest-environment-node": "^27.4.2",
- "jest-haste-map": "^27.4.2",
+ "jest-environment-jsdom": "^27.4.4",
+ "jest-environment-node": "^27.4.4",
+ "jest-haste-map": "^27.4.5",
"jest-leak-detector": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-resolve": "^27.4.2",
- "jest-runtime": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-runtime": "^27.4.5",
"jest-util": "^27.4.2",
- "jest-worker": "^27.4.2",
+ "jest-worker": "^27.4.5",
"source-map-support": "^0.5.6",
"throat": "^6.0.1"
},
@@ -82795,9 +82808,9 @@
"dev": true
},
"jest-worker": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz",
- "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz",
+ "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -82828,17 +82841,17 @@
}
},
"jest-runtime": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz",
- "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.5.tgz",
+ "integrity": "sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ==",
"dev": true,
"requires": {
"@jest/console": "^27.4.2",
- "@jest/environment": "^27.4.2",
- "@jest/globals": "^27.4.2",
+ "@jest/environment": "^27.4.4",
+ "@jest/globals": "^27.4.4",
"@jest/source-map": "^27.4.0",
"@jest/test-result": "^27.4.2",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/yargs": "^16.0.0",
"chalk": "^4.0.0",
@@ -82848,12 +82861,12 @@
"exit": "^0.1.2",
"glob": "^7.1.3",
"graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-message-util": "^27.4.2",
"jest-mock": "^27.4.2",
"jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.2",
- "jest-snapshot": "^27.4.2",
+ "jest-resolve": "^27.4.5",
+ "jest-snapshot": "^27.4.5",
"jest-util": "^27.4.2",
"jest-validate": "^27.4.2",
"slash": "^3.0.0",
@@ -82967,9 +82980,9 @@
}
},
"jest-snapshot": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz",
- "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==",
+ "version": "27.4.5",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.5.tgz",
+ "integrity": "sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==",
"dev": true,
"requires": {
"@babel/core": "^7.7.2",
@@ -82978,7 +82991,7 @@
"@babel/plugin-syntax-typescript": "^7.7.2",
"@babel/traverse": "^7.7.2",
"@babel/types": "^7.0.0",
- "@jest/transform": "^27.4.2",
+ "@jest/transform": "^27.4.5",
"@jest/types": "^27.4.2",
"@types/babel__traverse": "^7.0.4",
"@types/prettier": "^2.1.5",
@@ -82988,10 +83001,10 @@
"graceful-fs": "^4.2.4",
"jest-diff": "^27.4.2",
"jest-get-type": "^27.4.0",
- "jest-haste-map": "^27.4.2",
+ "jest-haste-map": "^27.4.5",
"jest-matcher-utils": "^27.4.2",
"jest-message-util": "^27.4.2",
- "jest-resolve": "^27.4.2",
+ "jest-resolve": "^27.4.5",
"jest-util": "^27.4.2",
"natural-compare": "^1.4.0",
"pretty-format": "^27.4.2",
@@ -83833,24 +83846,23 @@
}
},
"lint-staged": {
- "version": "12.1.2",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz",
- "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==",
+ "version": "12.1.3",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.3.tgz",
+ "integrity": "sha512-ajapdkaFxx+MVhvq6xQRg9zCnCLz49iQLJZP7+w8XaA3U4B35Z9xJJGq9vxmWo73QTvJLG+N2NxhjWiSexbAWQ==",
"dev": true,
"requires": {
"cli-truncate": "^3.1.0",
"colorette": "^2.0.16",
"commander": "^8.3.0",
- "debug": "^4.3.2",
- "enquirer": "^2.3.6",
+ "debug": "^4.3.3",
"execa": "^5.1.1",
"lilconfig": "2.0.4",
- "listr2": "^3.13.3",
+ "listr2": "^3.13.5",
"micromatch": "^4.0.4",
"normalize-path": "^3.0.0",
- "object-inspect": "^1.11.0",
+ "object-inspect": "^1.11.1",
"string-argv": "^0.3.1",
- "supports-color": "^9.0.2",
+ "supports-color": "^9.2.1",
"yaml": "^1.10.2"
},
"dependencies": {
@@ -88118,9 +88130,9 @@
"dev": true
},
"object-inspect": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
- "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
+ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
},
"object-is": {
"version": "1.1.5",
@@ -89535,9 +89547,9 @@
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
},
"postcss": {
- "version": "8.4.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz",
- "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==",
+ "version": "8.4.5",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
+ "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
"requires": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
@@ -90868,11 +90880,12 @@
}
},
"react-i18next": {
- "version": "11.14.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.14.3.tgz",
- "integrity": "sha512-Hf2aanbKgYxPjG8ZdKr+PBz9sY6sxXuZWizxCYyJD2YzvJ0W9JTQcddVEjDaKyBoCyd3+5HTerdhc9ehFugc6g==",
+ "version": "11.15.1",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.15.1.tgz",
+ "integrity": "sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA==",
"requires": {
"@babel/runtime": "^7.14.5",
+ "html-escaper": "^2.0.2",
"html-parse-stringify": "^3.0.1"
}
},
@@ -90888,9 +90901,9 @@
}
},
"react-instantsearch-core": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.17.0.tgz",
- "integrity": "sha512-aFeoLcO5YSrXXWeMGaTvoOa2odiPIIeV1ftENqYeoJtHO/Jk4sDNpHlEXSmPctr/v1lludsFKIp1Xo4cNjrqiA==",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.18.0.tgz",
+ "integrity": "sha512-lPbKGsprh7eV0ILR5Sj9qoP7R3jJ6/I3+++iB6rWOmBzMhbZ8ivl6i6LDJwYYt9lOghYqRDbtdWVx/hAE4O4Ng==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.6.2",
@@ -90899,16 +90912,16 @@
}
},
"react-instantsearch-dom": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.17.0.tgz",
- "integrity": "sha512-KwQJ0HqD9YBvO1VBS+GZC2binTfrGFRClXxDwmd014I9lyqr05m1U2NR81zD0xoBkoZwELP5RWvfpuvbEL0Gdg==",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.18.0.tgz",
+ "integrity": "sha512-gsxSyzviDMcCX9+cgEnmOxRcQhoQq6e3+hCh/QvlF36Qw6xASeAt5VD+f+fRXCYX0oFJ3SoIoJXjcag4E4C4kQ==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.6.2",
"classnames": "^2.2.5",
"prop-types": "^15.6.2",
"react-fast-compare": "^3.0.0",
- "react-instantsearch-core": "^6.17.0"
+ "react-instantsearch-core": "^6.18.0"
}
},
"react-is": {
@@ -92414,9 +92427,9 @@
"integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
},
"rollup": {
- "version": "2.61.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.0.tgz",
- "integrity": "sha512-teQ+T1mUYbyvGyUavCodiyA9hD4DxwYZJwr/qehZGhs1Z49vsmzelMVYMxGU4ZhGRKxYPupHuz5yzm/wj7VpWA==",
+ "version": "2.61.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz",
+ "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==",
"dev": true,
"requires": {
"fsevents": "~2.3.2"
@@ -96008,9 +96021,9 @@
}
},
"typescript": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz",
- "integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ=="
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
+ "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg=="
},
"typescript-compare": {
"version": "0.0.2",
diff --git a/package.json b/package.json
index 2c017174de..974a5d62bb 100644
--- a/package.json
+++ b/package.json
@@ -101,11 +101,11 @@
"invariant": "2.2.4"
},
"devDependencies": {
- "@babel/eslint-parser": "7.16.3",
- "@babel/plugin-proposal-function-bind": "7.16.0",
- "@babel/preset-env": "7.16.4",
- "@babel/preset-react": "7.16.0",
- "@babel/preset-typescript": "7.16.0",
+ "@babel/eslint-parser": "7.16.5",
+ "@babel/plugin-proposal-function-bind": "7.16.5",
+ "@babel/preset-env": "7.16.5",
+ "@babel/preset-react": "7.16.5",
+ "@babel/preset-typescript": "7.16.5",
"@testing-library/cypress": "7.0.7",
"@testing-library/dom": "8.11.1",
"@testing-library/jest-dom": "5.16.1",
@@ -121,7 +121,7 @@
"@types/jquery": "3.5.10",
"@types/loadable__component": "5.13.4",
"@types/lodash-es": "4.17.5",
- "@types/node": "16.11.12",
+ "@types/node": "16.11.14",
"@types/prismjs": "1.16.6",
"@types/psl": "1.1.0",
"@types/reach__router": "1.3.9",
@@ -139,8 +139,8 @@
"@types/sanitize-html": "2.6.0",
"@types/store": "2.0.2",
"@types/validator": "13.7.0",
- "@typescript-eslint/eslint-plugin": "5.6.0",
- "@typescript-eslint/parser": "5.6.0",
+ "@typescript-eslint/eslint-plugin": "5.7.0",
+ "@typescript-eslint/parser": "5.7.0",
"babel-eslint": "10.1.0",
"babel-plugin-transform-imports": "2.0.0",
"cross-env": "7.0.3",
@@ -158,9 +158,9 @@
"execa": "5.1.1",
"faker": "5.5.3",
"husky": "7.0.4",
- "jest": "27.4.3",
+ "jest": "27.4.5",
"js-yaml": "3.14.1",
- "lint-staged": "12.1.2",
+ "lint-staged": "12.1.3",
"lodash": "4.17.21",
"markdownlint": "0.24.0",
"mock-fs": "5.1.2",
@@ -171,7 +171,7 @@
"process": "0.11.10",
"shx": "0.3.3",
"start-server-and-test": "1.14.0",
- "typescript": "4.5.3",
+ "typescript": "4.5.4",
"webpack-bundle-analyzer": "4.5.0"
}
}
diff --git a/tools/challenge-helper-scripts/base-meta.json b/tools/challenge-helper-scripts/base-meta.json
index 281a91cbce..6e6c2486dd 100644
--- a/tools/challenge-helper-scripts/base-meta.json
+++ b/tools/challenge-helper-scripts/base-meta.json
@@ -2,6 +2,7 @@
"name": "",
"isUpcomingChange": true,
"usesMultifileEditor": true,
+ "hasEditableBoundaries": true,
"dashedName": "",
"order": 42,
"time": "5 hours",
diff --git a/tools/challenge-helper-scripts/package.json b/tools/challenge-helper-scripts/package.json
index 37d99d8281..17ec7f440b 100644
--- a/tools/challenge-helper-scripts/package.json
+++ b/tools/challenge-helper-scripts/package.json
@@ -29,6 +29,6 @@
"inquirer": "8.2.0",
"prettier": "2.5.1",
"ts-node": "10.4.0",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
}
}
diff --git a/tools/challenge-parser/translation-parser/index.js b/tools/challenge-parser/translation-parser/index.js
index 4283cfd205..841272650d 100644
--- a/tools/challenge-parser/translation-parser/index.js
+++ b/tools/challenge-parser/translation-parser/index.js
@@ -17,9 +17,7 @@ exports.translateComments = (text, lang, dict, codeLang) => {
exports.translateCommentsInChallenge = (challenge, lang, dict) => {
const challClone = cloneDeep(challenge);
- if (!challClone.challengeFiles) {
- console.warn(`Challenge ${challClone.title} has no seed to translate`);
- } else {
+ if (challClone?.challengeFiles) {
challClone.challengeFiles.forEach(challengeFile => {
if (challengeFile.contents) {
let { text, commentCounts } = this.translateComments(
diff --git a/tools/scripts/seed/certifiedUserData.js b/tools/scripts/seed/certifiedUserData.js
index 7962f1040d..9b3e21ccc9 100644
--- a/tools/scripts/seed/certifiedUserData.js
+++ b/tools/scripts/seed/certifiedUserData.js
@@ -4635,7 +4635,7 @@ module.exports = {
rand: 0.6126749173148205,
theme: 'default',
profileUI: {
- isLocked: true,
+ isLocked: false,
showAbout: true,
showCerts: true,
showDonation: true,
diff --git a/tools/ui-components/package.json b/tools/ui-components/package.json
index 93596d4629..1547f92df2 100644
--- a/tools/ui-components/package.json
+++ b/tools/ui-components/package.json
@@ -19,17 +19,17 @@
},
"homepage": "https://github.com/freeCodeCamp/freeCodeCamp#readme",
"dependencies": {
- "@babel/preset-typescript": "7.16.0",
+ "@babel/preset-typescript": "7.16.5",
"react": "16.14.0",
"react-dom": "16.14.0",
- "typescript": "4.5.3"
+ "typescript": "4.5.4"
},
"devDependencies": {
- "@babel/core": "7.16.0",
- "@babel/preset-env": "7.16.4",
+ "@babel/core": "7.16.5",
+ "@babel/preset-env": "7.16.5",
"@rollup/plugin-babel": "5.3.0",
"@rollup/plugin-commonjs": "19.0.2",
- "@rollup/plugin-node-resolve": "13.0.6",
+ "@rollup/plugin-node-resolve": "13.1.1",
"@storybook/addon-actions": "6.4.9",
"@storybook/addon-docs": "6.4.9",
"@storybook/addon-essentials": "6.4.9",
@@ -45,10 +45,10 @@
"babel-loader": "8.2.3",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"cross-env": "7.0.3",
- "postcss": "8.4.4",
+ "postcss": "8.4.5",
"postcss-import": "14.0.2",
"rimraf": "3.0.2",
- "rollup": "2.61.0",
+ "rollup": "2.61.1",
"rollup-plugin-postcss": "4.0.2",
"rollup-plugin-terser": "7.0.2",
"tailwindcss": "2.2.19"