solfaces 2.1.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +61 -35
  2. package/SKILL.md +4 -5
  3. package/dist/agent/index.cjs +14 -15
  4. package/dist/agent/index.js +4 -5
  5. package/dist/agent/mcp-server.cjs +333 -339
  6. package/dist/{chunk-5DT27HMT.js → chunk-2KW35VRI.js} +3 -3
  7. package/dist/{chunk-5DT27HMT.js.map → chunk-2KW35VRI.js.map} +1 -1
  8. package/dist/{chunk-4YFZ4W2Y.cjs → chunk-BI3GHRKQ.cjs} +22 -23
  9. package/dist/chunk-BI3GHRKQ.cjs.map +1 -0
  10. package/dist/{chunk-DRUSCLEF.js → chunk-MYUSB4LA.js} +28 -8
  11. package/dist/chunk-MYUSB4LA.js.map +1 -0
  12. package/dist/{chunk-3CE7Q44S.js → chunk-N5GDLCCL.js} +324 -110
  13. package/dist/chunk-N5GDLCCL.js.map +1 -0
  14. package/dist/{chunk-66PSL4YO.js → chunk-O2IIBSQH.js} +9 -10
  15. package/dist/chunk-O2IIBSQH.js.map +1 -0
  16. package/dist/{chunk-6QRDULAO.cjs → chunk-PCSRDAWQ.cjs} +28 -7
  17. package/dist/chunk-PCSRDAWQ.cjs.map +1 -0
  18. package/dist/{chunk-WIXGHS77.cjs → chunk-T7HEUW2O.cjs} +6 -6
  19. package/dist/{chunk-WIXGHS77.cjs.map → chunk-T7HEUW2O.cjs.map} +1 -1
  20. package/dist/{chunk-N5DDJ3WQ.js → chunk-UTT764K6.js} +10 -9
  21. package/dist/{chunk-N5DDJ3WQ.js.map → chunk-UTT764K6.js.map} +1 -1
  22. package/dist/{chunk-F54WHRCE.cjs → chunk-W2U6ITMR.cjs} +328 -110
  23. package/dist/chunk-W2U6ITMR.cjs.map +1 -0
  24. package/dist/{chunk-XXJJH56O.cjs → chunk-YGD7EQEX.cjs} +10 -9
  25. package/dist/{chunk-XXJJH56O.cjs.map → chunk-YGD7EQEX.cjs.map} +1 -1
  26. package/dist/core/index.cjs +43 -44
  27. package/dist/core/index.d.cts +39 -5
  28. package/dist/core/index.d.ts +39 -5
  29. package/dist/core/index.js +2 -3
  30. package/dist/index.cjs +61 -58
  31. package/dist/index.d.cts +3 -3
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.js +5 -6
  34. package/dist/names/index.cjs +9 -9
  35. package/dist/names/index.d.cts +4 -2
  36. package/dist/names/index.d.ts +4 -2
  37. package/dist/names/index.js +1 -1
  38. package/dist/react/index.cjs +112 -125
  39. package/dist/react/index.cjs.map +1 -1
  40. package/dist/react/index.d.cts +23 -1
  41. package/dist/react/index.d.ts +23 -1
  42. package/dist/react/index.js +96 -109
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/solfaces.cdn.global.js +2 -2
  45. package/dist/solfaces.cdn.global.js.map +1 -1
  46. package/dist/themes/index.cjs +18 -14
  47. package/dist/themes/index.d.cts +30 -4
  48. package/dist/themes/index.d.ts +30 -4
  49. package/dist/themes/index.js +1 -1
  50. package/dist/traits-D4tbtZIr.d.cts +259 -0
  51. package/dist/traits-D4tbtZIr.d.ts +259 -0
  52. package/dist/vanilla/index.cjs +6 -7
  53. package/dist/vanilla/index.cjs.map +1 -1
  54. package/dist/vanilla/index.d.cts +1 -1
  55. package/dist/vanilla/index.d.ts +1 -1
  56. package/dist/vanilla/index.js +2 -3
  57. package/dist/vanilla/index.js.map +1 -1
  58. package/package.json +4 -1
  59. package/python/solfaces.py +108 -122
  60. package/reference/integrations.md +1 -1
  61. package/dist/chunk-3CE7Q44S.js.map +0 -1
  62. package/dist/chunk-4YFZ4W2Y.cjs.map +0 -1
  63. package/dist/chunk-66PSL4YO.js.map +0 -1
  64. package/dist/chunk-6QRDULAO.cjs.map +0 -1
  65. package/dist/chunk-CKHLRORB.js +0 -239
  66. package/dist/chunk-CKHLRORB.js.map +0 -1
  67. package/dist/chunk-DRUSCLEF.js.map +0 -1
  68. package/dist/chunk-F54WHRCE.cjs.map +0 -1
  69. package/dist/chunk-TYTBYDQU.cjs +0 -244
  70. package/dist/chunk-TYTBYDQU.cjs.map +0 -1
  71. package/dist/traits-sfe7rM9C.d.cts +0 -106
  72. package/dist/traits-sfe7rM9C.d.ts +0 -106
