<aside>
🔩 "We make. We prove."
</aside>



<aside>
💡 Feel free to send us your Résumé in your own format or in the following format.
ExampleCV_ProvaLabs_v0.208a.docx
</aside>
window.CONFIG.domainBaseUrl = 'https://provalabs.com';
localStorage.__console = true;
const SLUG_TO_PAGE = {"":"a7211ac730104c6781c0abcf7f77e01e","mission":"8506190409204af5851e2c470b006b60","announcement":"2b72218348d04047a951c4fa74c34ef5","members":"f2ca1eadd73c4d099816f956336d86c0","careers":"9c7b75799fcd4cea8cd34836e43f0a62","resources":"6875e0b972e54a4abb86ac8690787ce0","scallop":"16410891e76b4a7d9d51a4e7d027bed4","sungjae":"8625753cddaf4a14873510d5e472b70d","jaegon.kim":"e183ca3e57334ec48ca26e01ddd98516","taewan":"6eae6327c1f84cd9bf1e887a5c5066c5","narae":"2e17b7d8aa3c489e916ef2421d1046b2","jooseon":"e233ad705acc4fc7a6657793fd30789a","joowon":"44c90b54444b4ca4bba1af8ee823f278"};
const PAGE_TO_SLUG = {};
const slugs = [];
const pages = [];
const el = document.createElement('div');
let redirected = false;
Object.keys(SLUG_TO_PAGE).forEach(slug => {
const page = SLUG_TO_PAGE[slug];
slugs.push(slug);
pages.push(page);
PAGE_TO_SLUG[page] = slug;
});
function getPage() {
return location.pathname.slice(-32);
}
function getSlug() {
return location.pathname.slice(1);
}
function updateSlug() {
const slug = PAGE_TO_SLUG[getPage()];
console.log('[CW]updateSlug:',slug);
if (slug != null) {
history.replaceState(history.state, '', '/' + slug);
}
}
function enableConsoleEffectAndSetMode(mode) {
if (__console && !__console.isEnabled) {
__console.enable()
window.location.reload()
} else {
__console.environment.ThemeStore.setState({ mode: mode })
}
}
function onDark() {
el.innerHTML =
''
document.body.classList.add('dark')
enableConsoleEffectAndSetMode('dark')
}
function onLight() {
el.innerHTML =
''
document.body.classList.remove('dark')
enableConsoleEffectAndSetMode('light')
}
function toggle() {
// if (!__console.isEnabled) __console.enable();
// if (document.body.classList.contains('dark')) {
// onLight();
// } else {
onDark();
// }
}
function addDarkModeButton(device) {
const nav = device === 'web' ? document.querySelector('.notion-topbar').firstChild : document.querySelector('.notion-topbar-mobile');
el.className = 'toggle-mode';
el.addEventListener('click', toggle);
nav.appendChild(el);
onLight();
}
const observer = new MutationObserver(function() {
if (redirected) return;
const nav = document.querySelector('.notion-topbar');
const mobileNav = document.querySelector('.notion-topbar-mobile');
if (nav && nav.firstChild && nav.firstChild.firstChild
|| mobileNav && mobileNav.firstChild) {
redirected = true;
updateSlug();
// addDarkModeButton(nav ? 'web' : 'mobile');
onDark();
const onpopstate = window.onpopstate;
window.onpopstate = function() {
if (slugs.includes(getSlug())) {
const page = SLUG_TO_PAGE[getSlug()];
if (page) {
history.replaceState(history.state, 'bypass', '/' + page);
}
}
onpopstate.apply(this, [].slice.call(arguments));
updateSlug();
};
}
});
observer.observe(document.querySelector('#notion-app'), {
childList: true,
subtree: true,
});
const replaceState = window.history.replaceState;
window.history.replaceState = function(state) {
console.log('[CW]replacing state...');
if (arguments[1] !== 'bypass' && slugs.includes(getSlug())) return;
return replaceState.apply(window.history, arguments);
};
const pushState = window.history.pushState;
window.history.pushState = function(state) {
const dest = new URL(location.protocol + location.host + arguments[2]);
const id = dest.pathname.slice(-32);
if (pages.includes(id)) {
arguments[2] = '/' + PAGE_TO_SLUG[id];
}
return pushState.apply(window.history, arguments);
};
const open = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
arguments[1] = arguments[1].replace('provalabs.com', 'provalabs.notion.site');
return open.apply(this, [].slice.call(arguments));
};
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('a[href]').forEach(function (a) {
if (a.href.includes('provalabs.notion.site')) {
a.href = a.href.replace('provalabs.notion.site', 'provalabs.com');
}
});
const observer = new MutationObserver(() => {
document.querySelectorAll('a[href]').forEach((a) => {
if (a.href.includes('provalabs.notion.site')) {
a.href = a.href.replace('provalabs.notion.site', 'provalabs.com');
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
});