main
John Lauer Publish clean board component LODs and opt-in preview (1/2) ece8186 29d ago
<!doctype html><meta charset="utf-8"><title>Component LOD asset transport</title><script>
'use strict';
// Binary is sent only to the embedding frame that requested this exact hash.
const expected={"sha256":"ec55c62656ad2dbb7257281870c94745c19736311a8a5942bd369b237b72afab","sizeBytes":4884,"base64":"Z2xURgIAAAAUEwAAgA0AAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6ImdsVEYtVHJhbnNmb3JtIHY0LjUuMCIsInZlcnNpb24iOiIyLjAifSwiYWNjZXNzb3JzIjpbeyJ0eXBlIjoiU0NBTEFSIiwiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjMsImJ1ZmZlclZpZXciOjAsImJ5dGVPZmZzZXQiOjB9LHsidHlwZSI6IlNDQUxBUiIsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjozNiwiYnVmZmVyVmlldyI6MCwiYnl0ZU9mZnNldCI6OH0seyJ0eXBlIjoiU0NBTEFSIiwiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjQyLCJidWZmZXJWaWV3IjowLCJieXRlT2Zmc2V0Ijo4MH0seyJ0eXBlIjoiU0NBTEFSIiwiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjYsImJ1ZmZlclZpZXciOjAsImJ5dGVPZmZzZXQiOjE2NH0seyJ0eXBlIjoiVkVDMyIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjozLCJidWZmZXJWaWV3IjoxLCJieXRlT2Zmc2V0IjowfSx7InR5cGUiOiJWRUMzIiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjMsIm1heCI6WzAuNTQ4NDE3NjI3ODExNDMxOSwwLjYxMjg3MjcxOTc2NDcwOTUsLTAuMjgzODUyNjY2NjE2NDM5OF0sIm1pbiI6Wy0wLjU0ODQxNzYyNzgxMTQzMTksMC42MTI4NzI3MTk3NjQ3MDk1LC0wLjI5MDMyMjU3MTk5Mjg3NDE1XSwiYnVmZmVyVmlldyI6MSwiYnl0ZU9mZnNldCI6MTJ9LHsidHlwZSI6IlZFQzMiLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjQsImJ1ZmZlclZpZXciOjIsImJ5dGVPZmZzZXQiOjB9LHsidHlwZSI6IlZFQzMiLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjQsIm1heCI6WzAuNTQ4NDE3NjI3ODExNDMxOSwxLDAuMjgzODUyNjY2NjE2NDM5OF0sIm1pbiI6Wy0wLjU0ODQxNzYyNzgxMTQzMTksLTEsLTAuMjkwMzIyNTcxOTkyODc0MTVdLCJidWZmZXJWaWV3IjoyLCJieXRlT2Zmc2V0IjoxMn0seyJ0eXBlIjoiVkVDMyIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyMCwiYnVmZmVyVmlldyI6MywiYnl0ZU9mZnNldCI6MH0seyJ0eXBlIjoiVkVDMyIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyMCwibWF4IjpbMC41NDg0MTc2Mjc4MTE0MzE5LDEsMC4yOTAzMjI1NzE5OTI4NzQxNV0sIm1pbiI6Wy0wLjU0ODQxNzYyNzgxMTQzMTksLTEsLTAuMjkwMzIyNTcxOTkyODc0MTVdLCJidWZmZXJWaWV3IjozLCJieXRlT2Zmc2V0IjoxMn0seyJ0eXBlIjoiVkVDMyIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50Ijo0LCJidWZmZXJWaWV3Ijo0LCJieXRlT2Zmc2V0IjowfSx7InR5cGUiOiJWRUMzIiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsIm1heCI6WzAuNTQ4NDE3NjI3ODExNDMxOSwwLjYxMjg3MjcxOTc2NDcwOTUsMC4yOTAzMjI1NzE5OTI4NzQxNV0sIm1pbiI6Wy0wLjU0ODQxNzYyNzgxMTQzMTksLTAuNjEyODcyNzE5NzY0NzA5NSwwLjI5MDMyMjU3MTk5Mjg3NDE1XSwiYnVmZmVyVmlldyI6NCwiYnl0ZU9mZnNldCI6MTJ9XSwiYnVmZmVyVmlld3MiOlt7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6MCwiYnl0ZUxlbmd0aCI6MTc2LCJ0YXJnZXQiOjM0OTYzfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6MTc2LCJieXRlTGVuZ3RoIjo3MiwiYnl0ZVN0cmlkZSI6MjQsInRhcmdldCI6MzQ5NjJ9LHsiYnVmZmVyIjowLCJieXRlT2Zmc2V0IjoyNDgsImJ5dGVMZW5ndGgiOjU3NiwiYnl0ZVN0cmlkZSI6MjQsInRhcmdldCI6MzQ5NjJ9LHsiYnVmZmVyIjowLCJieXRlT2Zmc2V0Ijo4MjQsImJ5dGVMZW5ndGgiOjQ4MCwiYnl0ZVN0cmlkZSI6MjQsInRhcmdldCI6MzQ5NjJ9LHsiYnVmZmVyIjowLCJieXRlT2Zmc2V0IjoxMzA0LCJieXRlTGVuZ3RoIjo5NiwiYnl0ZVN0cmlkZSI6MjQsInRhcmdldCI6MzQ5NjJ9XSwiYnVmZmVycyI6W3siYnl0ZUxlbmd0aCI6MTQwMH1dLCJtYXRlcmlhbHMiOlt7Im5hbWUiOiJtYXRfMCIsImRvdWJsZVNpZGVkIjp0cnVlLCJwYnJNZXRhbGxpY1JvdWdobmVzcyI6eyJiYXNlQ29sb3JGYWN0b3IiOlswLjUyMDk5NTU1NzMwODE5NywwLjUyMDk5NTU1NzMwODE5NywwLjUyMDk5NTU1NzMwODE5NywxXX19LHsibmFtZSI6Im1hdF8xIiwiZG91YmxlU2lkZWQiOnRydWUsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvckZhY3RvciI6WzAuNjU4Mzc0ODQ1OTgxNTk3OSwwLjY1ODM3NDg0NTk4MTU5NzksMC42NTgzNzQ4NDU5ODE1OTc5LDFdfX0seyJuYW1lIjoibWF0XzIiLCJkb3VibGVTaWRlZCI6dHJ1ZSwicGJyTWV0YWxsaWNSb3VnaG5lc3MiOnsiYmFzZUNvbG9yRmFjdG9yIjpbMC45NzM0NDUyOTYyODc1MzY2LDEsMSwxXX19LHsibmFtZSI6Im1hdF8zIiwiZG91YmxlU2lkZWQiOnRydWUsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvckZhY3RvciI6WzAuMDA2OTk1NDEwMTkyNzU3ODQ1LDAuMTYyMDI5MzcwNjY1NTUwMjMsMCwxXX19XSwibWVzaGVzIjpbeyJuYW1lIjoiMDYwMyIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiTk9STUFMIjo0LCJQT1NJVElPTiI6NX0sIm1vZGUiOjQsIm1hdGVyaWFsIjowLCJpbmRpY2VzIjowfSx7ImF0dHJpYnV0ZXMiOnsiTk9STUFMIjo2LCJQT1NJVElPTiI6N30sIm1vZGUiOjQsIm1hdGVyaWFsIjoxLCJpbmRpY2VzIjoxfSx7ImF0dHJpYnV0ZXMiOnsiTk9STUFMIjo4LCJQT1NJVElPTiI6OX0sIm1vZGUiOjQsIm1hdGVyaWFsIjoyLCJpbmRpY2VzIjoyfSx7ImF0dHJpYnV0ZXMiOnsiTk9STUFMIjoxMCwiUE9TSVRJT04iOjExfSwibW9kZSI6NCwibWF0ZXJpYWwiOjMsImluZGljZXMiOjN9XX1dLCJub2RlcyI6W3sibmFtZSI6IkFkb20gWi11cCBmb290cHJpbnQgZGlzcGxheSBwb3NlIiwiZXh0cmFzIjp7InBoeXNpY2FsIjp0cnVlLCJzb3VyY2UiOiJUTlBXX2UzXzA2MDMuZ2xiIiwicG9zZVF1YWxpZmljYXRpb24iOiJEaXNwbGF5IHBvc2U7IG5hdGl2ZSBzZWF0aW5nIGFuZCBwaW4tMSBxdWFsaWZpY2F0aW9uIHJlbWFpbiBzZXBhcmF0ZSJ9LCJ0cmFuc2xhdGlvbiI6Wy0wLjAwMDc3NSwwLjAwMDQyNSwwXSwicm90YXRpb24iOlswLDAsLTAuNzA3MTA2NzgxMTg2NTQ3NiwwLjcwNzEwNjc4MTE4NjU0NzZdLCJjaGlsZHJlbiI6WzFdLCJzY2FsZSI6WzEsMSwxXX0seyJuYW1lIjoiMDYwMyIsInRyYW5zbGF0aW9uIjpbMC4wMDA0MjUwMDAwMDU2MzQ1MDEzLDAuMDAwNzc1MDAwMDIyMjU4NjA5NSwwLjAwMDIyNDk5OTk5NjEzNTAxMTMyXSwic2NhbGUiOlswLjAwMDc3NTAwMDAyMjI1ODYwOTYsMC4wMDA3NzUwMDAwMjIyNTg2MDk2LDAuMDAwNzc1MDAwMDIyMjU4NjA5Nl0sIm1lc2giOjAsInJvdGF0aW9uIjpbMCwwLDAsMV19XSwic2NlbmVzIjpbeyJub2RlcyI6WzBdfV0sInNjZW5lIjowLCJleHRlbnNpb25zVXNlZCI6WyJLSFJfbWF0ZXJpYWxzX3VubGl0IiwiS0hSX21lc2hfcXVhbnRpemF0aW9uIl0sImV4dGVuc2lvbnNSZXF1aXJlZCI6WyJLSFJfbWVzaF9xdWFudGl6YXRpb24iXX0gICB4BQAAQklOAAAAAQACAAAAAAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAAKAAsADAANAA4ADAAPAA0AEAARABIAEAATABEAFAAVABYAFAAWABcAAAABAAIAAAADAAEABAAFAAYABwAEAAYACAAGAAkACAAHAAYACgAJAAsACgAIAAkADAANAA4ADwAMAA4AEAAOABEAEAAPAA4AEgARABMAEgAQABEAAAABAAIAAAADAAEAAAAAAAAAgL8AAAAAGWUMvzrlHD8jVZG+AAAAAAAAgL8AAAAAGWUMPzrlHD8ppZS+AAAAAAAAgL8AAAAAGWUMPzrlHD8jVZG+AAAAAAAAAAAAAIA/GWUMvwAAgL8jVZE+AAAAAAAAAAAAAIA/GWUMPzrlHL8jVZE+AAAAAAAAAAAAAIA/GWUMvzrlHL8jVZE+AAAAAAAAAAAAAIA/GWUMPwAAgL8jVZE+AAAAAAAAAAAAAIA/GWUMvzrlHD8jVZE+AAAAAAAAAAAAAIA/GWUMPwAAgD8jVZE+AAAAAAAAAAAAAIA/GWUMvwAAgD8jVZE+AAAAAAAAAAAAAIA/GWUMPzrlHD8jVZE+AAAAAAAAgD8AAAAAGWUMvwAAgD8jVZE+AAAAAAAAgD8AAAAAGWUMPwAAgD8jVZE+AAAAAAAAgD8AAAAAGWUMPwAAgD8ppZS+AAAAAAAAgD8AAAAAGWUMvwAAgD8ppZS+AAAAAAAAAAAAAIC/GWUMPwAAgD8ppZS+AAAAAAAAAAAAAIC/GWUMvzrlHD8ppZS+AAAAAAAAAAAAAIC/GWUMvwAAgD8ppZS+AAAAAAAAAAAAAIC/GWUMPzrlHD8ppZS+AAAAAAAAAAAAAIC/GWUMPzrlHL8ppZS+AAAAAAAAAAAAAIC/GWUMvwAAgL8ppZS+AAAAAAAAAAAAAIC/GWUMvzrlHL8ppZS+AAAAAAAAAAAAAIC/GWUMPwAAgL8ppZS+AAAAAAAAgL8AAAAAGWUMPwAAgL8jVZE+AAAAAAAAgL8AAAAAGWUMvwAAgL8jVZE+AAAAAAAAgL8AAAAAGWUMvwAAgL8ppZS+AAAAAAAAgL8AAAAAGWUMPwAAgL8ppZS+AAAAAAAAAAAAAIC/GWUMvzrlHD8jVZG+AAAAAAAAAAAAAIC/GWUMPzrlHL8jVZG+AAAAAAAAAAAAAIC/GWUMvzrlHL8jVZG+AAAAAAAAAAAAAIC/GWUMPzrlHD8jVZG+AACAPwAAAAAAAAAAGWUMPwAAgL8jVZE+AACAPwAAAAAAAAAAGWUMPwAAgL8ppZS+AACAPwAAAAAAAAAAGWUMPzrlHL8jVZG+AACAPwAAAAAAAAAAGWUMPzrlHL8ppZQ+AACAPwAAAAAAAAAAGWUMPzrlHD8ppZQ+AACAPwAAAAAAAAAAGWUMPzrlHD8jVZG+AACAPwAAAAAAAAAAGWUMPwAAgD8jVZE+AACAPwAAAAAAAAAAGWUMPwAAgD8ppZS+AACAvwAAAAAAAAAAGWUMvwAAgD8jVZE+AACAvwAAAAAAAAAAGWUMvwAAgD8ppZS+AACAvwAAAAAAAAAAGWUMvzrlHD8jVZG+AACAvwAAAAAAAAAAGWUMvzrlHD8ppZQ+AACAvwAAAAAAAAAAGWUMvzrlHL8ppZQ+AACAvwAAAAAAAAAAGWUMvzrlHL8jVZG+AACAvwAAAAAAAAAAGWUMvwAAgL8jVZE+AACAvwAAAAAAAAAAGWUMvwAAgL8ppZS+AAAAAAAAAAAAAIA/GWUMPzrlHD8ppZQ+AAAAAAAAAAAAAIA/GWUMvzrlHL8ppZQ+AAAAAAAAAAAAAIA/GWUMPzrlHL8ppZQ+AAAAAAAAAAAAAIA/GWUMvzrlHD8ppZQ+"};
const request=new URLSearchParams(location.hash.slice(1));
const nonce=request.get('nonce'),hash=request.get('sha256');
if(parent!==window&&/^[a-f0-9]{32}$/.test(nonce||'')&&hash===expected.sha256){
 const text=atob(expected.base64),bytes=new Uint8Array(text.length);
 for(let i=0;i<text.length;i++)bytes[i]=text.charCodeAt(i);
 parent.postMessage({type:'adom-lod-asset',nonce,sha256:expected.sha256,sizeBytes:bytes.byteLength,buffer:bytes.buffer},'*',[bytes.buffer]);
}
</script>