@@ -1,3 +1,3 @@
1
- "use strict";var SolFaces=(()=>{var Z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var ze=Object.prototype.hasOwnProperty;var je=(r,e)=>{for(var t in e)Z(r,t,{get:e[t],enumerable:!0})},Ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ve(e))!ze.call(r,a)&&a!==t&&Z(r,a,{get:()=>e[a],enumerable:!(n=Qe(e,a))||n.enumerable});return r};var Ke=r=>Ue(Z({},"__esModule",{value:!0}),r);var Hr={};je(Hr,{default:()=>Gr});var ye=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],pe=["#382414","#3868A8","#38784C","#808838","#586878"],fe=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],me=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984"];function xe(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function qe(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function N(r,e){let t=xe(r),n=qe(t),a={faceShape:Math.floor(n()*4),skinColor:Math.floor(n()*10),eyeStyle:Math.floor(n()*8),eyeColor:Math.floor(n()*5),eyebrows:Math.floor(n()*5),nose:Math.floor(n()*4),mouth:Math.floor(n()*8),hairStyle:Math.floor(n()*10),hairColor:Math.floor(n()*10),accessory:Math.floor(n()*10),bgColor:Math.floor(n()*10)};return e?{...a,...e}:a}function R(r){let e=r.accessory%10,t=r.hairStyle%10;return(e===4||e===7)&&(t===5||t===6)?0:e}var Ye=["Squircle"],Je=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],Ze=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle"],Xe=["Chocolate","Sky","Emerald","Hazel","Storm"],er=["Wispy","Straight","Natural","Arched","Angled"],rr=["Shadow","Button","Soft","Nostrils"],tr=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],nr=["Bald","Short","Curly","Side Sweep","Puff","Long","Bob","Buzz","Wavy","Topknot"],ir=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],ar=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid"],or=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush"];function Se(r){return{faceShape:Ye[0],skinColor:Je[r.skinColor]??"Fair",eyeStyle:Ze[r.eyeStyle]??"Round",eyeColor:Xe[r.eyeColor]??"Chocolate",eyebrows:er[r.eyebrows]??"Wispy",nose:rr[r.nose]??"Shadow",mouth:tr[r.mouth]??"Smile",hairStyle:nr[r.hairStyle]??"Bald",hairColor:ir[r.hairColor]??"Black",accessory:ar[R(r)]??"None",bgColor:or[r.bgColor]??"Rose"}}function be(r){return(xe(r)>>>0).toString(16).padStart(8,"0")}function $e(r,e){if(!(!r||!e))return e[r]}var lr=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function P(r,e){return e>>>r|e<<32-r}function X(r){let t=new TextEncoder().encode(r),n=t.length*8,a=64-(t.length+9)%64,o=t.length+1+(a===64?0:a)+8,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer);c.setUint32(o-4,n,!1);let i=1779033703,d=3144134277,h=1013904242,l=2773480762,x=1359893119,p=2600822924,S=528734635,b=1541459225,y=new Int32Array(64);for(let D=0;D<o;D+=64){for(let u=0;u<16;u++)y[u]=c.getInt32(D+u*4,!1);for(let u=16;u<64;u++){let L=P(7,y[u-15])^P(18,y[u-15])^y[u-15]>>>3,E=P(17,y[u-2])^P(19,y[u-2])^y[u-2]>>>10;y[u]=y[u-16]+L+y[u-7]+E|0}let g=i,v=d,M=h,_=l,$=x,A=p,F=S,G=b;for(let u=0;u<64;u++){let L=P(6,$)^P(11,$)^P(25,$),E=$&A^~$&F,k=G+L+E+lr[u]+y[u]|0,I=P(2,g)^P(13,g)^P(22,g),W=g&v^g&M^v&M,Y=I+W|0;G=F,F=A,A=$,$=_+k|0,_=M,M=v,v=g,g=k+Y|0}i=i+g|0,d=d+v|0,h=h+M|0,l=l+_|0,x=x+$|0,p=p+A|0,S=S+F|0,b=b+G|0}let O=new Uint8Array(32),m=new DataView(O.buffer);return m.setUint32(0,i,!1),m.setUint32(4,d,!1),m.setUint32(8,h,!1),m.setUint32(12,l,!1),m.setUint32(16,x,!1),m.setUint32(20,p,!1),m.setUint32(24,S,!1),m.setUint32(28,b,!1),O}function Ce(r){return Array.from(X(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}var ke=Object.freeze(["Frost","Solar","Coral","Amber","Mossy","Lunar","Misty","Alpine","Autumn","Breeze","Cerulean","Cloudy","Cosmic","Crystal","Dewy","Dusty","Earthy","Floral","Forest","Frozen","Glacial","Golden","Grassy","Harbor","Ivory","Jasmine","Lagoon","Leafy","Lush","Marine","Meadow","Mineral","Mosaic","Nectar","Nordic","Oceanic","Orchid","Pearly","Petal","Polar","Prairie","Rain","River","Rocky","Sandy","Savanna","Shore","Sierra","Snowy","Spring","Starry","Stone","Summer","Sunset","Tidal","Timber","Tropic","Tundra","Valley","Verdant","Winding","Winter","Woody","Bloom","Blossom","Brook","Canyon","Cedar","Cloud","Comet","Copper","Dawn","Delta","Dune","Eclipse","Fern","Flame","Flora","Glade","Azure","Cobalt","Crimson","Indigo","Scarlet","Sapphire","Emerald","Ruby","Garnet","Onyx","Jade","Turquoise","Magenta","Plum","Russet","Tawny","Burnt","Gilded","Platinum","Bronze","Chrome","Pearl","Opal","Blush","Rosy","Dusky","Inky","Ashen","Cream","Slate","Charcoal","Steel","Pewter","Honey","Saffron","Citrus","Lemon","Tangerine","Peach","Apricot","Vermilion","Mauve","Lilac","Periwinkle","Cerise","Maroon","Burgundy","Wine","Berry","Cherry","Mint","Olive","Teal","Navy","Cyan","Neon","Pastel","Muted","Lustrous","Gleaming","Glossy","Shining","Glowing","Luminous","Brilliant","Sparkling","Shimmering","Iridescent","Prismatic","Spectral","Twilight","Sunrise","Sunlit","Moonlit","Starlit","Candlelit","Firelit","Sunbeam","Afterglow","Halo","Flicker","Glow","Ray","Beam","Blaze","Glint","Spark","Arc","Prism","Spectrum","Rainbow","Aurora","Nebula","Stellar","Astral","Lucent","Frosted","Swift","Bold","Keen","Brave","Noble","Serene","Fierce","Gentle","Agile","Alert","Astute","Candid","Clever","Daring","Eager","Earnest","Fair","Gallant","Graceful","Hardy","Honest","Humble","Jovial","Joyful","Kind","Loyal","Merry","Mindful","Nimble","Patient","Plucky","Proud","Quick","Ready","Resilient","Savvy","Sincere","Skilled","Steady","Stout","Strong","Sure","Tender","True","Valiant","Willing","Wise","Witty","Worthy","Zealous","Active","Adept","Ardent","Avid","Benign","Bright","Civil","Clean","Clear","Composed","Content","Courtly","Crafty","Curious","Decent","Devout","Diligent","Direct","Driven","Dynamic","Elegant","Elite","Even","Exact","Famed","Fervent","Fine","Firm","Fit","Fluid","Focal","Fond","Frank","Free","Fresh","Friendly","Frugal","Gifted","Glad","Grand","Great","Green","Grounded","Hale","Happy","Hearty","Heroic","Ideal","Infinite","Inner","Intact","Intent","Just","Lively","Lucky","Major","Mellow","Mighty","Modest","Natural","Neat","Optimal","Original","Pacific","Peaceful","Pious","Pleased","Poised","Polite","Popular","Potent","Precious","Premier","Prime","Proper","Proven","Pure","Quiet","Rapid","Rare","Real","Regal","Rich","Rising","Robust","Royal","Sacred","Safe","Scenic","Secure","Senior","Sharp","Simple","Smart","Smooth","Snug","Social","Solid","Sound","Special","Stable","Stately","Still","Super","Supreme","Sweet","Thorough","Tidy","Top","Total","Tough","Trim","Trusted","Ultimate","Unique","United","Upper","Useful","Valid","Valued","Varied","Vital","Vivid","Vocal","Whole","Wide","Young","Zesty","Iron","Gold","Silver","Marble","Granite","Velvet","Satin","Silk","Linen","Cotton","Suede","Denim","Canvas","Leather","Wooden","Bamboo","Wicker","Woven","Braided","Knit","Lace","Mesh","Fiber","Glass","Mirror","Diamond","Flint","Basalt","Obsidian","Chalk","Clay","Gravel","Pebble","Cobble","Brick","Tile","Resin","Fossil","Shell","Bone","Feather","Plush","Brushed","Polished","Hammered","Forged","Cast","Molten","Tempered","Etched","Carved","Sculpted","Spun","Pressed","Rolled","Folded","Layered","Stacked","Ribbed","Matte","Lacquered","Enameled","Glazed","Painted","Dyed","Stained","Refined","Distilled","Purified","Filtered","Alloyed","Plated","Coated","Sealed","Bonded","Fused","Welded","Riveted","Textured","Grained","Veined","Flecked","Speckled","Dappled","Streaked","Banded","Striped","Checkered","Waxed","Oiled","Cured","Tanned","Smoked","Burnished","Antiqued","Patina","Weathered","Aged","Rustic","Hewn","Vast","Broad","Deep","High","Tall","Giant","Colossal","Massive","Immense","Boundless","Endless","Sweeping","Spanning","Extended","Towering","Soaring","Lofty","Elevated","Raised","Summit","Apex","Crest","Crown","Pinnacle","Zenith","Ridge","Ledge","Level","Hollow","Compact","Dense","Thick","Narrow","Slender","Micro","Mini","Small","Ample","Hefty","Jumbo","Mega","Ultra","Macro","Central","Core","Outer","Lateral","Radial","Spiral","Orbital","Linear","Planar","Spherical","Rounded","Angular","Pointed","Tapered","Curved","Arced","Twisted","Coiled","Fractal","Cellular","Quantum","Photon","Plasma","Kinetic","Static","Charged","Maximal","Atomic","Nano","Tiered","Strata","Nested","Stepped","Graded","Scaled","Proportioned","Modular","Symmetric","Parallel","Flowing","Drifting","Gliding","Sailing","Floating","Climbing","Leaping","Bounding","Sprinting","Dashing","Rushing","Surging","Cascading","Rolling","Tumbling","Spinning","Whirling","Twisting","Swirling","Pulsing","Beating","Humming","Buzzing","Ringing","Chiming","Singing","Dancing","Swaying","Waving","Rippling","Bubbling","Fizzing","Crackling","Snapping","Clicking","Tapping","Drumming","Thrumming","Vibrant","Magnetic","Electric","Blazing","Burning","Fiery","Volcanic","Thermal","Warming","Cooling","Chilling","Brisk","Crisp","Breezy","Gusty","Windy","Airy","Light","Buoyant","Weightless","Fleet","Peppy","Zippy","Snappy","Speedy","Sonic","Turbo","Warp","Express","Instant","Darting","Flying","Jetting","Cruising","Coasting","Rhythmic","Cycling","Pacing","Striding","Marching","Trotting","Galloping","Bouncing","Vaulting","Arching","Launched","Propelled","Hovering","Orbiting","Revolving","Rotating","Pivoting","Swinging","Rocking","Tilting","Shifting","Sliding","Skating","Surfing","Diving","Plunging","Dipping","Wading","Celestial","Ethereal","Mystic","Arcane","Ancient","Eternal","Timeless","Ageless","Enduring","Lasting","Perpetual","Legendary","Mythic","Epic","Fabled","Storied","Historic","Classic","Vintage","Retro","Modern","Future","Digital","Cyber","Virtual","Pixel","Binary","Omega","Alpha","Beta","Gamma","Sigma","Theta","Lambda","Kappa","Zeta","Epsilon","Omni","Dual","Triple","Nexus","Vertex","Vector","Matrix","Cipher","Enigma","Phantom","Mirage","Dream","Vision","Oracle","Prophet","Sage","Shaman","Druid","Artisan","Maestro","Virtuoso","Savant","Prodigy","Maven","Guru","Mentor","Guide","Scout","Pioneer","Voyager","Wanderer","Nomad","Rover","Ranger","Sentinel","Guardian","Keeper","Warden","Champion","Vanguard","Herald","Emissary","Envoy","Ambassador","Steward","Curator","Patron","Benefactor","Founder","Architect","Builder","Maker","Crafter","Weaver","Forger","Smith","Wright","Mason","Brewer","Baker","Tanner","Dyer","Scribe","Bard","Minstrel","Troubadour","Storyteller","Chronicler","Lorekeeper","Archivist","Tranquil","Placid","Hushed","Muffled","Soft","Subtle","Faint","Dim","Pale","Warm","Cool","Taut","Tense","Cozy","Homey","Pastoral","Sylvan","Bucolic","Idyllic","Quaint","Charming","Lovely","Pretty","Dapper","Natty","Chic","Posh","Classy","Fancy","Ornate","Lavish","Opulent","Majestic","Dignified","August","Solemn","Sober","Heartfelt","Genuine","Authentic","Novel","Singular","Distinct","Chosen","Select","Premium","Deluxe","Superior","Exquisite","Superb","Splendid","Glorious","Sublime","Resonant","Harmonic","Melodic","Lyrical","Poetic","Seamless","Effortless","Organic","Primal","Devoted","Dedicated","Committed","Focused","Determined","Resolute","Steadfast","Unwavering","Constant","Faithful","Reliable","Dependable","Trusty","Anchored","Moored","Sheltered","Protected","Guarded","Shielded","Fortified","Reinforced","Braced","Bolstered","Supported","Upheld","Sustained","Preserved","Conserved","Stored","Vaulted","Locked","Secured","Fastened","Linked","Joined","Connected","Paired","Matched","Balanced","Aligned","Centered","Aimed","Directed","Guided","Steered","Piloted","Navigated","Charted","Mapped","Tracked","Pursued","Discovered","Unveiled","Displayed","Presented","Granted","Bestowed","Conferred","Sapient","Sentient","Radiant","Fertile","Abundant","Bountiful","Plentiful","Prolific","Thriving","Flourishing","Blooming","Budding","Growing","Expanding","Advancing","Progressing","Evolving","Maturing","Ripening","Developing","Emerging","Nascent","Incipient","Dawning","Unfolding","Awakening","Stirring","Kindling","Igniting","Sparking","Triggering","Launching","Initiating","Pioneering","Trailblazing","Groundbreaking","Innovative","Inventive","Creative","Imaginative","Inspired","Visionary","Prophetic","Prescient","Insightful","Perceptive","Observant","Watchful","Vigilant","Attentive","Thoughtful","Considerate","Caring","Nurturing","Fostering","Cultivating","Tending","Pruning","Trimming","Shaping","Forming","Molding","Fashioning","Designing","Drafting","Sketching","Drawing","Painting","Coloring","Tinting","Shading","Blending","Mixing","Merging","Combining","Uniting","Fusing","Melding","Weaving","Knitting","Stitching","Sewing","Quilting","Patching","Mending","Healing","Restoring","Renewing","Reviving","Refreshing","Rejuvenating","Invigorating","Energizing","Empowering","Strengthening","Fortifying","Hardening","Tempering","Seasoning","Curing","Aging","Mellowing","Softening","Smoothing","Leveling","Planing","Sanding","Buffing","Burnishing","Radiating","Beaming","Lighting","Illuminating","Brightening","Clarifying","Purifying","Filtering","Distilling","Condensing","Concentrating","Focusing","Directing","Channeling","Terraced","Ascending","Streaming","Umber","Careful","Perfecting","Glittering","Twinkling","Verdure","Auroral","Boreal","Austral","Temperate"]),we=Object.freeze(["Falcon","Hawk","Eagle","Owl","Heron","Crane","Swan","Dove","Raven","Finch","Robin","Wren","Lark","Jay","Ibis","Kite","Osprey","Condor","Pelican","Stork","Sparrow","Tern","Puffin","Parrot","Toucan","Kingfisher","Flamingo","Quail","Pheasant","Grouse","Oriole","Warbler","Thrush","Starling","Magpie","Swallow","Martin","Plover","Curlew","Sandpiper","Wolf","Fox","Bear","Stag","Elk","Moose","Bison","Lynx","Cougar","Panther","Jaguar","Leopard","Tiger","Lion","Cheetah","Gazelle","Antelope","Impala","Zebra","Giraffe","Rhino","Hippo","Otter","Beaver","Badger","Marten","Ferret","Mink","Hare","Rabbit","Squirrel","Chipmunk","Porcupine","Hedgehog","Armadillo","Pangolin","Lemur","Gibbon","Tamarin","Capybara","Chinchilla","Ocelot","Margay","Coati","Kinkajou","Tapir","Okapi","Kudu","Oryx","Chamois","Orca","Dolphin","Whale","Narwhal","Walrus","Seal","Manatee","Turtle","Iguana","Gecko","Chameleon","Newt","Salamander","Crab","Lobster","Seahorse","Starfish","Octopus","Squid","Jellyfish","Stingray","Barracuda","Marlin","Sailfish","Trout","Salmon","Mantis","Cricket","Firefly","Dragonfly","Cedar","Oak","Pine","Birch","Maple","Elm","Ash","Willow","Cypress","Redwood","Sequoia","Spruce","Fir","Larch","Yew","Beech","Alder","Poplar","Aspen","Walnut","Hickory","Teak","Mahogany","Ebony","Bamboo","Palm","Acacia","Baobab","Banyan","Olive","Laurel","Magnolia","Lotus","Orchid","Iris","Lily","Rose","Tulip","Daisy","Aster","Dahlia","Peony","Jasmine","Violet","Clover","Fern","Moss","Lichen","Ivy","Vine","Reed","Sage","Basil","Thyme","Mint","Dill","Fennel","Sorrel","Yarrow","Thistle","Heather","Bluebell","Primrose","Marigold","Sunflower","Zinnia","Pansy","Poppy","Crocus","Snowdrop","Foxglove","Honeysuckle","Wisteria","Hibiscus","Plumeria","Gardenia","Camellia","Begonia","Azalea","Oleander","Canyon","Ridge","Peak","Summit","Cliff","Bluff","Mesa","Butte","Plateau","Terrace","Valley","Basin","Gorge","Ravine","Gulch","Fjord","Inlet","Bay","Cove","Harbor","Lagoon","Reef","Atoll","Isle","Peninsula","Cape","Shoal","Bank","Ledge","Shelf","Dune","Desert","Steppe","Tundra","Glacier","Moraine","Geyser","Oasis","Delta","Estuary","Marsh","Bog","Swamp","Fen","Moor","Heath","Meadow","Prairie","Savanna","Glen","Dale","Dell","Vale","Hollow","Grove","Copse","Thicket","Taiga","Mangrove","Wetland","Cascade","Brook","Creek","Stream","River","Lake","Pond","Pool","Tarn","Loch","Falls","Fountain","Grotto","Cavern","Cave","Tunnel","Arch","Bridge","Ford","Pass","Trail","Path","Route","Caldera","Crater","Vent","Spire","Needle","Dome","Gateway","Portal","Threshold","Verge","Brink","Edge","Rim","Brow","Crest","Promontory","Headland","Spit","Tombolo","Isthmus","Strait","Narrows","Sound","Bight","Reach","Stretch","Expanse","Clearing","Glade","Knoll","Hillock","Mound","Tor","Crag","Scarp","Escarpment","Comet","Meteor","Asteroid","Nebula","Galaxy","Quasar","Pulsar","Star","Sun","Moon","Planet","Orbit","Eclipse","Corona","Flare","Nova","Cosmos","Void","Abyss","Ether","Zenith","Nadir","Horizon","Aurora","Meridian","Equinox","Solstice","Phase","Cycle","Epoch","Eon","Era","Dawn","Dusk","Twilight","Night","Noon","Morning","Evening","Sunset","Sunrise","Daybreak","Nightfall","Starlight","Moonbeam","Sunray","Skyline","Firmament","Canopy","Infinity","Vega","Rigel","Altair","Deneb","Sirius","Polaris","Arcturus","Antares","Lyra","Orion","Draco","Phoenix","Hydra","Corvus","Cygnus","Aquila","Andromeda","Pegasus","Perseus","Gemini","Centauri","Cassiopeia","Scorpius","Sagittarius","Capella","Procyon","Aldebaran","Betelgeuse","Spica","Prism","Quill","Forge","Anvil","Helm","Rune","Atlas","Compass","Anchor","Beacon","Bell","Bugle","Drum","Flute","Harp","Horn","Lyre","Pipe","Gong","Chime","Cymbal","Fiddle","Trumpet","Viola","Cello","Oboe","Lute","Mandolin","Zither","Sitar","Banjo","Lantern","Torch","Candle","Lamp","Globe","Lens","Scope","Mirror","Frame","Easel","Palette","Brush","Chisel","Mallet","Hammer","Tongs","Ladle","Kettle","Crucible","Mortar","Pestle","Flask","Vial","Beaker","Alembic","Furnace","Kiln","Loom","Shuttle","Bobbin","Spool","Thimble","Pin","Clasp","Buckle","Brooch","Pendant","Amulet","Talisman","Charm","Token","Coin","Medal","Badge","Shield","Banner","Flag","Pennant","Sigil","Stamp","Emblem","Totem","Icon","Statue","Obelisk","Monolith","Cairn","Tablet","Scroll","Tome","Codex","Ledger","Journal","Chronicle","Almanac","Manual","Gazette","Folio","Pamphlet","Broadsheet","Parchment","Vellum","Papyrus","Inkwell","Quiver","Satchel","Pouch","Casket","Coffer","Chest","Crate","Barrel","Quartz","Opal","Onyx","Agate","Garnet","Topaz","Beryl","Zircon","Spinel","Peridot","Jasper","Amethyst","Citrine","Tourmaline","Malachite","Azurite","Lapis","Pyrite","Galena","Mica","Talc","Gypsum","Calcite","Dolomite","Basalt","Granite","Marble","Slate","Shale","Sandstone","Limestone","Obsidian","Pumice","Tuff","Chert","Flint","Chalcedony","Carnelian","Sardonyx","Moonstone","Sunstone","Labradorite","Tanzanite","Kunzite","Rhodonite","Sodalite","Chrysocolla","Aventurine","Fluorite","Seraphinite","Charoite","Sugilite","Larimar","Prehnite","Danburite","Scolecite","Celestite","Amazonite","Howlite","Lepidolite","Storm","Thunder","Lightning","Breeze","Gale","Squall","Typhoon","Cyclone","Monsoon","Tempest","Zephyr","Chinook","Mistral","Sirocco","Foehn","Bora","Rain","Drizzle","Shower","Downpour","Deluge","Flood","Torrent","Current","Tide","Wave","Swell","Surf","Spray","Foam","Mist","Fog","Haze","Dew","Frost","Ice","Snow","Sleet","Hail","Rime","Thaw","Flow","Drift","Eddy","Vortex","Whirl","Spiral","Funnel","Column","Plume","Wisp","Streak","Band","Front","Trough","Rainbow","Halo","Mirage","Shimmer","Glimmer","Tower","Turret","Bastion","Citadel","Fortress","Castle","Palace","Manor","Lodge","Cabin","Cottage","Villa","Ranch","Barn","Silo","Mill","Foundry","Workshop","Studio","Gallery","Museum","Library","Archive","Treasury","Vault","Chamber","Hall","Court","Plaza","Garden","Balcony","Porch","Arcade","Colonnade","Pergola","Pavilion","Gazebo","Kiosk","Chapel","Temple","Shrine","Monastery","Abbey","Cathedral","Basilica","Minaret","Pagoda","Stupa","Pyramid","Arena","Stadium","Forum","Market","Bazaar","Emporium","Depot","Station","Terminal","Dock","Wharf","Pier","Jetty","Quay","Marina","Lighthouse","Watchtower","Outpost","Camp","Shelter","Refuge","Sanctuary","Haven","Retreat","Nest","Aerie","Burrow","Den","Lair","Roost","Perch","Bower","Arbor","Alcove","Sextant","Astrolabe","Sundial","Hourglass","Pendulum","Gyroscope","Turbine","Dynamo","Generator","Piston","Valve","Lever","Pulley","Winch","Derrick","Gantry","Scaffold","Trellis","Lattice","Grid","Net","Web","Axle","Gear","Cog","Sprocket","Chain","Link","Cable","Wire","Thread","Cord","Rope","Rigging","Mast","Boom","Spar","Keel","Hull","Rudder","Tiller","Wheel","Chart","Map","Gauge","Meter","Scale","Caliper","Ruler","Level","Plumb","Protractor","Template","Stencil","Mold","Die","Lathe","Bellows","Retort","Condenser","Centrifuge","Spectrometer","Oscilloscope","Theodolite","Transit","Sounding","Probe","Sensor","Relay","Switch","Circuit","Diode","Quest","Saga","Legend","Myth","Fable","Ballad","Anthem","Hymn","Ode","Sonnet","Verse","Stanza","Canto","Chorus","Refrain","Motif","Theme","Arc","Prologue","Epilogue","Prelude","Overture","Finale","Crescendo","Cadence","Tempo","Rhythm","Pulse","Beat","Tone","Note","Chord","Harmony","Melody","Lyric","Opus","Suite","Etude","Fugue","Canon","March","Waltz","Rondo","Aria","Duet","Trio","Quartet","Ensemble","Guild","League","Order","Council","Assembly","Conclave","Synod","Quorum","Cohort","Legion","Brigade","Battalion","Regiment","Division","Corps","Fleet","Squadron","Patrol","Convoy","Caravan","Expedition","Voyage","Journey","Trek","Odyssey","Passage","Crossing","Venture","Enterprise","Mission","Campaign","Crusade","Pilgrimage","Safari","Sortie","Foray","Rally","Charge","Advance","Concord","Ember","Blaze","Inferno","Pyre","Spark","Cinder","Smoke","Vapor","Steam","Nimbus","Cumulus","Cirrus","Stratus","Billow","Puff","Wake","Ripple","Surge","Ebb","Flux","Gush","Rush","Spring","Well","Font","Source","Origin","Root","Seed","Sprout","Bud","Bloom","Petal","Leaf","Branch","Limb","Trunk","Bark","Grain","Fiber","Pulp","Core","Sap","Resin","Nectar","Pollen","Spore","Frond","Tendril","Runner","Shoot","Stalk","Stem","Thorn","Burr","Cone","Acorn","Pinecone","Nutshell","Keystone","Capstone","Milestone","Cornerstone","Foundation","Bedrock","Pillar","Buttress","Parapet","Battlement","Barbican","Gatehouse","Drawbridge","Portcullis","Moat","Stockade","Palisade","Bulwark","Levee","Embankment","Causeway","Aqueduct","Viaduct","Trestle","Span","Lintel","Plinth","Pedestal","Dais","Rostrum","Podium","Stage","Platform","Deck","Landing","Berth","Channel","Lock","Weir","Dam","Spillway","Flume","Chute","Sluice","Nozzle","Spout","Faucet","Cistern","Wellspring","Headwater","Watershed","Alluvium","Loam","Humus","Peat","Marl","Silt","Writ","Clamp","Eyepiece","Traverse","Stride","Parley","Char","Trace","Confluence","Rampart"]),Te=Object.freeze(new Set([]));function cr(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}var dr=`solnames-${"v1"}:`;function ee(r,e="display",t){let n=U(r,t);switch(e){case"short":return n.short;case"display":return n.name;case"tag":return n.tag;case"full":return n.full}}function U(r,e){let t=e?.adjectives??ke,n=e?.nouns??we,a=e?.blockedCombos??Te,o=e?.domain?`${e.domain}:`:dr,s=X(o+r),c=Ce(o+r),i=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])>>>0,d=cr(i),h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];for(;a.has(h+l);)h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];let x=t[Math.floor(d()*t.length)],p=n[Math.floor(d()*n.length)],S=c.slice(16,20);return{short:h,name:h+l,tag:h+l+"#"+S,full:h+l+"-"+x+p,adjective:h,noun:l,hash:c,discriminator:S}}function T(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function H(r,e,t){return"#"+[r,e,t].map(n=>Math.max(0,Math.min(255,Math.round(n))).toString(16).padStart(2,"0")).join("")}function w(r,e=.12){let[t,n,a]=T(r);return H(t*(1-e),n*(1-e),a*(1-e))}function B(r,e=.15){let[t,n,a]=T(r);return H(t+(255-t)*e,n+(255-n)*e,a+(255-a)*e)}function C(r,e,t=.5){let[n,a,o]=T(r),[s,c,i]=T(e);return H(n+(s-n)*t,a+(c-a)*t,o+(i-o)*t)}function re(r){let[e,t,n]=T(r);return(e+t+n)/3}function K(r){let e=re(r),t=e<100,n=B(r,.1),a=w(r,.22),o=w(r,.05),[s,c,i]=T(r),d;if(e>120){let k=e>180?.03:.06,I=e>180?.3:.28,W=e>180?.25:.22;d=H(Math.min(255,s+s*k),Math.max(0,c-c*I),Math.max(0,i-i*W))}else d=H(Math.min(255,s+50),Math.max(0,c-10),Math.max(0,i-5));let h=.15+.18*(1-Math.min(1,e/240)),l=Math.max(0,Math.min(1,(e-60)/180)),x=C("#D89090","#A83848",l),p=1-Math.abs(e-140)/80,S=(t?.7:.62)+Math.max(0,p)*.12,b=C(r,x,Math.min(.82,S)),[y,O,m]=T(b),g=Math.abs(s-y)+Math.abs(c-O)+Math.abs(i-m)<60?C(r,x,.78):b,v=t?B(r,e<80?.35:.25):w(r,.55),M=t?B(r,.2):w(r,.2),_=Math.max(0,Math.min(1,(e-100)/60)),$=C(B(r,.08),o,_),A=w(r,.1+.06*(1-Math.min(1,e/160))),F=t?B(r,.18):w(r,.15),G=Math.max(0,Math.min(1,(e-60)/180)),u=C("#EDE8E0","#FBF8F2",G),L=e>140?.3:e>100?.5:.7,E=C("#808890",C(r,"#B0A898",.3),L);return{skinHi:n,skinLo:a,skinMid:o,isDark:t,cheekColor:d,cheekOpacity:h,lipColor:g,noseFill:M,browColor:v,earFill:$,earShadow:A,eyeWhiteAdapted:u,lidColor:F,accessoryColor:E}}function Me(r,e){let[t,n,a]=T(r),[o,s,c]=T(e);return Math.abs(t-o)+Math.abs(n-s)+Math.abs(a-c)<80?.7:.5}function ur(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function gr(r,e,t,n,a,o,s,c,i,d,h){if(i)return"";let l="<defs>";return l+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${t}"/>`,l+=`<stop offset="100%" stop-color="${n}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}hg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${B(a,.15)}"/>`,l+=`<stop offset="100%" stop-color="${w(a,.15)}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,l+=`<stop offset="0%" stop-color="${B(o,.12)}"/>`,l+=`<stop offset="100%" stop-color="${w(o,.12)}"/>`,l+="</linearGradient>",d&&(l+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,l+=`<stop offset="0%" stop-color="#ffffff" stop-opacity="${h}"/>`,l+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',l+="</radialGradient>",l+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,l+=`<stop offset="0%" stop-color="${n}" stop-opacity="0.30"/>`,l+=`<stop offset="100%" stop-color="${n}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>"),l+="</defs>",l}function hr(r,e,t){let n=t?"currentColor":`url(#${e}hg)`;switch(r){case 5:return`<g fill="${n}"><rect x="10" y="14" width="44" height="42" rx="6"/></g>`;case 6:return`<g fill="${n}"><rect x="12" y="14" width="40" height="32" rx="8"/></g>`;case 8:return`<g fill="${n}"><rect x="11" y="14" width="42" height="38" rx="8"/></g>`;default:return""}}function yr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function pr(r,e,t,n=1){let a=t?e:`url(#${r}sg)`,o=n<1?` opacity="${n}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${a}"${o}/>`}function fr(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function mr(r,e,t,n,a){let o=a?t:`url(#${e}hg)`;switch(r){case 0:return"";case 1:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/>`;case 2:return`<g fill="${o}"><circle cx="20" cy="14" r="5"/><circle cx="28" cy="11" r="5.5"/><circle cx="36" cy="11" r="5.5"/><circle cx="44" cy="14" r="5"/><circle cx="16" cy="20" r="4"/><circle cx="48" cy="20" r="4"/></g>`;case 3:return`<path d="M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M14 20 Q8 16 10 8 Q14 10 20 16 Z" fill="${o}"/>`;case 4:return`<ellipse cx="32" cy="10" rx="14" ry="8" fill="${o}"/>`;case 5:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/>`;case 6:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><rect x="10" y="28" width="8" height="14" rx="4" fill="${o}"/><rect x="46" y="28" width="8" height="14" rx="4" fill="${o}"/>`;case 7:{let s=Me(t,n);return`<rect x="15" y="13" width="34" height="16" rx="10" ry="8" fill="${t}" opacity="${s.toFixed(2)}"/>`}case 8:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M12 30 Q10 20 14 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/><path d="M52 30 Q54 20 50 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/>`;case 9:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/><ellipse cx="32" cy="6" rx="6" ry="5" fill="${o}"/>`;default:return""}}function xr(r,e,t,n,a){let i="";switch(r){case 0:i+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:i+=`<circle cx="25" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="2" fill="${e}"/>`;break;case 2:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),i+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:i+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:i+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:i+=`<path d="M21 33 Q25 37 29 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`,i+=`<path d="M35 33 Q39 37 43 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`;break;case 6:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${25+2.5}" y1="${33-3.5}" x2="29" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${25+3.5}" y1="${33-2.5}" x2="30" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${39+2.5}" y1="${33-3.5}" x2="43" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${39+3.5}" y1="${33-2.5}" x2="44" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 7:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,i+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;default:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return a&&r!==1&&r!==5&&(i+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`,i+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`),i}function Sr(r,e){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;default:return""}}function br(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function $r(r,e,t){let o=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${o}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<line x1="28" y1="46" x2="36" y2="46" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function Pe(r,e,t,n,a){switch(r){case 0:return"";case 1:return'<circle cx="40" cy="44" r="0.8" fill="#3a2a2a"/>';case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${n}"/><circle cx="10" cy="41" r="2" fill="${n}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${a}" opacity="0.85"/>`;case 6:return'<g fill="#a0785a" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>';case 7:return`<circle cx="10" cy="37" r="1.2" fill="${n}"/><circle cx="54" cy="37" r="1.2" fill="${n}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="8" height="4" rx="1" fill="#f0d0a0" transform="rotate(-15 42 40)"/><line x1="40" y1="39" x2="40" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="42" y1="39" x2="42" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="44" y1="39" x2="44" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/></g>';default:return""}}function V(r,e){let{size:t=64,theme:n,traitOverrides:a,enableBlink:o,className:s,colorOverrides:c}=e??{},i=N(r,a),d=e?.detail??"auto",h=d==="full"||d==="auto"&&t>=48,l=n?.flat??!1,x=n?.skinColors??ye,p=n?.eyeColors??pe,S=n?.hairColors??fe,b=n?.bgColors??me,y=c?.skin??x[i.skinColor%x.length],O=c?.eyes??p[i.eyeColor%p.length],m=c?.hair??S[i.hairColor%S.length],D=c?.bg??b[i.bgColor%b.length],g=K(y),v=n?.bgOpacity??1,M=n?.bgRadius??4,_=c?.eyebrow??n?.eyebrowColor??g.browColor,$=c?.nose??n?.noseColor??g.noseFill,A=c?.mouth??n?.mouthColor??g.lipColor,F=c?.accessory??n?.accessoryColor??g.accessoryColor,G=c?.eyeWhite??n?.eyeWhiteColor??g.eyeWhiteAdapted,u=n?.glassesColor??"#4a4a5a",L=n?.earringColor??C(y,"#d4a840",.4),E=n?.headbandColor??C(m,"#c04040",.5),k="sf"+ur(r).toString(36),I=n?.cheekEnabled??!0,W=n?.cheekColor??g.cheekColor,Y=n?.cheekOpacity??g.cheekOpacity,ge=i.hairStyle%10,j=R(i),De=s?` class="${s}"`:"",f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${De}>`,_e=n?.glowIntensity??.1;f+=gr(k,y,g.skinHi,g.skinLo,m,D,W,Y,l,h&&I,_e);let J=!!o,Ge=typeof o=="object"?o.duration??4:4,he=typeof o=="object"?o.delay??0:0;if(J){let Q=`sf-${r.slice(0,8)}`,We=he?` ${he}s`:"";f+=`<style>@keyframes ${Q}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${Q}-eyes{animation:${Q}-blink ${Ge}s ease-in-out${We} infinite;transform-origin:32px 33px}</style>`}let He=l?D:`url(#${k}bg)`;f+=`<rect x="0" y="0" width="64" height="64" fill="${He}" opacity="${v}" rx="${M}"/>`,f+=hr(ge,k,l),f+=yr(g.earFill,g.earShadow);let Ie=n?.skinOpacity??1;f+=pr(k,y,l,Ie);let Ne=n?.shadowEnabled??!0;if(h&&I&&Ne&&(f+=fr(k,l)),j===5&&(f+=Pe(5,F,u,L,E)),f+=mr(ge,k,m,y,l),J){let Q=`sf-${r.slice(0,8)}`;f+=`<g class="${Q}-eyes">`}return f+=xr(i.eyeStyle%8,O,G,g.lidColor,h),J&&(f+="</g>"),f+=Sr(i.eyebrows%5,_),f+=br(i.nose%4,$),f+=$r(i.mouth%8,A,g.isDark),j!==0&&j!==5&&(f+=Pe(j,F,u,L,E)),n?.border&&(f+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${n.border.color}" stroke-width="${n.border.width}" rx="${M}"/>`),f+="</svg>",f}function te(r,e){let t=V(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function Be(r,e){let t=V(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var ne={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},ie={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow"},ae={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray"},ve={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled"},Fe={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils"},oe={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},le={0:"bald, with no hair",1:"short, neatly cropped hair",2:"bouncy, curly hair",3:"side-swept hair",4:"a voluminous puff",5:"long hair that falls past the shoulders",6:"a clean bob cut",7:"a close buzz cut",8:"flowing, wavy hair",9:"a neat topknot"},se={0:"jet black",1:"espresso brown",2:"walnut",3:"honey blonde",4:"copper red",5:"silver",6:"charcoal",7:"burgundy",8:"strawberry",9:"ginger"},ce={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid"},Re={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush"};function q(r,e){let t=N(r),{includeBackground:n=!0,format:a="paragraph",perspective:o="third",name:s}=e??{};return a==="structured"?kr(t,n):a==="compact"?wr(t):Cr(t,o,s,n)}function Cr(r,e,t,n){let a=[],o=R(r),s=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",c=e==="first"?"I'm":"They're";a.push(`${s} a squircle face with ${ne[r.skinColor]??"warm"} skin`);let i=ie[r.eyeStyle]??"round",d=ae[r.eyeColor]??"dark";a.push(`${i} ${d} eyes`);let h=ve[r.eyebrows];h&&a.push(`${h} eyebrows`);let l=le[r.hairStyle]??"",x=se[r.hairColor]??"";r.hairStyle===0?a.push(e==="first"?"and am bald":"and is bald"):l.startsWith("a ")?a.push(`and a ${x} ${l.slice(2)}`):a.push(`and ${x} ${l}`);let p=a[0];a.length>2?p+=", "+a.slice(1,-1).join(", ")+", "+a[a.length-1]:a.length===2&&(p+=" and "+a[1]),p+=".";let S=Fe[r.nose];if(S){let m=e==="first"?"I have":(t??"They")+(t?" has":" have");p+=` ${m} ${S}.`}let b=ce[o];b&&(p+=` ${c} wearing ${b}.`);let y=oe[r.mouth]??"a smile",O=e==="first"?"I have":(t??"They")+(t?" has":" have");if(p+=` ${O} ${y}.`,n){let m=Re[r.bgColor]??"colorful";p+=` The background is ${m}.`}return p}function kr(r,e){let t=R(r),n=["Face: squircle",`Skin: ${ne[r.skinColor]??"warm"}`,`Eyes: ${ie[r.eyeStyle]??"round"}, ${ae[r.eyeColor]??"dark"}`,`Eyebrows: ${ve[r.eyebrows]??"wispy"}`],a=Fe[r.nose];if(a&&n.push(`Nose: ${a.replace(/^a /,"")}`),n.push(`Mouth: ${oe[r.mouth]??"smile"}`),r.hairStyle===0)n.push("Hair: bald");else{let s=le[r.hairStyle]??"",c=se[r.hairColor]??"";n.push(`Hair: ${c} ${s.startsWith("a ")?s.slice(2):s}`)}let o=ce[t];return o&&n.push(`Accessory: ${o}`),e&&n.push(`Background: ${Re[r.bgColor]??"colorful"}`),n.join(`
2
- `)}function wr(r){let e=R(r),t=[];if(t.push("squircle face"),t.push(`${ne[r.skinColor]??"warm"} skin`),t.push(`${ae[r.eyeColor]??"dark"} ${ie[r.eyeStyle]??"round"} eyes`),r.hairStyle===0)t.push("bald");else{let a=le[r.hairStyle]??"hair",o=a.includes(",")?a.replace(/.*,\s*/,""):a,s=se[r.hairColor]??"";t.push(`${s} ${o.startsWith("a ")?o.slice(2):o}`)}let n=ce[e];return n&&t.push(n),t.push((oe[r.mouth]??"smiling").replace(/^a /,"")),t.join(", ")}function de(r){return`SolFace avatar: ${q(r,{format:"compact",includeBackground:!1})}`}function Oe(r,e){let t=q(r,{perspective:"first",name:e,includeBackground:!1,format:"paragraph"});return`My visual identity is a SolFace avatar (ID: ${(Tr(r)>>>0).toString(16).padStart(8,"0")}) derived from my wallet address. ${t} This appearance is deterministic \u2014 anyone who looks up my wallet will see the same face.`}function Tr(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}var Mr={},Pr={bgColors:["#1a1b23","#1e1428","#0a1e38","#1b2838","#201028","#141a28","#18122a","#1a2020","#221822","#1e1020"],eyeWhiteColor:"#d8d0c8",bgOpacity:1,bgRadius:4,border:{color:"#333340",width:.5}},Br={bgColors:["#f5e8ea","#f0f0d8","#e4f0e6","#d8f0e8","#e0ece8","#dce8f0","#e0e4f0","#e0d8f0","#f0e0ee","#f0d8e4"],bgOpacity:1,bgRadius:8},vr={skinColors:["#e8e8e8","#d4d4d4","#c0c0c0","#a8a8a8","#909090","#787878","#606060","#505050","#404040","#303030"],eyeColors:["#333","#555","#777","#999","#bbb"],hairColors:["#1a1a1a","#2a2a2a","#404040","#555","#707070","#888","#a0a0a0","#b8b8b8","#d0d0d0","#e0e0e0"],bgColors:["#e8e0e0","#e0e0d0","#d8e0d8","#d0e0d8","#d8e0e0","#d0d8e0","#d4d4e0","#d4d0e0","#e0d8e0","#e0d0d8"],mouthColor:"#666",eyebrowColor:"#555",accessoryColor:"#777",eyeWhiteColor:"#f0f0f0",bgOpacity:.5,bgRadius:4},Fr={flat:!0},Rr={flat:!0,bgOpacity:0},Or={bgOpacity:.15,bgRadius:16,_glass:!0,_blurRadius:12,_saturate:1.8,_tintOpacity:.12,_tintColor:"rgba(255,255,255,1)",_borderOpacity:.25,_borderWidth:1,_borderColor:"rgba(255,255,255,0.25)",_specularOpacity:.25,_specularColor:"rgba(255,255,255,1)",_specularEnd:50,_lightAngle:135,_rimIntensity:.08,_shadow:"0 8px 32px rgba(0,0,0,0.12)"},Ar={bgOpacity:.2,bgRadius:16,_glass:!0,_blurRadius:16,_saturate:2,_tintOpacity:.08,_tintColor:"rgba(0,0,0,1)",_borderOpacity:.15,_borderWidth:1,_borderColor:"rgba(255,255,255,0.15)",_specularOpacity:.15,_specularColor:"rgba(255,255,255,1)",_specularEnd:40,_lightAngle:135,_rimIntensity:.05,_shadow:"0 8px 32px rgba(0,0,0,0.25)"},Lr={flat:!0,_pixel:!0,_pixelDensity:16,_pixelRounded:!0,_pixelOutline:!0,_pixelOutlineColor:"#222",_pixelOutlineWidth:2},Er={flat:!0,_pixel:!0,_pixelDensity:12,_pixelRounded:!1,_pixelOutline:!0,_pixelOutlineColor:"#000",_pixelOutlineWidth:2,_pixelScanlines:!0,_pixelScanlineOpacity:.1,_pixelScanlineSpacing:2,_pixelShadow:!0,_pixelShadowColor:"rgba(0,0,0,0.4)",_pixelShadowOffset:3},Dr={flat:!0,_pixel:!0,_pixelDensity:24,_pixelRounded:!0,_pixelOutline:!1},z={default:Mr,dark:Pr,light:Br,mono:vr,flat:Fr,transparent:Rr,glass:Or,glassDark:Ar,pixel:Lr,pixelRetro:Er,pixelClean:Dr};function Ae(r,e){let t=z[r];return t?e?{...t,...e}:t:e??{}}function Le(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;return n?(n.innerHTML=V(e,t),()=>{n.innerHTML=""}):(console.warn(`[SolFaces] Element not found: ${r}`),()=>{})}function _r(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;n&&(n.src=te(e,t),n.alt=de(e))}function ue(r=document){r.querySelectorAll("[data-solface]").forEach(t=>{let n=t.getAttribute("data-solface");if(!n)return;let a=parseInt(t.getAttribute("data-solface-size")??"64",10),o=t.getAttribute("data-solface-blink")==="true",s=t.getAttribute("data-solface-theme"),c=t.getAttribute("data-solface-flat")==="true",i=t.getAttribute("data-solface-detail"),d=s&&s in z?z[s]:void 0;c&&d?d={...d,flat:!0}:c&&(d={flat:!0}),Le(t,n,{size:a,enableBlink:o,theme:d,detail:i??"auto"})})}var Ee={generateTraits:N,deriveName:ee,deriveIdentity:U,getTraitLabels:Se,traitHash:be,resolveTheme:$e,effectiveAccessory:R,renderSVG:V,renderDataURI:te,renderBase64:Be,describe:q,altText:de,agentPrompt:Oe,mount:Le,setImg:_r,autoInit:ue,themes:z,getTheme:Ae,colors:{hexToRgb:T,rgbToHex:H,darken:w,lighten:B,blend:C,luminance:re,deriveSkinColors:K}};typeof window<"u"&&(window.SolFaces=Ee);typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.querySelector("[data-solface]")&&ue()}):document.querySelector("[data-solface]")&&ue());var Gr=Ee;return Ke(Hr);})();
1
+ "use strict";var SolFaces=(()=>{var ee=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var Ke=(r,e)=>{for(var t in e)ee(r,t,{get:e[t],enumerable:!0})},qe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ue(e))!je.call(r,a)&&a!==t&&ee(r,a,{get:()=>e[a],enumerable:!(n=Qe(e,a))||n.enumerable});return r};var Ye=r=>qe(ee({},"__esModule",{value:!0}),r);var Nr={};Ke(Nr,{default:()=>Ir});var ye=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],he=["#382414","#3868A8","#38784C","#808838","#586878","#A06830","#685898","#889898"],pe=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],fe=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984","#a07ab5","#74b5a0"];function me(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function Je(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function V(r,e){let t=me(r),n=Je(t),a={faceShape:Math.floor(n()*4),skinColor:Math.floor(n()*10),eyeStyle:Math.floor(n()*9),eyeColor:Math.floor(n()*8),eyebrows:Math.floor(n()*8),nose:Math.floor(n()*8),mouth:Math.floor(n()*8),hairStyle:Math.floor(n()*10),hairColor:Math.floor(n()*10),accessory:Math.floor(n()*12),bgColor:Math.floor(n()*12)};return e?{...a,...e}:a}function R(r){return r.accessory%12}var Ze=["Squircle"],Xe=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],er=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle","Side-look"],rr=["Chocolate","Sky","Emerald","Hazel","Storm","Amber","Violet","Gray"],tr=["Wispy","Straight","Natural","Arched","Angled","Worried","Bushy","Thin"],nr=["Shadow","Button","Soft","Nostrils","Pointed","Wide","Bridge","Snub"],ir=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],ar=["Bald","Crew","Curly","Side Part","Long","Buzz","Beanie","Cap","Mohawk","Bun"],or=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],lr=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid","Left Eyebrow Slit","Right Eyebrow Slit"],sr=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush","Lilac","Seafoam"];function xe(r){return{faceShape:Ze[0],skinColor:Xe[r.skinColor]??"Fair",eyeStyle:er[r.eyeStyle]??"Round",eyeColor:rr[r.eyeColor]??"Chocolate",eyebrows:tr[r.eyebrows]??"Wispy",nose:nr[r.nose]??"Shadow",mouth:ir[r.mouth]??"Smile",hairStyle:ar[r.hairStyle]??"Bald",hairColor:or[r.hairColor]??"Black",accessory:lr[R(r)]??"None",bgColor:sr[r.bgColor]??"Rose"}}function be(r){return(me(r)>>>0).toString(16).padStart(8,"0")}function Se(r,e){if(!(!r||!e))return e[r]}var cr=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function P(r,e){return e>>>r|e<<32-r}function re(r){let t=new TextEncoder().encode(r),n=t.length*8,a=64-(t.length+9)%64,l=t.length+1+(a===64?0:a)+8,s=new Uint8Array(l);s.set(t),s[t.length]=128;let c=new DataView(s.buffer);c.setUint32(l-4,n,!1);let i=1779033703,d=3144134277,h=1013904242,o=2773480762,m=1359893119,x=2600822924,b=528734635,f=1541459225,y=new Int32Array(64);for(let _=0;_<l;_+=64){for(let g=0;g<16;g++)y[g]=c.getInt32(_+g*4,!1);for(let g=16;g<64;g++){let A=P(7,y[g-15])^P(18,y[g-15])^y[g-15]>>>3,L=P(17,y[g-2])^P(19,y[g-2])^y[g-2]>>>10;y[g]=y[g-16]+A+y[g-7]+L|0}let u=i,T=d,M=h,O=o,C=m,E=x,$=b,D=f;for(let g=0;g<64;g++){let A=P(6,C)^P(11,C)^P(25,C),L=C&E^~C&$,G=D+A+L+cr[g]+y[g]|0,N=P(2,u)^P(13,u)^P(22,u),B=u&T^u&M^T&M,W=N+B|0;D=$,$=E,E=C,C=O+G|0,O=M,M=T,T=u,u=G+W|0}i=i+u|0,d=d+T|0,h=h+M|0,o=o+O|0,m=m+C|0,x=x+E|0,b=b+$|0,f=f+D|0}let I=new Uint8Array(32),S=new DataView(I.buffer);return S.setUint32(0,i,!1),S.setUint32(4,d,!1),S.setUint32(8,h,!1),S.setUint32(12,o,!1),S.setUint32(16,m,!1),S.setUint32(20,x,!1),S.setUint32(24,b,!1),S.setUint32(28,f,!1),I}function $e(r){return Array.from(re(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}var Ce=Object.freeze(["Frost","Solar","Coral","Amber","Mossy","Lunar","Misty","Alpine","Autumn","Breeze","Cerulean","Cloudy","Cosmic","Crystal","Dewy","Dusty","Earthy","Floral","Forest","Frozen","Glacial","Golden","Grassy","Harbor","Ivory","Jasmine","Lagoon","Leafy","Lush","Marine","Meadow","Mineral","Mosaic","Nectar","Nordic","Oceanic","Orchid","Pearly","Petal","Polar","Prairie","Rain","River","Rocky","Sandy","Savanna","Shore","Sierra","Snowy","Spring","Starry","Stone","Summer","Sunset","Tidal","Timber","Tropic","Tundra","Valley","Verdant","Winding","Winter","Woody","Bloom","Blossom","Brook","Canyon","Cedar","Cloud","Comet","Copper","Dawn","Delta","Dune","Eclipse","Fern","Flame","Flora","Glade","Azure","Cobalt","Crimson","Indigo","Scarlet","Sapphire","Emerald","Ruby","Garnet","Onyx","Jade","Turquoise","Magenta","Plum","Russet","Tawny","Burnt","Gilded","Platinum","Bronze","Chrome","Pearl","Opal","Blush","Rosy","Dusky","Inky","Ashen","Cream","Slate","Charcoal","Steel","Pewter","Honey","Saffron","Citrus","Lemon","Tangerine","Peach","Apricot","Vermilion","Mauve","Lilac","Periwinkle","Cerise","Maroon","Burgundy","Wine","Berry","Cherry","Mint","Olive","Teal","Navy","Cyan","Neon","Pastel","Muted","Lustrous","Gleaming","Glossy","Shining","Glowing","Luminous","Brilliant","Sparkling","Shimmering","Iridescent","Prismatic","Spectral","Twilight","Sunrise","Sunlit","Moonlit","Starlit","Candlelit","Firelit","Sunbeam","Afterglow","Halo","Flicker","Glow","Ray","Beam","Blaze","Glint","Spark","Arc","Prism","Spectrum","Rainbow","Aurora","Nebula","Stellar","Astral","Lucent","Frosted","Swift","Bold","Keen","Brave","Noble","Serene","Fierce","Gentle","Agile","Alert","Astute","Candid","Clever","Daring","Eager","Earnest","Fair","Gallant","Graceful","Hardy","Honest","Humble","Jovial","Joyful","Kind","Loyal","Merry","Mindful","Nimble","Patient","Plucky","Proud","Quick","Ready","Resilient","Savvy","Sincere","Skilled","Steady","Stout","Strong","Sure","Tender","True","Valiant","Willing","Wise","Witty","Worthy","Zealous","Active","Adept","Ardent","Avid","Benign","Bright","Civil","Clean","Clear","Composed","Content","Courtly","Crafty","Curious","Decent","Devout","Diligent","Direct","Driven","Dynamic","Elegant","Elite","Even","Exact","Famed","Fervent","Fine","Firm","Fit","Fluid","Focal","Fond","Frank","Free","Fresh","Friendly","Frugal","Gifted","Glad","Grand","Great","Green","Grounded","Hale","Happy","Hearty","Heroic","Ideal","Infinite","Inner","Intact","Intent","Just","Lively","Lucky","Major","Mellow","Mighty","Modest","Natural","Neat","Optimal","Original","Pacific","Peaceful","Pious","Pleased","Poised","Polite","Popular","Potent","Precious","Premier","Prime","Proper","Proven","Pure","Quiet","Rapid","Rare","Real","Regal","Rich","Rising","Robust","Royal","Sacred","Safe","Scenic","Secure","Senior","Sharp","Simple","Smart","Smooth","Snug","Social","Solid","Sound","Special","Stable","Stately","Still","Super","Supreme","Sweet","Thorough","Tidy","Top","Total","Tough","Trim","Trusted","Ultimate","Unique","United","Upper","Useful","Valid","Valued","Varied","Vital","Vivid","Vocal","Whole","Wide","Young","Zesty","Iron","Gold","Silver","Marble","Granite","Velvet","Satin","Silk","Linen","Cotton","Suede","Denim","Canvas","Leather","Wooden","Bamboo","Wicker","Woven","Braided","Knit","Lace","Mesh","Fiber","Glass","Mirror","Diamond","Flint","Basalt","Obsidian","Chalk","Clay","Gravel","Pebble","Cobble","Brick","Tile","Resin","Fossil","Shell","Bone","Feather","Plush","Brushed","Polished","Hammered","Forged","Cast","Molten","Tempered","Etched","Carved","Sculpted","Spun","Pressed","Rolled","Folded","Layered","Stacked","Ribbed","Matte","Lacquered","Enameled","Glazed","Painted","Dyed","Stained","Refined","Distilled","Purified","Filtered","Alloyed","Plated","Coated","Sealed","Bonded","Fused","Welded","Riveted","Textured","Grained","Veined","Flecked","Speckled","Dappled","Streaked","Banded","Striped","Checkered","Waxed","Oiled","Cured","Tanned","Smoked","Burnished","Antiqued","Patina","Weathered","Aged","Rustic","Hewn","Vast","Broad","Deep","High","Tall","Giant","Colossal","Massive","Immense","Boundless","Endless","Sweeping","Spanning","Extended","Towering","Soaring","Lofty","Elevated","Raised","Summit","Apex","Crest","Crown","Pinnacle","Zenith","Ridge","Ledge","Level","Hollow","Compact","Dense","Thick","Narrow","Slender","Micro","Mini","Small","Ample","Hefty","Jumbo","Mega","Ultra","Macro","Central","Core","Outer","Lateral","Radial","Spiral","Orbital","Linear","Planar","Spherical","Rounded","Angular","Pointed","Tapered","Curved","Arced","Twisted","Coiled","Fractal","Cellular","Quantum","Photon","Plasma","Kinetic","Static","Charged","Maximal","Atomic","Nano","Tiered","Strata","Nested","Stepped","Graded","Scaled","Proportioned","Modular","Symmetric","Parallel","Flowing","Drifting","Gliding","Sailing","Floating","Climbing","Leaping","Bounding","Sprinting","Dashing","Rushing","Surging","Cascading","Rolling","Tumbling","Spinning","Whirling","Twisting","Swirling","Pulsing","Beating","Humming","Buzzing","Ringing","Chiming","Singing","Dancing","Swaying","Waving","Rippling","Bubbling","Fizzing","Crackling","Snapping","Clicking","Tapping","Drumming","Thrumming","Vibrant","Magnetic","Electric","Blazing","Burning","Fiery","Volcanic","Thermal","Warming","Cooling","Chilling","Brisk","Crisp","Breezy","Gusty","Windy","Airy","Light","Buoyant","Weightless","Fleet","Peppy","Zippy","Snappy","Speedy","Sonic","Turbo","Warp","Express","Instant","Darting","Flying","Jetting","Cruising","Coasting","Rhythmic","Cycling","Pacing","Striding","Marching","Trotting","Galloping","Bouncing","Vaulting","Arching","Launched","Propelled","Hovering","Orbiting","Revolving","Rotating","Pivoting","Swinging","Rocking","Tilting","Shifting","Sliding","Skating","Surfing","Diving","Plunging","Dipping","Wading","Celestial","Ethereal","Mystic","Arcane","Ancient","Eternal","Timeless","Ageless","Enduring","Lasting","Perpetual","Legendary","Mythic","Epic","Fabled","Storied","Historic","Classic","Vintage","Retro","Modern","Future","Digital","Cyber","Virtual","Pixel","Binary","Omega","Alpha","Beta","Gamma","Sigma","Theta","Lambda","Kappa","Zeta","Epsilon","Omni","Dual","Triple","Nexus","Vertex","Vector","Matrix","Cipher","Enigma","Phantom","Mirage","Dream","Vision","Oracle","Prophet","Sage","Shaman","Druid","Artisan","Maestro","Virtuoso","Savant","Prodigy","Maven","Guru","Mentor","Guide","Scout","Pioneer","Voyager","Wanderer","Nomad","Rover","Ranger","Sentinel","Guardian","Keeper","Warden","Champion","Vanguard","Herald","Emissary","Envoy","Ambassador","Steward","Curator","Patron","Benefactor","Founder","Architect","Builder","Maker","Crafter","Weaver","Forger","Smith","Wright","Mason","Brewer","Baker","Tanner","Dyer","Scribe","Bard","Minstrel","Troubadour","Storyteller","Chronicler","Lorekeeper","Archivist","Tranquil","Placid","Hushed","Muffled","Soft","Subtle","Faint","Dim","Pale","Warm","Cool","Taut","Tense","Cozy","Homey","Pastoral","Sylvan","Bucolic","Idyllic","Quaint","Charming","Lovely","Pretty","Dapper","Natty","Chic","Posh","Classy","Fancy","Ornate","Lavish","Opulent","Majestic","Dignified","August","Solemn","Sober","Heartfelt","Genuine","Authentic","Novel","Singular","Distinct","Chosen","Select","Premium","Deluxe","Superior","Exquisite","Superb","Splendid","Glorious","Sublime","Resonant","Harmonic","Melodic","Lyrical","Poetic","Seamless","Effortless","Organic","Primal","Devoted","Dedicated","Committed","Focused","Determined","Resolute","Steadfast","Unwavering","Constant","Faithful","Reliable","Dependable","Trusty","Anchored","Moored","Sheltered","Protected","Guarded","Shielded","Fortified","Reinforced","Braced","Bolstered","Supported","Upheld","Sustained","Preserved","Conserved","Stored","Vaulted","Locked","Secured","Fastened","Linked","Joined","Connected","Paired","Matched","Balanced","Aligned","Centered","Aimed","Directed","Guided","Steered","Piloted","Navigated","Charted","Mapped","Tracked","Pursued","Discovered","Unveiled","Displayed","Presented","Granted","Bestowed","Conferred","Sapient","Sentient","Radiant","Fertile","Abundant","Bountiful","Plentiful","Prolific","Thriving","Flourishing","Blooming","Budding","Growing","Expanding","Advancing","Progressing","Evolving","Maturing","Ripening","Developing","Emerging","Nascent","Incipient","Dawning","Unfolding","Awakening","Stirring","Kindling","Igniting","Sparking","Triggering","Launching","Initiating","Pioneering","Trailblazing","Groundbreaking","Innovative","Inventive","Creative","Imaginative","Inspired","Visionary","Prophetic","Prescient","Insightful","Perceptive","Observant","Watchful","Vigilant","Attentive","Thoughtful","Considerate","Caring","Nurturing","Fostering","Cultivating","Tending","Pruning","Trimming","Shaping","Forming","Molding","Fashioning","Designing","Drafting","Sketching","Drawing","Painting","Coloring","Tinting","Shading","Blending","Mixing","Merging","Combining","Uniting","Fusing","Melding","Weaving","Knitting","Stitching","Sewing","Quilting","Patching","Mending","Healing","Restoring","Renewing","Reviving","Refreshing","Rejuvenating","Invigorating","Energizing","Empowering","Strengthening","Fortifying","Hardening","Tempering","Seasoning","Curing","Aging","Mellowing","Softening","Smoothing","Leveling","Planing","Sanding","Buffing","Burnishing","Radiating","Beaming","Lighting","Illuminating","Brightening","Clarifying","Purifying","Filtering","Distilling","Condensing","Concentrating","Focusing","Directing","Channeling","Terraced","Ascending","Streaming","Umber","Careful","Perfecting","Glittering","Twinkling","Verdure","Auroral","Boreal","Austral","Temperate"]),ke=Object.freeze(["Falcon","Hawk","Eagle","Owl","Heron","Crane","Swan","Dove","Raven","Finch","Robin","Wren","Lark","Jay","Ibis","Kite","Osprey","Condor","Pelican","Stork","Sparrow","Tern","Puffin","Parrot","Toucan","Kingfisher","Flamingo","Quail","Pheasant","Grouse","Oriole","Warbler","Thrush","Starling","Magpie","Swallow","Martin","Plover","Curlew","Sandpiper","Wolf","Fox","Bear","Stag","Elk","Moose","Bison","Lynx","Cougar","Panther","Jaguar","Leopard","Tiger","Lion","Cheetah","Gazelle","Antelope","Impala","Zebra","Giraffe","Rhino","Hippo","Otter","Beaver","Badger","Marten","Ferret","Mink","Hare","Rabbit","Squirrel","Chipmunk","Porcupine","Hedgehog","Armadillo","Pangolin","Lemur","Gibbon","Tamarin","Capybara","Chinchilla","Ocelot","Margay","Coati","Kinkajou","Tapir","Okapi","Kudu","Oryx","Chamois","Orca","Dolphin","Whale","Narwhal","Walrus","Seal","Manatee","Turtle","Iguana","Gecko","Chameleon","Newt","Salamander","Crab","Lobster","Seahorse","Starfish","Octopus","Squid","Jellyfish","Stingray","Barracuda","Marlin","Sailfish","Trout","Salmon","Mantis","Cricket","Firefly","Dragonfly","Cedar","Oak","Pine","Birch","Maple","Elm","Ash","Willow","Cypress","Redwood","Sequoia","Spruce","Fir","Larch","Yew","Beech","Alder","Poplar","Aspen","Walnut","Hickory","Teak","Mahogany","Ebony","Bamboo","Palm","Acacia","Baobab","Banyan","Olive","Laurel","Magnolia","Lotus","Orchid","Iris","Lily","Rose","Tulip","Daisy","Aster","Dahlia","Peony","Jasmine","Violet","Clover","Fern","Moss","Lichen","Ivy","Vine","Reed","Sage","Basil","Thyme","Mint","Dill","Fennel","Sorrel","Yarrow","Thistle","Heather","Bluebell","Primrose","Marigold","Sunflower","Zinnia","Pansy","Poppy","Crocus","Snowdrop","Foxglove","Honeysuckle","Wisteria","Hibiscus","Plumeria","Gardenia","Camellia","Begonia","Azalea","Oleander","Canyon","Ridge","Peak","Summit","Cliff","Bluff","Mesa","Butte","Plateau","Terrace","Valley","Basin","Gorge","Ravine","Gulch","Fjord","Inlet","Bay","Cove","Harbor","Lagoon","Reef","Atoll","Isle","Peninsula","Cape","Shoal","Bank","Ledge","Shelf","Dune","Desert","Steppe","Tundra","Glacier","Moraine","Geyser","Oasis","Delta","Estuary","Marsh","Bog","Swamp","Fen","Moor","Heath","Meadow","Prairie","Savanna","Glen","Dale","Dell","Vale","Hollow","Grove","Copse","Thicket","Taiga","Mangrove","Wetland","Cascade","Brook","Creek","Stream","River","Lake","Pond","Pool","Tarn","Loch","Falls","Fountain","Grotto","Cavern","Cave","Tunnel","Arch","Bridge","Ford","Pass","Trail","Path","Route","Caldera","Crater","Vent","Spire","Needle","Dome","Gateway","Portal","Threshold","Verge","Brink","Edge","Rim","Brow","Crest","Promontory","Headland","Spit","Tombolo","Isthmus","Strait","Narrows","Sound","Bight","Reach","Stretch","Expanse","Clearing","Glade","Knoll","Hillock","Mound","Tor","Crag","Scarp","Escarpment","Comet","Meteor","Asteroid","Nebula","Galaxy","Quasar","Pulsar","Star","Sun","Moon","Planet","Orbit","Eclipse","Corona","Flare","Nova","Cosmos","Void","Abyss","Ether","Zenith","Nadir","Horizon","Aurora","Meridian","Equinox","Solstice","Phase","Cycle","Epoch","Eon","Era","Dawn","Dusk","Twilight","Night","Noon","Morning","Evening","Sunset","Sunrise","Daybreak","Nightfall","Starlight","Moonbeam","Sunray","Skyline","Firmament","Canopy","Infinity","Vega","Rigel","Altair","Deneb","Sirius","Polaris","Arcturus","Antares","Lyra","Orion","Draco","Phoenix","Hydra","Corvus","Cygnus","Aquila","Andromeda","Pegasus","Perseus","Gemini","Centauri","Cassiopeia","Scorpius","Sagittarius","Capella","Procyon","Aldebaran","Betelgeuse","Spica","Prism","Quill","Forge","Anvil","Helm","Rune","Atlas","Compass","Anchor","Beacon","Bell","Bugle","Drum","Flute","Harp","Horn","Lyre","Pipe","Gong","Chime","Cymbal","Fiddle","Trumpet","Viola","Cello","Oboe","Lute","Mandolin","Zither","Sitar","Banjo","Lantern","Torch","Candle","Lamp","Globe","Lens","Scope","Mirror","Frame","Easel","Palette","Brush","Chisel","Mallet","Hammer","Tongs","Ladle","Kettle","Crucible","Mortar","Pestle","Flask","Vial","Beaker","Alembic","Furnace","Kiln","Loom","Shuttle","Bobbin","Spool","Thimble","Pin","Clasp","Buckle","Brooch","Pendant","Amulet","Talisman","Charm","Token","Coin","Medal","Badge","Shield","Banner","Flag","Pennant","Sigil","Stamp","Emblem","Totem","Icon","Statue","Obelisk","Monolith","Cairn","Tablet","Scroll","Tome","Codex","Ledger","Journal","Chronicle","Almanac","Manual","Gazette","Folio","Pamphlet","Broadsheet","Parchment","Vellum","Papyrus","Inkwell","Quiver","Satchel","Pouch","Casket","Coffer","Chest","Crate","Barrel","Quartz","Opal","Onyx","Agate","Garnet","Topaz","Beryl","Zircon","Spinel","Peridot","Jasper","Amethyst","Citrine","Tourmaline","Malachite","Azurite","Lapis","Pyrite","Galena","Mica","Talc","Gypsum","Calcite","Dolomite","Basalt","Granite","Marble","Slate","Shale","Sandstone","Limestone","Obsidian","Pumice","Tuff","Chert","Flint","Chalcedony","Carnelian","Sardonyx","Moonstone","Sunstone","Labradorite","Tanzanite","Kunzite","Rhodonite","Sodalite","Chrysocolla","Aventurine","Fluorite","Seraphinite","Charoite","Sugilite","Larimar","Prehnite","Danburite","Scolecite","Celestite","Amazonite","Howlite","Lepidolite","Storm","Thunder","Lightning","Breeze","Gale","Squall","Typhoon","Cyclone","Monsoon","Tempest","Zephyr","Chinook","Mistral","Sirocco","Foehn","Bora","Rain","Drizzle","Shower","Downpour","Deluge","Flood","Torrent","Current","Tide","Wave","Swell","Surf","Spray","Foam","Mist","Fog","Haze","Dew","Frost","Ice","Snow","Sleet","Hail","Rime","Thaw","Flow","Drift","Eddy","Vortex","Whirl","Spiral","Funnel","Column","Plume","Wisp","Streak","Band","Front","Trough","Rainbow","Halo","Mirage","Shimmer","Glimmer","Tower","Turret","Bastion","Citadel","Fortress","Castle","Palace","Manor","Lodge","Cabin","Cottage","Villa","Ranch","Barn","Silo","Mill","Foundry","Workshop","Studio","Gallery","Museum","Library","Archive","Treasury","Vault","Chamber","Hall","Court","Plaza","Garden","Balcony","Porch","Arcade","Colonnade","Pergola","Pavilion","Gazebo","Kiosk","Chapel","Temple","Shrine","Monastery","Abbey","Cathedral","Basilica","Minaret","Pagoda","Stupa","Pyramid","Arena","Stadium","Forum","Market","Bazaar","Emporium","Depot","Station","Terminal","Dock","Wharf","Pier","Jetty","Quay","Marina","Lighthouse","Watchtower","Outpost","Camp","Shelter","Refuge","Sanctuary","Haven","Retreat","Nest","Aerie","Burrow","Den","Lair","Roost","Perch","Bower","Arbor","Alcove","Sextant","Astrolabe","Sundial","Hourglass","Pendulum","Gyroscope","Turbine","Dynamo","Generator","Piston","Valve","Lever","Pulley","Winch","Derrick","Gantry","Scaffold","Trellis","Lattice","Grid","Net","Web","Axle","Gear","Cog","Sprocket","Chain","Link","Cable","Wire","Thread","Cord","Rope","Rigging","Mast","Boom","Spar","Keel","Hull","Rudder","Tiller","Wheel","Chart","Map","Gauge","Meter","Scale","Caliper","Ruler","Level","Plumb","Protractor","Template","Stencil","Mold","Die","Lathe","Bellows","Retort","Condenser","Centrifuge","Spectrometer","Oscilloscope","Theodolite","Transit","Sounding","Probe","Sensor","Relay","Switch","Circuit","Diode","Quest","Saga","Legend","Myth","Fable","Ballad","Anthem","Hymn","Ode","Sonnet","Verse","Stanza","Canto","Chorus","Refrain","Motif","Theme","Arc","Prologue","Epilogue","Prelude","Overture","Finale","Crescendo","Cadence","Tempo","Rhythm","Pulse","Beat","Tone","Note","Chord","Harmony","Melody","Lyric","Opus","Suite","Etude","Fugue","Canon","March","Waltz","Rondo","Aria","Duet","Trio","Quartet","Ensemble","Guild","League","Order","Council","Assembly","Conclave","Synod","Quorum","Cohort","Legion","Brigade","Battalion","Regiment","Division","Corps","Fleet","Squadron","Patrol","Convoy","Caravan","Expedition","Voyage","Journey","Trek","Odyssey","Passage","Crossing","Venture","Enterprise","Mission","Campaign","Crusade","Pilgrimage","Safari","Sortie","Foray","Rally","Charge","Advance","Concord","Ember","Blaze","Inferno","Pyre","Spark","Cinder","Smoke","Vapor","Steam","Nimbus","Cumulus","Cirrus","Stratus","Billow","Puff","Wake","Ripple","Surge","Ebb","Flux","Gush","Rush","Spring","Well","Font","Source","Origin","Root","Seed","Sprout","Bud","Bloom","Petal","Leaf","Branch","Limb","Trunk","Bark","Grain","Fiber","Pulp","Core","Sap","Resin","Nectar","Pollen","Spore","Frond","Tendril","Runner","Shoot","Stalk","Stem","Thorn","Burr","Cone","Acorn","Pinecone","Nutshell","Keystone","Capstone","Milestone","Cornerstone","Foundation","Bedrock","Pillar","Buttress","Parapet","Battlement","Barbican","Gatehouse","Drawbridge","Portcullis","Moat","Stockade","Palisade","Bulwark","Levee","Embankment","Causeway","Aqueduct","Viaduct","Trestle","Span","Lintel","Plinth","Pedestal","Dais","Rostrum","Podium","Stage","Platform","Deck","Landing","Berth","Channel","Lock","Weir","Dam","Spillway","Flume","Chute","Sluice","Nozzle","Spout","Faucet","Cistern","Wellspring","Headwater","Watershed","Alluvium","Loam","Humus","Peat","Marl","Silt","Writ","Clamp","Eyepiece","Traverse","Stride","Parley","Char","Trace","Confluence","Rampart"]),we=Object.freeze(new Set([]));function ur(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}var gr=`solnames-${"v1"}:`;function te(r,e="display",t){let n=q(r,t);switch(e){case"short":return n.short;case"display":return n.name;case"tag":return n.tag;case"full":return n.full}}function q(r,e){let t=e?.adjectives??Ce,n=e?.nouns??ke,a=e?.blockedCombos??we,l=e?.domain?`${e.domain}:`:gr,s=re(l+r),c=$e(l+r),i=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])>>>0,d=ur(i),h=t[Math.floor(d()*t.length)],o=n[Math.floor(d()*n.length)];for(;a.has(h+o);)h=t[Math.floor(d()*t.length)],o=n[Math.floor(d()*n.length)];let m=t[Math.floor(d()*t.length)],x=n[Math.floor(d()*n.length)],b=c.slice(16,20),f=e?.separator??" ";return{short:h,name:h+f+o,tag:h+f+o+"#"+b,full:h+f+o+"-"+m+f+x,adjective:h,noun:o,hash:c,discriminator:b}}function F(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function H(r,e,t){return"#"+[r,e,t].map(n=>Math.max(0,Math.min(255,Math.round(n))).toString(16).padStart(2,"0")).join("")}function k(r,e=.12){let[t,n,a]=F(r);return H(t*(1-e),n*(1-e),a*(1-e))}function v(r,e=.15){let[t,n,a]=F(r);return H(t+(255-t)*e,n+(255-n)*e,a+(255-a)*e)}function w(r,e,t=.5){let[n,a,l]=F(r),[s,c,i]=F(e);return H(n+(s-n)*t,a+(c-a)*t,l+(i-l)*t)}function ne(r){let[e,t,n]=F(r);return .299*e+.587*t+.114*n}function Te(r){let[e,t,n]=F(r).map(a=>{let l=a/255;return l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4)});return .2126*e+.7152*t+.0722*n}function Me(r,e){let t=Te(r),n=Te(e),a=Math.max(t,n),l=Math.min(t,n);return(a+.05)/(l+.05)}function Y(r){let e=ne(r),t=e<100,n=v(r,.1),a=k(r,.22),l=k(r,.05),[s,c,i]=F(r),d;if(e>120){let B=e>180?.03:.06,W=e>180?.3:.28,Z=e>180?.25:.22;d=H(Math.min(255,s+s*B),Math.max(0,c-c*W),Math.max(0,i-i*Z))}else d=H(Math.min(255,s+50),Math.max(0,c-10),Math.max(0,i-5));let h=.15+.18*(1-Math.min(1,e/240)),o=Math.max(0,Math.min(1,(e-60)/180)),m=w("#D89090","#A83848",o),x=1-Math.abs(e-140)/80,b=(t?.7:.62)+Math.max(0,x)*.12,f=w(r,m,Math.min(.82,b)),[y,I,S]=F(f),u=Math.abs(s-y)+Math.abs(c-I)+Math.abs(i-S)<60?w(r,m,.78):f,T=0;for(;Me(u,r)<1.8&&T<12;)u=k(u,.06),T++;let M=t?v(r,e<80?.35:e<100?.32:.25):k(r,.55),O=.2+.06*(1-Math.abs(e-100)/140),C=t?v(r,O):k(r,O),E=Math.max(0,Math.min(1,(e-100)/60)),$=w(v(r,.08),l,E);Me($,r)<1.05&&($=t?v($,.06):k($,.06));let D=k(r,.1+.06*(1-Math.min(1,e/160))),g=t?v(r,.18):k(r,.15),A=Math.max(0,Math.min(1,(e-60)/180)),L=w("#EDE8E0","#FBF8F2",A),G=e>140?.3:e>100?.5:.7,N=w("#808890",w(r,"#B0A898",.3),G);return{skinHi:n,skinLo:a,skinMid:l,isDark:t,cheekColor:d,cheekOpacity:h,lipColor:u,noseFill:C,browColor:M,earFill:$,earShadow:D,eyeWhiteAdapted:L,lidColor:g,accessoryColor:N}}var ie={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},ae={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow",8:"side-looking, shifted"},oe={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray",5:"amber",6:"violet",7:"steel gray"},Be={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled",5:"worried, furrowed",6:"bushy",7:"thin, delicate"},Pe={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils",4:"a pointed nose",5:"a wide, broad nose",6:"a nose with a visible bridge",7:"a small snub nose"},le={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},se={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid",10:"a left eyebrow slit",11:"a right eyebrow slit"},ve={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush",10:"lilac",11:"seafoam"};function J(r,e){let t=V(r),{includeBackground:n=!0,format:a="paragraph",perspective:l="third",name:s}=e??{};return a==="structured"?hr(t,n):a==="compact"?pr(t):yr(t,l,s,n)}function yr(r,e,t,n){let a=[],l=R(r),s=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",c=e==="first"?"I'm":"They're";a.push(`${s} a squircle face with ${ie[r.skinColor]??"warm"} skin`);let i=ae[r.eyeStyle]??"round",d=oe[r.eyeColor]??"dark";a.push(`${i} ${d} eyes`);let h=Be[r.eyebrows];h&&a.push(`${h} eyebrows`),a.push(e==="first"?"and am bald":"and is bald");let o=a[0];a.length>2?o+=", "+a.slice(1,-1).join(", ")+", "+a[a.length-1]:a.length===2&&(o+=" and "+a[1]),o+=".";let m=Pe[r.nose];if(m){let y=e==="first"?"I have":(t??"They")+(t?" has":" have");o+=` ${y} ${m}.`}let x=se[l];x&&(o+=` ${c} wearing ${x}.`);let b=le[r.mouth]??"a smile",f=e==="first"?"I have":(t??"They")+(t?" has":" have");if(o+=` ${f} ${b}.`,n){let y=ve[r.bgColor]??"colorful";o+=` The background is ${y}.`}return o}function hr(r,e){let t=R(r),n=["Face: squircle",`Skin: ${ie[r.skinColor]??"warm"}`,`Eyes: ${ae[r.eyeStyle]??"round"}, ${oe[r.eyeColor]??"dark"}`,`Eyebrows: ${Be[r.eyebrows]??"wispy"}`],a=Pe[r.nose];a&&n.push(`Nose: ${a.replace(/^a /,"")}`),n.push(`Mouth: ${le[r.mouth]??"smile"}`),n.push("Hair: bald");let l=se[t];return l&&n.push(`Accessory: ${l}`),e&&n.push(`Background: ${ve[r.bgColor]??"colorful"}`),n.join(`
2
+ `)}function pr(r){let e=R(r),t=[];t.push("squircle face"),t.push(`${ie[r.skinColor]??"warm"} skin`),t.push(`${oe[r.eyeColor]??"dark"} ${ae[r.eyeStyle]??"round"} eyes`),t.push("bald");let n=se[e];return n&&t.push(n),t.push((le[r.mouth]??"smiling").replace(/^a /,"")),t.join(", ")}function Q(r){return`SolFace avatar: ${J(r,{format:"compact",includeBackground:!1})}`}function Fe(r,e){let t=J(r,{perspective:"first",name:e,includeBackground:!1,format:"paragraph"});return`My visual identity is a SolFace avatar (ID: ${(fr(r)>>>0).toString(16).padStart(8,"0")}) derived from my wallet address. ${t} This appearance is deterministic \u2014 anyone who looks up my wallet will see the same face.`}function fr(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function mr(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function xr(r,e,t,n,a,l,s,c,i,d,h){if(i)return"";let o="<defs>";return o+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,o+=`<stop offset="0%" stop-color="${t}"/>`,o+=`<stop offset="50%" stop-color="${e}"/>`,o+=`<stop offset="100%" stop-color="${n}"/>`,o+="</linearGradient>",o+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,o+=`<stop offset="0%" stop-color="${v(l,.12)}"/>`,o+=`<stop offset="100%" stop-color="${k(l,.12)}"/>`,o+="</linearGradient>",d&&(o+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,o+=`<stop offset="0%" stop-color="#ffffff" stop-opacity="${h}"/>`,o+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',o+="</radialGradient>",o+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,o+=`<stop offset="0%" stop-color="${n}" stop-opacity="0.30"/>`,o+=`<stop offset="100%" stop-color="${n}" stop-opacity="0"/>`,o+="</radialGradient>",o+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,o+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,o+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,o+="</radialGradient>",o+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,o+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,o+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,o+="</radialGradient>"),o+="</defs>",o}function br(r,e,t){return""}function Sr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function $r(r,e,t,n=1){let a=t?e:`url(#${r}sg)`,l=n<1?` opacity="${n}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${a}"${l}/>`}function Cr(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function kr(r,e,t,n,a){return""}function wr(r,e,t,n,a){let i="";switch(r){case 0:i+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:i+=`<circle cx="25" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+.5}" cy="${33-.5}" r="0.5" fill="white" opacity="0.4"/>`),i+=`<circle cx="39" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+.5}" cy="${33-.5}" r="0.5" fill="white" opacity="0.4"/>`);break;case 2:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),i+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:i+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:i+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:i+=`<path d="M21 33 Q25 ${33+4.5} 29 33" fill="none" stroke="${e}" stroke-width="2" stroke-linecap="round"/>`,i+=`<path d="M35 33 Q39 ${33+4.5} 43 33" fill="none" stroke="${e}" stroke-width="2" stroke-linecap="round"/>`;break;case 6:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`;break;case 7:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,i+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;case 8:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="24" cy="33" r="2" fill="${e}"/>`,a&&(i+=`<circle cx="${25-.3}" cy="${33-.8}" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="38" cy="33" r="2" fill="${e}"/>`,a&&(i+=`<circle cx="${39-.3}" cy="${33-.8}" r="0.7" fill="white" opacity="0.8"/>`);break;default:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return a&&r!==1&&r!==5&&(i+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`,i+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`),i}function Tr(r,e,t=!0){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;case 5:return`<line x1="22" y1="26" x2="28" y2="28" stroke="${e}" stroke-width="1.1" stroke-linecap="round"/><line x1="36" y1="28" x2="42" y2="26" stroke="${e}" stroke-width="1.1" stroke-linecap="round"/>`;case 6:{let s=t?"2.0":"1.5";return`<path d="M21 ${27+.5} Q25 25 29 ${27+.5}" fill="none" stroke="${e}" stroke-width="${s}" stroke-linecap="round"/><path d="M35 ${27+.5} Q39 25 43 ${27+.5}" fill="none" stroke="${e}" stroke-width="${s}" stroke-linecap="round"/>`}case 7:return`<path d="M${25-3.5} 27 Q25 ${27-1.5} ${25+3.5} 27" fill="none" stroke="${e}" stroke-width="0.5" stroke-linecap="round"/><path d="M${39-3.5} 27 Q39 ${27-1.5} ${39+3.5} 27" fill="none" stroke="${e}" stroke-width="0.5" stroke-linecap="round"/>`;default:return""}}function Mr(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;case 4:return`<path d="M32 37 L30 ${39+1.5} L34 ${39+1.5} Z" fill="${e}" opacity="0.4"/>`;case 5:return`<ellipse cx="32" cy="39" rx="3.5" ry="1.5" fill="${e}" opacity="0.35"/>`;case 6:return`<line x1="32" y1="36" x2="32" y2="40" stroke="${e}" stroke-width="1.2" stroke-linecap="round" opacity="0.4"/>`;case 7:return`<circle cx="32" cy="${39+.5}" r="2" fill="${e}" opacity="0.35"/><ellipse cx="32" cy="${39-.5}" rx="1" ry="0.5" fill="${e}" opacity="0.15"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function Br(r,e,t){let l=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${l}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<path d="M28 ${45+.5} Q32 ${45+1.5} 36 ${45+.5}" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function Re(r,e,t,n,a,l="#3a2a2a",s="#a0785a",c="#E8BA8B"){switch(r){case 0:return"";case 1:return`<circle cx="40" cy="44" r="0.8" fill="${l}"/>`;case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${n}"/><circle cx="10" cy="41" r="2" fill="${n}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${a}" opacity="0.85"/>`;case 6:return`<g fill="${s}" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>`;case 7:return`<circle cx="10" cy="37" r="1.2" fill="${n}"/><circle cx="54" cy="37" r="1.2" fill="${n}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="9" height="4.5" rx="1.2" fill="#f0d0a0" transform="rotate(-15 42 40)"/><rect x="39.5" y="38.5" width="6" height="3.5" rx="0.8" fill="#f5ddb5" transform="rotate(-15 42 40)"/><circle cx="42.5" cy="40.25" r="0.5" fill="#d4b898" transform="rotate(-15 42 40)"/></g>';case 10:return`<line x1="23" y1="24.8" x2="23.8" y2="29.2" stroke="${c}" stroke-width="1.3" stroke-linecap="butt"/>`;case 11:return`<line x1="41" y1="24.8" x2="40.2" y2="29.2" stroke="${c}" stroke-width="1.3" stroke-linecap="butt"/>`;default:return""}}function U(r,e){let{size:t=64,theme:n,traitOverrides:a,enableBlink:l,className:s,colorOverrides:c}=e??{},i=V(r,a),d=e?.detail??"auto",h=d==="full"||d==="auto"&&t>=48,o=n?.flat??!1,m=n?.skinColors??ye,x=n?.eyeColors??he,b=n?.hairColors??pe,f=n?.bgColors??fe,y=c?.skin??m[i.skinColor%m.length],I=c?.eyes??x[i.eyeColor%x.length],S=c?.hair??b[i.hairColor%b.length],_=c?.bg??f[i.bgColor%f.length],u=Y(y),T=n?.bgOpacity??1,M=n?.bgRadius??4,O=c?.eyebrow??n?.eyebrowColor??u.browColor,C=c?.nose??n?.noseColor??u.noseFill,E=c?.mouth??n?.mouthColor??u.lipColor,$=c?.accessory??n?.accessoryColor??u.accessoryColor,D=c?.eyeWhite??n?.eyeWhiteColor??u.eyeWhiteAdapted,g=n?.glassesColor??"#4a4a5a",A=n?.earringColor??w(y,"#d4a840",.4),L=n?.headbandColor??w(S,"#c04040",.5),G=n?.beautyMarkColor??"#3a2a2a",N=n?.freckleColor??"#a0785a",B="sf"+mr(r).toString(36),W=n?.cheekEnabled??!0,Z=n?.cheekColor??u.cheekColor,_e=n?.cheekOpacity??u.cheekOpacity,ue=i.hairStyle%10,K=R(i),De=s?` class="${s}"`:"",Ge=Q(r).replace(/"/g,"&quot;"),p=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${De} role="img" aria-label="${Ge}">`,He=n?.glowIntensity??.1;p+=xr(B,y,u.skinHi,u.skinLo,S,_,Z,_e,o,h&&W,He);let X=!!l,Ie=typeof l=="object"?l.duration??4:4,ge=typeof l=="object"?l.delay??0:0;if(X){let z=`sf-${r.slice(0,8)}`,ze=ge?` ${ge}s`:"";p+=`<style>@keyframes ${z}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${z}-eyes{animation:${z}-blink ${Ie}s ease-in-out${ze} infinite;transform-origin:32px 33px}</style>`}let Ne=o?_:`url(#${B}bg)`;p+=`<rect x="0" y="0" width="64" height="64" fill="${Ne}" opacity="${T}" rx="${M}"/>`,n?.hairEnabled!==!1&&(p+=br(ue,B,o)),n?.earsEnabled!==!1&&(p+=Sr(n?.earColor??u.earFill,u.earShadow));let We=n?.skinOpacity??1;p+=$r(B,y,o,We);let Ve=n?.shadowEnabled??!0;if(h&&W&&Ve&&(p+=Cr(B,o)),n?.hairEnabled!==!1&&(p+=kr(ue,B,S,y,o)),K===5&&n?.accessoriesEnabled!==!1&&(p+=Re(5,$,g,A,L,G,N,y)),X){let z=`sf-${r.slice(0,8)}`;p+=`<g class="${z}-eyes">`}return p+=wr(i.eyeStyle%9,I,D,n?.lidColor??u.lidColor,h),X&&(p+="</g>"),n?.eyebrowsEnabled!==!1&&(p+=Tr(i.eyebrows%8,O,h)),n?.noseEnabled!==!1&&(p+=Mr(i.nose%8,C)),p+=Br(i.mouth%8,E,u.isDark),K!==0&&K!==5&&n?.accessoriesEnabled!==!1&&(p+=Re(K,$,g,A,L,G,N,y)),n?.border&&(p+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${n.border.color}" stroke-width="${n.border.width}" rx="${M}"/>`),p+="</svg>",p}function ce(r,e){let t=U(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function Oe(r,e){let t=U(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var Pr={},vr={bgColors:["#1a1b23","#1e1428","#0a1e38","#1b2838","#201028","#141a28","#18122a","#1a2020","#221822","#1e1020","#1c1228","#0e201a"],eyeWhiteColor:"#d8d0c8",bgOpacity:1,bgRadius:4,border:{color:"#333340",width:.5}},Fr={bgColors:["#f5e8ea","#f0f0d8","#e4f0e6","#d8f0e8","#e0ece8","#dce8f0","#e0e4f0","#e0d8f0","#f0e0ee","#f0d8e4","#e8d8f0","#d8f0e8"],bgOpacity:1,bgRadius:8},Rr={skinColors:["#e8e8e8","#d4d4d4","#c0c0c0","#a8a8a8","#909090","#787878","#606060","#505050","#404040","#303030"],eyeColors:["#333","#555","#777","#999","#bbb"],hairColors:["#1a1a1a","#2a2a2a","#404040","#555","#707070","#888","#a0a0a0","#b8b8b8","#d0d0d0","#e0e0e0"],bgColors:["#e8e0e0","#e0e0d0","#d8e0d8","#d0e0d8","#d8e0e0","#d0d8e0","#d4d4e0","#d4d0e0","#e0d8e0","#e0d0d8","#d8d0e0","#d0e0d8"],mouthColor:"#666",eyebrowColor:"#555",accessoryColor:"#777",eyeWhiteColor:"#f0f0f0",bgOpacity:.5,bgRadius:4},Or={flat:!0},Er={flat:!0,bgOpacity:0},Ar={bgOpacity:.15,bgRadius:16,_glass:!0,_blurRadius:12,_saturate:1.8,_tintOpacity:.12,_tintColor:"rgba(255,255,255,1)",_borderOpacity:.25,_borderWidth:1,_borderColor:"rgba(255,255,255,0.25)",_specularOpacity:.25,_specularColor:"rgba(255,255,255,1)",_specularEnd:50,_lightAngle:135,_rimIntensity:.08,_shadowY:8,_shadowBlur:32,_shadowOpacity:.12},Lr={bgOpacity:.2,bgRadius:16,_glass:!0,_blurRadius:16,_saturate:2,_tintOpacity:.08,_tintColor:"rgba(0,0,0,1)",_borderOpacity:.15,_borderWidth:1,_borderColor:"rgba(255,255,255,0.15)",_specularOpacity:.15,_specularColor:"rgba(255,255,255,1)",_specularEnd:40,_lightAngle:135,_rimIntensity:.05,_shadowY:8,_shadowBlur:32,_shadowOpacity:.25},_r={flat:!0,_pixel:!0,_pixelDensity:16,_pixelRounded:!0,_pixelOutline:!0,_pixelOutlineColor:"#222",_pixelOutlineWidth:2},Dr={flat:!0,_pixel:!0,_pixelDensity:12,_pixelRounded:!1,_pixelOutline:!0,_pixelOutlineColor:"#000",_pixelOutlineWidth:2,_pixelScanlines:!0,_pixelScanlineOpacity:.1,_pixelScanlineSpacing:2,_pixelShadow:!0,_pixelShadowColor:"rgba(0,0,0,0.4)",_pixelShadowOffset:3},Gr={flat:!0,_pixel:!0,_pixelDensity:24,_pixelRounded:!0,_pixelOutline:!1},j={default:Pr,dark:vr,light:Fr,mono:Rr,flat:Or,transparent:Er,glass:Ar,glassDark:Lr,pixel:_r,pixelRetro:Dr,pixelClean:Gr};function Ee(r,e){let t=j[r];return t?e?{...t,...e}:t:e??{}}function Ae(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;return n?(n.innerHTML=U(e,t),()=>{n.innerHTML=""}):(console.warn(`[SolFaces] Element not found: ${r}`),()=>{})}function Hr(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;n&&(n.src=ce(e,t),n.alt=Q(e))}function de(r=document){r.querySelectorAll("[data-solface]").forEach(t=>{let n=t.getAttribute("data-solface");if(!n)return;let a=parseInt(t.getAttribute("data-solface-size")??"64",10),l=t.getAttribute("data-solface-blink")==="true",s=t.getAttribute("data-solface-theme"),c=t.getAttribute("data-solface-flat")==="true",i=t.getAttribute("data-solface-detail"),d=s&&s in j?j[s]:void 0;c&&d?d={...d,flat:!0}:c&&(d={flat:!0}),Ae(t,n,{size:a,enableBlink:l,theme:d,detail:i??"auto"})})}var Le={generateTraits:V,deriveName:te,deriveIdentity:q,getTraitLabels:xe,traitHash:be,resolveTheme:Se,effectiveAccessory:R,renderSVG:U,renderDataURI:ce,renderBase64:Oe,describe:J,altText:Q,agentPrompt:Fe,mount:Ae,setImg:Hr,autoInit:de,themes:j,getTheme:Ee,colors:{hexToRgb:F,rgbToHex:H,darken:k,lighten:v,blend:w,luminance:ne,deriveSkinColors:Y}};typeof window<"u"&&(window.SolFaces=Le);typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.querySelector("[data-solface]")&&de()}):document.querySelector("[data-solface]")&&de());var Ir=Le;return Ye(Nr);})();
3
3
  //# sourceMappingURL=solfaces.cdn.global.js.map