commit e29d3651fd775ddfddf4a6fa303d660e0350601d Author: askiiart Date: Sun Aug 25 22:52:09 2024 -0500 Initial commit; WIP diff --git a/AtkinsonHyperlegible-Bold.woff2 b/AtkinsonHyperlegible-Bold.woff2 new file mode 100644 index 0000000..19b6f67 Binary files /dev/null and b/AtkinsonHyperlegible-Bold.woff2 differ diff --git a/AtkinsonHyperlegible-BoldItalic.woff2 b/AtkinsonHyperlegible-BoldItalic.woff2 new file mode 100644 index 0000000..9ba2ce0 Binary files /dev/null and b/AtkinsonHyperlegible-BoldItalic.woff2 differ diff --git a/AtkinsonHyperlegible-Italic.woff2 b/AtkinsonHyperlegible-Italic.woff2 new file mode 100644 index 0000000..9f77e5a Binary files /dev/null and b/AtkinsonHyperlegible-Italic.woff2 differ diff --git a/AtkinsonHyperlegible-Regular.woff2 b/AtkinsonHyperlegible-Regular.woff2 new file mode 100644 index 0000000..73c00b9 Binary files /dev/null and b/AtkinsonHyperlegible-Regular.woff2 differ diff --git a/FiraCodeNerdFontMono-Regular.woff2 b/FiraCodeNerdFontMono-Regular.woff2 new file mode 100644 index 0000000..e996595 Binary files /dev/null and b/FiraCodeNerdFontMono-Regular.woff2 differ diff --git a/bee-movie.txt b/bee-movie.txt new file mode 100644 index 0000000..ca9f578 --- /dev/null +++ b/bee-movie.txt @@ -0,0 +1,4071 @@ +Scripts.com +Bee Movie +By Jerry Seinfeld + +NARRATOR: +(Black screen with text; The sound of buzzing bees can be heard) +According to all known laws +of aviation, + : +there is no way a bee +should be able to fly. + : +Its wings are too small to get +its fat little body off the ground. + : +The bee, of course, flies anyway + : +because bees don't care +what humans think is impossible. +BARRY BENSON: +(Barry is picking out a shirt) +Yellow, black. Yellow, black. +Yellow, black. Yellow, black. + : +Ooh, black and yellow! +Let's shake it up a little. +JANET BENSON: +Barry! Breakfast is ready! +BARRY: +Coming! + : +Hang on a second. +(Barry uses his antenna like a phone) + : +Hello? +ADAM FLAYMAN: + +(Through phone) +- Barry? +BARRY: +- Adam? +ADAM: +- Can you believe this is happening? +BARRY: +- I can't. I'll pick you up. +(Barry flies down the stairs) + : +MARTIN BENSON: +Looking sharp. +JANET: +Use the stairs. Your father +paid good money for those. +BARRY: +Sorry. I'm excited. +MARTIN: +Here's the graduate. +We're very proud of you, son. + : +A perfect report card, all B's. +JANET: +Very proud. +(Rubs Barry's hair) +BARRY= +Ma! I got a thing going here. +JANET: +- You got lint on your fuzz. +BARRY: +- Ow! That's me! + +JANET: +- Wave to us! We'll be in row 118,000. +- Bye! +(Barry flies out the door) +JANET: +Barry, I told you, +stop flying in the house! +(Barry drives through the hive,and is waved at by Adam who is reading a +newspaper) +BARRY== +- Hey, Adam. +ADAM: +- Hey, Barry. +(Adam gets in Barry's car) + : +- Is that fuzz gel? +BARRY: +- A little. Special day, graduation. +ADAM: +Never thought I'd make it. +(Barry pulls away from the house and continues driving) +BARRY: +Three days grade school, +three days high school... +ADAM: +Those were awkward. +BARRY: +Three days college. I'm glad I took +a day and hitchhiked around the hive. +ADAM== +You did come back different. +(Barry and Adam pass by Artie, who is jogging) +ARTIE: +- Hi, Barry! + +BARRY: +- Artie, growing a mustache? Looks good. +ADAM: +- Hear about Frankie? +BARRY: +- Yeah. +ADAM== +- You going to the funeral? +BARRY: +- No, I'm not going to his funeral. + : +Everybody knows, +sting someone, you die. + : +Don't waste it on a squirrel. +Such a hothead. +ADAM: +I guess he could have +just gotten out of the way. +(The car does a barrel roll on the loop-shaped bridge and lands on the +highway) + : +I love this incorporating +an amusement park into our regular day. +BARRY: +I guess that's why they say we don't need vacations. +(Barry parallel parks the car and together they fly over the graduating +students) +Boy, quite a bit of pomp... +under the circumstances. +(Barry and Adam sit down and put on their hats) + : +- Well, Adam, today we are men. + +ADAM: +- We are! +BARRY= +- Bee-men. +=ADAM= +- Amen! +BARRY AND ADAM: +Hallelujah! +(Barry and Adam both have a happy spasm) +ANNOUNCER: +Students, faculty, distinguished bees, + : +please welcome Dean Buzzwell. +DEAN BUZZWELL: +Welcome, New Hive Oity +graduating class of... + : +...9: + : +That concludes our ceremonies. + : +And begins your career +at Honex Industries! +ADAM: +Will we pick our job today? +(Adam and Barry get into a tour bus) +BARRY= +I heard it's just orientation. +(Tour buses rise out of the ground and the students are automatically +loaded into the buses) +TOUR GUIDE: +Heads up! Here we go. + +ANNOUNCER: +Keep your hands and antennas +inside the tram at all times. +BARRY: +- Wonder what it'll be like? +ADAM: +- A little scary. +TOUR GUIDE== +Welcome to Honex, +a division of Honesco + : +and a part of the Hexagon Group. +Barry: +This is it! +BARRY AND ADAM: +Wow. +BARRY: +Wow. +(The bus drives down a road an on either side are the Bee's massive +complicated Honey-making machines) +TOUR GUIDE: +We know that you, as a bee, +have worked your whole life + : +to get to the point where you +can work for your whole life. + : +Honey begins when our valiant Pollen +Jocks bring the nectar to the hive. + : +Our top-secret formula + : +is automatically color-corrected, + +scent-adjusted and bubble-contoured + : +into this soothing sweet syrup + : +with its distinctive +golden glow you know as... +EVERYONE ON BUS: +Honey! +(The guide has been collecting honey into a bottle and she throws it into +the crowd on the bus and it is caught by a girl in the back) +ADAM: +- That girl was hot. +BARRY: +- She's my cousin! +ADAM== +- She is? +BARRY: +- Yes, we're all cousins. +ADAM: +- Right. You're right. +TOUR GUIDE: +- At Honex, we constantly strive + : +to improve every aspect +of bee existence. + : +These bees are stress-testing +a new helmet technology. +(The bus passes by a Bee wearing a helmet who is being smashed into the +ground with fly-swatters, newspapers and boots. He lifts a thumbs up but +you can hear him groan) + : +ADAM== + +- What do you think he makes? +BARRY: +- Not enough. +TOUR GUIDE: +Here we have our latest advancement, +the Krelman. +(They pass by a turning wheel with Bees standing on pegs, who are each +wearing a finger-shaped hat) +Barry: +- Wow, What does that do? +TOUR GUIDE: +- Catches that little strand of honey + : +that hangs after you pour it. +Saves us millions. +ADAM: +(Intrigued) +Can anyone work on the Krelman? +TOUR GUIDE: +Of course. Most bee jobs are +small ones. +But bees know that every small job, +if it's done well, means a lot. + : +But choose carefully + : +because you'll stay in the job +you pick for the rest of your life. +(Everyone claps except for Barry) +BARRY: +The same job the rest of your life? +I didn't know that. +ADAM: + +What's the difference? +TOUR GUIDE: +You'll be happy to know that bees, +as a species, haven't had one day off + : +in 27 million years. +BARRY: +(Upset) +So you'll just work us to death? + : +We'll sure try. +(Everyone on the bus laughs except Barry. Barry and Adam are walking back +home together) +ADAM: +Wow! That blew my mind! +BARRY: +"What's the difference?" +How can you say that? + : +One job forever? +That's an insane choice to have to make. +ADAM: +I'm relieved. Now we only have +to make one decision in life. +BARRY: +But, Adam, how could they +never have told us that? +ADAM: +Why would you question anything? +We're bees. + : +We're the most perfectly +functioning society on Earth. + +BARRY: +You ever think maybe things +work a little too well here? +ADAM: +Like what? Give me one example. +(Barry and Adam stop walking and it is revealed to the audience that +hundreds of cars are speeding by and narrowly missing them in perfect +unison) +BARRY: +I don't know. But you know +what I'm talking about. +ANNOUNCER: +Please clear the gate. +Royal Nectar Force on approach. +BARRY: +Wait a second. Check it out. +(The Pollen jocks fly in, circle around and landing in line) + : +- Hey, those are Pollen Jocks! +ADAM: +- Wow. + : +I've never seen them this close. +BARRY: +They know what it's like +outside the hive. +ADAM: +Yeah, but some don't come back. +GIRL BEES: +- Hey, Jocks! +- Hi, Jocks! +(The Pollen Jocks hook up their backpacks to machines that pump the nectar +to trucks, which drive away) + +LOU LO DUVA: +You guys did great! + : +You're monsters! +You're sky freaks! +I love it! +(Punching the Pollen Jocks in joy) +I love it! +ADAM: +- I wonder where they were. +BARRY: +- I don't know. + : +Their day's not planned. + : +Outside the hive, flying who knows +where, doing who knows what. + : +You can't just decide to be a Pollen +Jock. You have to be bred for that. +ADAM== +Right. +(Barry and Adam are covered in some pollen that floated off of the Pollen +Jocks) +BARRY: +Look at that. That's more pollen +than you and I will see in a lifetime. +ADAM: +It's just a status symbol. +Bees make too much of it. +BARRY: +Perhaps. Unless you're wearing it +and the ladies see you wearing it. +(Barry waves at 2 girls standing a little away from them) + +ADAM== +Those ladies? +Aren't they our cousins too? +BARRY: +Distant. Distant. +POLLEN JOCK #1: +Look at these two. +POLLEN JOCK #2: +- Couple of Hive Harrys. +POLLEN JOCK #1: +- Let's have fun with them. +GIRL BEE #1: +It must be dangerous +being a Pollen Jock. +BARRY: +Yeah. Once a bear pinned me +against a mushroom! + : +He had a paw on my throat, +and with the other, he was slapping me! +(Slaps Adam with his hand to represent his scenario) +GIRL BEE #2: +- Oh, my! +BARRY: +- I never thought I'd knock him out. +GIRL BEE #1: +(Looking at Adam) +What were you doing during this? +ADAM: +Obviously I was trying to alert the authorities. +BARRY: +I can autograph that. + +(The pollen jocks walk up to Barry and Adam, they pretend that Barry and +Adam really are pollen jocks.) +POLLEN JOCK #1: +A little gusty out there today, +wasn't it, comrades? +BARRY: +Yeah. Gusty. +POLLEN JOCK #1: +We're hitting a sunflower patch +six miles from here tomorrow. +BARRY: +- Six miles, huh? +ADAM: +- Barry! +POLLEN JOCK #2: +A puddle jump for us, +but maybe you're not up for it. +BARRY: +- Maybe I am. +ADAM: +- You are not! +POLLEN JOCK #1: +We're going 0900 at J-Gate. + : +What do you think, buzzy-boy? +Are you bee enough? +BARRY: +I might be. It all depends +on what 0900 means. +(The scene cuts to Barry looking out on the hive-city from his balcony at +night) +MARTIN: + +Hey, Honex! +BARRY: +Dad, you surprised me. +MARTIN: +You decide what you're interested in? +BARRY: +- Well, there's a lot of choices. +- But you only get one. + : +Do you ever get bored +doing the same job every day? +MARTIN: +Son, let me tell you about stirring. + : +You grab that stick, and you just +move it around, and you stir it around. + : +You get yourself into a rhythm. +It's a beautiful thing. +BARRY: +You know, Dad, +the more I think about it, + : +maybe the honey field +just isn't right for me. +MARTIN: +You were thinking of what, +making balloon animals? + : +That's a bad job +for a guy with a stinger. + : + +Janet, your son's not sure +he wants to go into honey! +JANET: +- Barry, you are so funny sometimes. +BARRY: +- I'm not trying to be funny. +MARTIN: +You're not funny! You're going +into honey. Our son, the stirrer! +JANET: +- You're gonna be a stirrer? +BARRY: +- No one's listening to me! +MARTIN: +Wait till you see the sticks I have. +BARRY: +I could say anything right now. +I'm gonna get an ant tattoo! +(Barry's parents don't listen to him and continue to ramble on) +MARTIN: +Let's open some honey and celebrate! +BARRY: +Maybe I'll pierce my thorax. +Shave my antennae. + : +Shack up with a grasshopper. Get +a gold tooth and call everybody "dawg"! +JANET: +I'm so proud. +(The scene cuts to Barry and Adam waiting in line to get a job) +ADAM: +- We're starting work today! + +BARRY: +- Today's the day. +ADAM: +Come on! All the good jobs +will be gone. +BARRY: +Yeah, right. +JOB LISTER: +Pollen counting, stunt bee, pouring, +stirrer, front desk, hair removal... +BEE IN FRONT OF LINE: +- Is it still available? +JOB LISTER: +- Hang on. Two left! + : +One of them's yours! Congratulations! +Step to the side. +ADAM: +- What'd you get? +BEE IN FRONT OF LINE: +- Picking crud out. Stellar! +(He walks away) +ADAM: +Wow! +JOB LISTER: +Couple of newbies? +ADAM: +Yes, sir! Our first day! We are ready! +JOB LISTER: +Make your choice. +(Adam and Barry look up at the job board. There are hundreds of constantly +changing panels that contain available or unavailable jobs. It looks very +confusing) + +ADAM: +- You want to go first? +BARRY: +- No, you go. +ADAM: +Oh, my. What's available? +JOB LISTER: +Restroom attendant's open, +not for the reason you think. +ADAM: +- Any chance of getting the Krelman? +JOB LISTER: +- Sure, you're on. +(Puts the Krelman finger-hat on Adam's head) +(Suddenly the sign for Krelman closes out) + : +I'm sorry, the Krelman just closed out. +(Takes Adam's hat off) +Wax monkey's always open. +ADAM: +The Krelman opened up again. + : +What happened? +JOB LISTER: +A bee died. Makes an opening. See? +He's dead. Another dead one. + : +Deady. Deadified. Two more dead. + : +Dead from the neck up. +Dead from the neck down. That's life! + +ADAM: +Oh, this is so hard! +(Barry remembers what the Pollen Jock offered him and he flies off) +Heating, cooling, +stunt bee, pourer, stirrer, + : +humming, inspector number seven, +lint coordinator, stripe supervisor, + : +mite wrangler. Barry, what +do you think I should... Barry? +(Adam turns around and sees Barry flying away) + : +Barry! +POLLEN JOCK: +All right, we've got the sunflower patch +in quadrant nine... +ADAM: +(Through phone) +What happened to you? +Where are you? +BARRY: +- I'm going out. +ADAM: +- Out? Out where? +BARRY: +- Out there. +ADAM: +- Oh, no! +BARRY: +I have to, before I go +to work for the rest of my life. +ADAM: + +You're gonna die! You're crazy! +(Barry hangs up) +Hello? +POLLEN JOCK #2: +Another call coming in. + : +If anyone's feeling brave, +there's a Korean deli on 83rd + : +that gets their roses today. +BARRY: +Hey, guys. +POLLEN JOCK #1 == +- Look at that. +POLLEN JOCK #2: +- Isn't that the kid we saw yesterday? +LOU LO DUVA: +Hold it, son, flight deck's restricted. +POLLEN JOCK #1: +It's OK, Lou. We're gonna take him up. +(Puts hand on Barry's shoulder) +LOU LO DUVA: +(To Barry) Really? Feeling lucky, are you? +BEE WITH CLIPBOARD: +(To Barry) Sign here, here. Just initial that. + : +- Thank you. +LOU LO DUVA: +- OK. + : +You got a rain advisory today, + : + +and as you all know, +bees cannot fly in rain. + : +So be careful. As always, +watch your brooms, + : +hockey sticks, dogs, +birds, bears and bats. + : +Also, I got a couple of reports +of root beer being poured on us. + : +Murphy's in a home because of it, +babbling like a cicada! +BARRY: +- That's awful. +LOU LO DUVA: +(Still talking through megaphone) +- And a reminder for you rookies, + : +bee law number one, +absolutely no talking to humans! + : +All right, launch positions! +POLLEN JOCKS: +(The Pollen Jocks run into formation) + : +Buzz, buzz, buzz, buzz! Buzz, buzz, +buzz, buzz! Buzz, buzz, buzz, buzz! +LOU LU DUVA: +Black and yellow! +POLLEN JOCKS: + +Hello! +POLLEN JOCK #1: +(To Barry)You ready for this, hot shot? +BARRY: +Yeah. Yeah, bring it on. +POLLEN JOCK's: +Wind, check. + : +- Antennae, check. +- Nectar pack, check. + : +- Wings, check. +- Stinger, check. +BARRY: +Scared out of my shorts, check. +LOU LO DUVA: +OK, ladies, + : +let's move it out! + : +Pound those petunias, +you striped stem-suckers! + : +All of you, drain those flowers! +(The pollen jocks fly out of the hive) +BARRY: +Wow! I'm out! + : +I can't believe I'm out! + : +So blue. + + : +I feel so fast and free! + : +Box kite! +(Barry flies through the kite) + : +Wow! + : +Flowers! +(A pollen jock puts on some high tech goggles that shows flowers similar to +heat sink goggles.) +POLLEN JOCK: +This is Blue Leader. +We have roses visual. + : +Bring it around 30 degrees and hold. + : +Roses! +POLLEN JOCK #1: +30 degrees, roger. Bringing it around. + : +Stand to the side, kid. +It's got a bit of a kick. +(The pollen jock fires a high-tech gun at the flower, shooting tubes that +suck up the nectar from the flower and collects it into a pouch on the gun) +BARRY: +That is one nectar collector! +POLLEN JOCK #1== +- Ever see pollination up close? +BARRY: +- No, sir. +POLLEN JOCK #1: + +(Barry and the Pollen jock fly over the field, the pollen jock sprinkles +pollen as he goes) + : +I pick up some pollen here, sprinkle it +over here. Maybe a dash over there, + : +a pinch on that one. +See that? It's a little bit of magic. +BARRY: +That's amazing. Why do we do that? +POLLEN JOCK #1: +That's pollen power. More pollen, more +flowers, more nectar, more honey for us. +BARRY: +Cool. +POLLEN JOCK #1: +I'm picking up a lot of bright yellow. +could be daisies. Don't we need those? +POLLEN JOCK #2: +Copy that visual. + : +Wait. One of these flowers +seems to be on the move. +POLLEN JOCK #1: +Say again? You're reporting +a moving flower? +POLLEN JOCK #2: +Affirmative. +(The Pollen jocks land near the "flowers" which, to the audience are +obviously just tennis balls) +KEN: +(In the distance) That was on the line! + +POLLEN JOCK #1: +This is the coolest. What is it? +POLLEN JOCK #2: +I don't know, but I'm loving this color. + : +It smells good. +Not like a flower, but I like it. +POLLEN JOCK #1: +Yeah, fuzzy. +(Sticks his hand on the ball but it gets stuck) +POLLEN JOCK #3== +Chemical-y. +(The pollen jock finally gets his hand free from the tennis ball) +POLLEN JOCK #1: +Careful, guys. It's a little grabby. +(The pollen jocks turn around and see Barry lying his entire body on top of +one of the tennis balls) +POLLEN JOCK #2: +My sweet lord of bees! +POLLEN JOCK #3: +Candy-brain, get off there! +POLLEN JOCK #1: +(Pointing upwards) +Problem! +(A human hand reaches down and grabs the tennis ball that Barry is stuck +to) +BARRY: +- Guys! +POLLEN JOCK #2: +- This could be bad. +POLLEN JOCK #3: +Affirmative. +(Vanessa Bloome starts bouncing the tennis ball, not knowing Barry is stick +to it) + +BARRY== +Very close. + : +Gonna hurt. + : +Mama's little boy. +(Barry is being hit back and forth by two humans playing tennis. He is +still stuck to the ball) +POLLEN JOCK #1: +You are way out of position, rookie! +KEN: +Coming in at you like a MISSILE! +(Barry flies past the pollen jocks, still stuck to the ball) +BARRY: +(In slow motion) +Help me! +POLLEN JOCK #2: +I don't think these are flowers. +POLLEN JOCK #3: +- Should we tell him? +POLLEN JOCK #1: +- I think he knows. +BARRY: +What is this?! +KEN: +Match point! + : +You can start packing up, honey, +because you're about to EAT IT! +(A pollen jock coughs which confused Ken and he hits the ball the wrong way +with Barry stuck to it and it goes flying into the city) +BARRY: + +Yowser! +(Barry bounces around town and gets stuck in the engine of a car. He flies +into the air conditioner and sees a bug that was frozen in there) +BARRY: +Ew, gross. +(The man driving the car turns on the air conditioner which blows Barry +into the car) +GIRL IN CAR: +There's a bee in the car! + : +- Do something! +DAD DRIVING CAR: +- I'm driving! +BABY GIRL: +(Waving at Barry) +- Hi, bee. +(Barry smiles and waves at the baby girl) +GUY IN BACK OF CAR: +- He's back here! + : +He's going to sting me! +GIRL IN CAR: +Nobody move. If you don't move, +he won't sting you. Freeze! +(Barry freezes as well, hovering in the middle of the car) + : +GRANDMA IN CAR== +He blinked! +(The grandma whips out some bee-spray and sprays everywhere in the car, +climbing into the front seat, still trying to spray Barry) +GIRL IN CAR: +Spray him, Granny! +DAD DRIVING THE CAR: +What are you doing?! +(Barry escapes the car through the air conditioner and is flying high above + +the ground, safe.) +BARRY: +Wow... the tension level +out here is unbelievable. +(Barry sees that storm clouds are gathering and he can see rain clouds +moving into this direction) + : +I gotta get home. + : +Can't fly in rain. + : +Can't fly in rain. +(A rain drop hits Barry and one of his wings is damaged) + : +Can't fly in rain. +(A second rain drop hits Barry again and he spirals downwards) +Mayday! Mayday! Bee going down! +(WW2 plane sound effects are played as he plummets, and he crash-lands on a +plant inside an apartment near the window) +VANESSA BLOOME: +Ken, could you close +the window please? +KEN== +Hey, check out my new resume. +I made it into a fold-out brochure. + : +You see? +(Folds brochure resume out) +Folds out. +(Ken closes the window, trapping Barry inside) +BARRY: +Oh, no. More humans. I don't need this. +(Barry tries to fly away but smashes into the window and falls again) + : +What was that? + +(Barry keeps trying to fly out the window but he keeps being knocked back +because the window is closed) +Maybe this time. This time. This time. +This time! This time! This... + : +Drapes! +(Barry taps the glass. He doesn't understand what it is) +That is diabolical. +KEN: +It's fantastic. It's got all my special +skills, even my top-ten favorite movies. +ANDY: +What's number one? Star Wars? +KEN: +Nah, I don't go for that... +(Ken makes finger guns and makes "pew pew pew" sounds and then stops) + : +...kind of stuff. +BARRY: +No wonder we shouldn't talk to them. +They're out of their minds. +KEN: +When I leave a job interview, they're +flabbergasted, can't believe what I say. +BARRY: +(Looking at the light on the ceiling) +There's the sun. Maybe that's a way out. +(Starts flying towards the lightbulb) + : +I don't remember the sun +having a big 75 on it. +(Barry hits the lightbulb and falls into the dip on the table that the +humans are sitting at) +KEN: + +I predicted global warming. + : +I could feel it getting hotter. +At first I thought it was just me. +(Andy dips a chip into the bowl and scoops up some dip with Barry on it and +is about to put it in his mouth) + : +Wait! Stop! Bee! +(Andy drops the chip with Barry in fear and backs away. All the humans +freak out) + : +Stand back. These are winter boots. +(Ken has winter boots on his hands and he is about to smash the bee but +Vanessa saves him last second) +VANESSA: +Wait! + : +Don't kill him! +(Vanessa puts Barry in a glass to protect him) +KEN: +You know I'm allergic to them! +This thing could kill me! +VANESSA: +Why does his life have +less value than yours? +KEN: +Why does his life have any less value +than mine? Is that your statement? +VANESSA: +I'm just saying all life has value. You +don't know what he's capable of feeling. +(Vanessa picks up Ken's brochure and puts it under the glass so she can +carry Barry back to the window. Barry looks at Vanessa in amazement) +KEN: + +My brochure! +VANESSA: +There you go, little guy. +(Vanessa opens the window and lets Barry out but Barry stays back and is +still shocked that a human saved his life) +KEN: +I'm not scared of him. +It's an allergic thing. +VANESSA: +Put that on your resume brochure. +KEN: +My whole face could puff up. +ANDY: +Make it one of your special skills. +KEN: +Knocking someone out +is also a special skill. +(Ken walks to the door) +Right. Bye, Vanessa. Thanks. + : +- Vanessa, next week? Yogurt night? +VANESSA: +- Sure, Ken. You know, whatever. + : +(Vanessa tries to close door) +KEN== +- You could put carob chips on there. +VANESSA: +- Bye. +(Closes door but Ken opens it again) +KEN: +- Supposed to be less calories. + +VANESSA: +- Bye. +(Closes door) +(Fast forward to the next day, Barry is still inside the house. He flies +into the kitchen where Vanessa is doing dishes) +BARRY== +(Talking to himself) +I gotta say something. + : +She saved my life. +I gotta say something. + : +All right, here it goes. +(Turns back) +Nah. + : +What would I say? + : +I could really get in trouble. + : +It's a bee law. +You're not supposed to talk to a human. + : +I can't believe I'm doing this. + : +I've got to. +(Barry disguises himself as a character on a food can as Vanessa walks by +again) + : +Oh, I can't do it. Come on! + : +No. Yes. No. + : +Do it. I can't. + + : +How should I start it? +(Barry strikes a pose and wiggles his eyebrows) +"You like jazz?" +No, that's no good. +(Vanessa is about to walk past Barry) +Here she comes! Speak, you fool! + : +...Hi! +(Vanessa gasps and drops the dishes in fright and notices Barry on the +counter) + : +I'm sorry. +VANESSA: +- You're talking. +BARRY: +- Yes, I know. +VANESSA: +(Pointing at Barry) +You're talking! +BARRY: +I'm so sorry. +VANESSA: +No, it's OK. It's fine. +I know I'm dreaming. + : +But I don't recall going to bed. +BARRY: +Well, I'm sure this +is very disconcerting. +VANESSA: +This is a bit of a surprise to me. +I mean, you're a bee! + +BARRY: +I am. And I'm not supposed +to be doing this, +(Pointing to the living room where Ken tried to kill him last night) +but they were all trying to kill me. + : +And if it wasn't for you... + : +I had to thank you. +It's just how I was raised. +(Vanessa stabs her hand with a fork to test whether she's dreaming or not) + : +That was a little weird. +VANESSA: +- I'm talking with a bee. +BARRY: +- Yeah. +VANESSA: +I'm talking to a bee. +And the bee is talking to me! +BARRY: +I just want to say I'm grateful. +I'll leave now. +(Barry turns to leave) +VANESSA: +- Wait! How did you learn to do that? +BARRY: +(Flying back) +- What? +VANESSA: +The talking...thing. +BARRY: + +Same way you did, I guess. +"Mama, Dada, honey." You pick it up. +VANESSA: +- That's very funny. +BARRY: +- Yeah. + : +Bees are funny. If we didn't laugh, +we'd cry with what we have to deal with. + : +Anyway... +VANESSA: +Can I... + : +...get you something? +BARRY: +- Like what? +VANESSA: +I don't know. I mean... +I don't know. Coffee? +BARRY: +I don't want to put you out. +VANESSA: +It's no trouble. It takes two minutes. + : +- It's just coffee. +BARRY: +- I hate to impose. +(Vanessa starts making coffee) +VANESSA: +- Don't be ridiculous! + +BARRY: +- Actually, I would love a cup. +VANESSA: +Hey, you want rum cake? +BARRY: +- I shouldn't. +VANESSA: +- Have some. +BARRY: +- No, I can't. +VANESSA: +- Come on! +BARRY: +I'm trying to lose a couple micrograms. +VANESSA: +- Where? +BARRY: +- These stripes don't help. +VANESSA: +You look great! +BARRY: +I don't know if you know +anything about fashion. + : +Are you all right? +VANESSA: +(Pouring coffee on the floor and missing the cup completely) +No. +(Flash forward in time. Barry and Vanessa are sitting together at a table +on top of the apartment building drinking coffee) + + : +BARRY== +He's making the tie in the cab +as they're flying up Madison. + : +He finally gets there. + : +He runs up the steps into the church. +The wedding is on. + : +And he says, "Watermelon? +I thought you said Guatemalan. + : +Why would I marry a watermelon?" +(Barry laughs but Vanessa looks confused) +VANESSA: +Is that a bee joke? +BARRY: +That's the kind of stuff we do. +VANESSA: +Yeah, different. + : +So, what are you gonna do, Barry? +(Barry stands on top of a sugar cube floating in his coffee and paddles it +around with a straw like it's a gondola) +BARRY: +About work? I don't know. + : +I want to do my part for the hive, +but I can't do it the way they want. +VANESSA: +I know how you feel. + +BARRY: +- You do? +VANESSA: +- Sure. + : +My parents wanted me to be a lawyer or +a doctor, but I wanted to be a florist. +BARRY: +- Really? +VANESSA: +- My only interest is flowers. +BARRY: +Our new queen was just elected +with that same campaign slogan. + : +Anyway, if you look... +(Barry points to a tree in the middle of Central Park) + : +There's my hive right there. See it? +VANESSA: +You're in Sheep Meadow! +BARRY: +Yes! I'm right off the Turtle Pond! +VANESSA: +No way! I know that area. +I lost a toe ring there once. +BARRY: +- Why do girls put rings on their toes? +VANESSA: +- Why not? +BARRY: + +- It's like putting a hat on your knee. +VANESSA: +- Maybe I'll try that. +(A custodian installing a lightbulb looks over at them but to his +perspective it looks like Vanessa is talking to a cup of coffee on the +table) +CUSTODIAN: +- You all right, ma'am? +VANESSA: +- Oh, yeah. Fine. + : +Just having two cups of coffee! +BARRY: +Anyway, this has been great. +Thanks for the coffee. +VANESSA== +Yeah, it's no trouble. +BARRY: +Sorry I couldn't finish it. If I did, +I'd be up the rest of my life. +(Barry points towards the rum cake) + : +Can I take a piece of this with me? +VANESSA: +Sure! Here, have a crumb. +(Vanessa hands Barry a crumb but it is still pretty big for Barry) +BARRY: +- Thanks! +VANESSA: +- Yeah. +BARRY: +All right. Well, then... +I guess I'll see you around. + + : +Or not. +VANESSA: +OK, Barry... +BARRY: +And thank you +so much again... for before. +VANESSA: +Oh, that? That was nothing. +BARRY: +Well, not nothing, but... Anyway... +(Vanessa and Barry hold hands, but Vanessa has to hold out a finger because +her hands is to big and Barry holds that) +(The custodian looks over again and it appears Vanessa is laughing at her +coffee again. The lightbulb that he was screwing in sparks and he falls off +the ladder) +(Fast forward in time and we see two Bee Scientists testing out a parachute +in a Honex wind tunnel) +BEE SCIENTIST #1: +This can't possibly work. +BEE SCIENTIST #2: +He's all set to go. +We may as well try it. + : +OK, Dave, pull the chute. +(Dave pulls the chute and the wind slams him against the wall and he falls +on his face.The camera pans over and we see Barry and Adam walking +together) +ADAM: +- Sounds amazing. +BARRY: +- It was amazing! + : +It was the scariest, +happiest moment of my life. + +ADAM: +Humans! I can't believe +you were with humans! + : +Giant, scary humans! +What were they like? +BARRY: +Huge and crazy. They talk crazy. + : +They eat crazy giant things. +They drive crazy. +ADAM: +- Do they try and kill you, like on TV? +BARRY: +- Some of them. But some of them don't. +ADAM: +- How'd you get back? +BARRY: +- Poodle. +ADAM: +You did it, and I'm glad. You saw +whatever you wanted to see. + : +You had your "experience." Now you +can pick out your job and be normal. +BARRY: +- Well... +ADAM: +- Well? +BARRY: +Well, I met someone. + +ADAM: +You did? Was she Bee-ish? + : +- A wasp?! Your parents will kill you! +BARRY: +- No, no, no, not a wasp. +ADAM: +- Spider? +BARRY: +- I'm not attracted to spiders. + : +I know, for everyone else, it's the hottest thing, +with the eight legs and all. + : +I can't get by that face. +ADAM: +So who is she? +BARRY: +She's... human. +ADAM: +No, no. That's a bee law. +You wouldn't break a bee law. +BARRY: +- Her name's Vanessa. +(Adam puts his head in his hands) +ADAM: +- Oh, boy. +BARRY== +She's so nice. And she's a florist! +ADAM: +Oh, no! You're dating a human florist! + +BARRY: +We're not dating. +ADAM: +You're flying outside the hive, talking +to humans that attack our homes + : +with power washers and M-80s! +That's one-eighth a stick of dynamite! +BARRY: +She saved my life! +And she understands me. +ADAM: +This is over! +BARRY: +Eat this. +(Barry gives Adam a piece of the crumb that he got from Vanessa. Adam eats +it) +ADAM: +(Adam's tone changes) +This is not over! What was that? +BARRY: +- They call it a crumb. +ADAM: +- It was so stingin' stripey! +BARRY: +And that's not what they eat. +That's what falls off what they eat! + : +- You know what a Cinnabon is? +ADAM: +- No. +(Adam opens a door behind him and he pulls Barry in) + +BARRY: +It's bread and cinnamon and frosting. +ADAM: +Be quiet! +BARRY: +They heat it up... +ADAM: +Sit down! +(Adam forces Barry to sit down) +BARRY: +(Still rambling about Cinnabons) +...really hot! +(Adam grabs Barry by the shoulders) +ADAM: +- Listen to me! + : +We are not them! We're us. +There's us and there's them! +BARRY== +Yes, but who can deny +the heart that is yearning? +ADAM: +There's no yearning. +Stop yearning. Listen to me! + : +You have got to start thinking bee, +my friend. Thinking bee! +BARRY: +- Thinking bee. +WORKER BEE: +- Thinking bee. +WORKER BEES AND ADAM: +Thinking bee! Thinking bee! + +Thinking bee! Thinking bee! +(Flash forward in time; Barry is laying on a raft in a pool full of honey. +He is wearing sunglasses) +JANET: +There he is. He's in the pool. +MARTIN: +You know what your problem is, Barry? +(Barry pulls down his sunglasses and he looks annoyed) +BARRY: +(Sarcastic) +I gotta start thinking bee? +JANET: +How much longer will this go on? +MARTIN: +It's been three days! +Why aren't you working? +(Puts sunglasses back on) +BARRY: +I've got a lot of big life decisions +to think about. +MARTIN: +What life? You have no life! +You have no job. You're barely a bee! +JANET: +Would it kill you +to make a little honey? +(Barry rolls off the raft and sinks into the honey pool) + : +Barry, come out. +Your father's talking to you. + : +Martin, would you talk to him? +MARTIN: + +Barry, I'm talking to you! +(Barry keeps sinking into the honey until he is suddenly in Central Park +having a picnic with Vanessa) +(Barry has a cup of honey and he clinks his glass with Vanessas. Suddenly a +mosquito lands on Vanessa and she slaps it, killing it. They both gasp but +then burst out laughing) +VANESSA: +You coming? +(The camera pans over and Vanessa is climbing into a small yellow airplane) +BARRY: +Got everything? +VANESSA: +All set! +BARRY: +Go ahead. I'll catch up. +(Vanessa lifts off and flies ahead) +VANESSA: +Don't be too long. +(Barry catches up with Vanessa and he sticks out his arms like ana irplane. +He rolls from side to side, and Vanessa copies him with the airplane) +VANESSA: +Watch this! +(Barry stays back and watches as Vanessa draws a heart in the air using +pink smoke from the plane, but on the last loop-the-loop she suddenly +crashes into a mountain and the plane explodes. The destroyed plane falls +into some rocks and explodes a second time) +BARRY: +Vanessa! +(As Barry is yelling his mouth fills with honey and he wakes up, +discovering that he was just day dreaming. He slowly sinks back into the +honey pool) +MARTIN: +- We're still here. + +JANET: +- I told you not to yell at him. + : +He doesn't respond to yelling! +MARTIN: +- Then why yell at me? +JANET: +- Because you don't listen! +MARTIN: +I'm not listening to this. +BARRY: +Sorry, I've gotta go. +MARTIN: +- Where are you going? +BARRY: +- I'm meeting a friend. +JANET: +A girl? Is this why you can't decide? +BARRY: +Bye. +(Barry flies out the door and Martin shakes his head) + : +JANET== +I just hope she's Bee-ish. +(Fast forward in time and Barry is sitting on Vanessa's shoulder and she is +closing up her shop) +BARRY: +They have a huge parade +of flowers every year in Pasadena? +VANESSA: +To be in the Tournament of Roses, +that's every florist's dream! + + : +Up on a float, surrounded +by flowers, crowds cheering. +BARRY: +A tournament. Do the roses +compete in athletic events? +VANESSA: +No. All right, I've got one. +How come you don't fly everywhere? +BARRY: +It's exhausting. Why don't you +run everywhere? It's faster. +VANESSA: +Yeah, OK, I see, I see. +All right, your turn. +BARRY: +TiVo. You can just freeze live TV? +That's insane! +VANESSA: +You don't have that? +BARRY: +We have Hivo, but it's a disease. +It's a horrible, horrible disease. +VANESSA: +Oh, my. +(A human walks by and Barry narrowly avoids him) +PASSERBY: +Dumb bees! +VANESSA: +You must want to sting all those jerks. +BARRY: +We try not to sting. + +It's usually fatal for us. +VANESSA: +So you have to watch your temper +(They walk into a store) +BARRY: +Very carefully. +You kick a wall, take a walk, + : +write an angry letter and throw it out. +Work through it like any emotion: + : +Anger, jealousy, lust. +(Suddenly an employee(Hector) hits Barry off of Vanessa's shoulder. Hector +thinks he's saving Vanessa) +VANESSA: +(To Barry) +Oh, my goodness! Are you OK? +(Barry is getting up off the floor) +BARRY: +Yeah. +VANESSA: +(To Hector) +- What is wrong with you?! +HECTOR: +(Confused) +- It's a bug. +VANESSA: +He's not bothering anybody. +Get out of here, you creep! +(Vanessa hits Hector across the face with the magazine he had and then hits +him in the head. Hector backs away covering his head) +Barry: +What was that? A Pic 'N' Save circular? +(Vanessa sets Barry back on her shoulder) + +VANESSA: +Yeah, it was. How did you know? +BARRY: +It felt like about 10 pages. +Seventy-five is pretty much our limit. +VANESSA: +You've really got that +down to a science. +BARRY: +- Oh, we have to. I lost a cousin to Italian Vogue. +VANESSA: +- I'll bet. +(Barry looks to his right and notices there is honey for sale in the aisle) +BARRY: +What in the name +of Mighty Hercules is this? +(Barry looks at all the brands of honey, shocked) +How did this get here? +Cute Bee, Golden Blossom, + : +Ray Liotta Private Select? +(Barry puts his hands up and slowly turns around, a look of disgust on his +face) +VANESSA: +- Is he that actor? +BARRY: +- I never heard of him. + : +- Why is this here? +VANESSA: +- For people. We eat it. +BARRY: + +You don't have +enough food of your own?! +(Hector looks back and notices that Vanessa is talking to Barry) +VANESSA: +- Well, yes. +BARRY: +- How do you get it? +VANESSA: +- Bees make it. +BARRY: +- I know who makes it! + : +And it's hard to make it! + : +There's heating, cooling, stirring. +You need a whole Krelman thing! +VANESSA: +- It's organic. +BARRY: +- It's our-ganic! +VANESSA: +It's just honey, Barry. +BARRY: +Just what?! + : +Bees don't know about this! +This is stealing! A lot of stealing! + : +You've taken our homes, schools, +hospitals! This is all we have! + : + +And it's on sale?! +I'm getting to the bottom of this. + : +I'm getting to the bottom +of all of this! +(Flash forward in time; Barry paints his face with black strikes like a +soldier and sneaks into the storage section of the store) +(Two men, including Hector, are loading boxes into some trucks) + : +SUPERMARKET EMPLOYEE== +Hey, Hector. + : +- You almost done? +HECTOR: +- Almost. +(Barry takes a step to peak around the corner) +(Whispering) +He is here. I sense it. + : +Well, I guess I'll go home now +(Hector pretends to walk away by walking in place and speaking loudly) + : +and just leave this nice honey out, +with no one around. +BARRY: +You're busted, box boy! +HECTOR: +I knew I heard something! +So you can talk! +BARRY: +I can talk. +And now you'll start talking! + : +Where you getting the sweet stuff? + +Who's your supplier? +HECTOR: +I don't understand. +I thought we were friends. + : +The last thing we want +to do is upset bees! +(Hector takes a thumbtack out of the board behind him and sword-fights +Barry. Barry is using his stinger like a sword) + : +You're too late! It's ours now! +BARRY: +You, sir, have crossed +the wrong sword! +HECTOR: +You, sir, will be lunch +for my iguana, Ignacio! +(Barry hits the thumbtack out of Hectors hand and Hector surrenders) +Barry: +Where is the honey coming from? + : +Tell me where! +HECTOR: +(Pointing to leaving truck) +Honey Farms! It comes from Honey Farms! +(Barry chases after the truck but it is getting away. He flies onto a +bicyclists' backpack and he catches up to the truck) +CAR DRIVER: +(To bicyclist) +Crazy person! +(Barry flies off and lands on the windshield of the Honey farms truck. +Barry looks around and sees dead bugs splattered everywhere) +BARRY: +What horrible thing has happened here? + + : +These faces, they never knew +what hit them. And now + : +they're on the road to nowhere! +(Barry hears a sudden whisper) +(Barry looks up and sees Mooseblood, a mosquito playing dead) +MOOSEBLOOD: +Just keep still. +BARRY: +What? You're not dead? +MOOSEBLOOD: +Do I look dead? They will wipe anything +that moves. Where you headed? +BARRY: +To Honey Farms. +I am onto something huge here. +MOOSEBLOOD: +I'm going to Alaska. Moose blood, +crazy stuff. Blows your head off! +ANOTHER BUG PLAYING DEAD: +I'm going to Tacoma. +(Barry looks at another bug) +BARRY: +- And you? +MOOSEBLOOD: +- He really is dead. +BARRY: +All right. +(Another bug hits the windshield and the drivers notice. They activate the +windshield wipers) +MOOSEBLOOD== +Uh-oh! +(The windshield wipers are slowly sliding over the dead bugs and wiping + +them off) +BARRY: +- What is that?! +MOOSEBLOOD: +- Oh, no! + : +- A wiper! Triple blade! +BARRY: +- Triple blade? +MOOSEBLOOD: +Jump on! It's your only chance, bee! +(Mooseblood and Barry grab onto the wiper and they hold on as it wipes the +windshield) +Why does everything have +to be so doggone clean?! + : +How much do you people need to see?! +(Bangs on windshield) + : +Open your eyes! +Stick your head out the window! +RADIO IN TRUCK: +From NPR News in Washington, +I'm Carl Kasell. +MOOSEBLOOD: +But don't kill no more bugs! +(Mooseblood and Barry are washed off by the wipr fluid) +MOOSEBLOOD: +- Bee! +BARRY: +- Moose blood guy!! +(Barry starts screaming as he hangs onto the antenna) +(Suddenly it is revealed that a water bug is also hanging on the antenna. + +There is a pause and then Barry and the water bug both start screaming) +TRUCK DRIVER: +- You hear something? +GUY IN TRUCK: +- Like what? +TRUCK DRIVER: +Like tiny screaming. +GUY IN TRUCK: +Turn off the radio. +(The antenna starts to lower until it gets to low and sinks into the truck. +The water bug flies off and Barry is forced to let go and he is blown away. +He luckily lands inside a horn on top of the truck where he finds +Mooseblood, who was blown into the same place) +MOOSEBLOOD: +Whassup, bee boy? +BARRY: +Hey, Blood. +(Fast forward in time and we see that Barry is deep in conversation with +Mooseblood. They have been sitting in this truck for a while) +BARRY: +...Just a row of honey jars, +as far as the eye could see. +MOOSEBLOOD: +Wow! +BARRY: +I assume wherever this truck goes +is where they're getting it. + : +I mean, that honey's ours. +MOOSEBLOOD: +- Bees hang tight. +BARRY: + +- We're all jammed in. + : +It's a close community. +MOOSEBLOOD: +Not us, man. We on our own. +Every mosquito on his own. +BARRY: +- What if you get in trouble? +MOOSEBLOOD: +- You a mosquito, you in trouble. + : +Nobody likes us. They just smack. +See a mosquito, smack, smack! +BARRY: +At least you're out in the world. +You must meet girls. +MOOSEBLOOD: +Mosquito girls try to trade up, +get with a moth, dragonfly. + : +Mosquito girl don't want no mosquito. +(An ambulance passes by and it has a blood donation sign on it) +You got to be kidding me! + : +Mooseblood's about to leave +the building! So long, bee! +(Mooseblood leaves and flies onto the window of the ambulance where there +are other mosquito's hanging out) + : +- Hey, guys! +OTHER MOSQUITO: +- Mooseblood! + +MOOSEBLOOD: +I knew I'd catch y'all down here. +Did you bring your crazy straw? +(The truck goes out of view and Barry notices that the truck he's on is +pulling into a camp of some sort) +TRUCK DRIVER: +We throw it in jars, slap a label on it, +and it's pretty much pure profit. +(Barry flies out) +BARRY: +What is this place? +BEEKEEPER 1#: +A bee's got a brain +the size of a pinhead. +BEEKEEPER #2: +They are pinheads! + : +Pinhead. + : +- Check out the new smoker. +BEEKEEPER #1: +- Oh, sweet. That's the one you want. + : +The Thomas 3000! +BARRY: +Smoker? +BEEKEEPER #1: +Ninety puffs a minute, semi-automatic. +Twice the nicotine, all the tar. + : +A couple breaths of this +knocks them right out. + +BEEKEEPER #2: +They make the honey, +and we make the money. +BARRY: +"They make the honey, +and we make the money"? +(The Beekeeper sprays hundreds of cheap miniature apartments with the +smoker. The bees are fainting or passing out) +Oh, my! + : +What's going on? Are you OK? +(Barry flies into one of the apartment and helps a Bee couple get off the +ground. They are coughing and its hard for them to stand) +BEE IN APARTMENT: +Yeah. It doesn't last too long. +BARRY: +Do you know you're +in a fake hive with fake walls? +BEE IN APPARTMENT: +Our queen was moved here. +We had no choice. +(The apartment room is completely empty except for a photo on the wall of +the "queen" who is obviously a man in women's clothes) +BARRY: +This is your queen? +That's a man in women's clothes! + : +That's a drag queen! + : +What is this? +(Barry flies out and he discovers that there are hundreds of these +structures, each housing thousands of Bees) +Oh, no! + : +There's hundreds of them! +(Barry takes out his camera and takes pictures of these Bee work camps. The +beekeepers look very evil in these depictions) + +Bee honey. + : +Our honey is being brazenly stolen +on a massive scale! + : +This is worse than anything bears +have done! I intend to do something. +(Flash forward in time and Barry is showing these pictures to his parents) +JANET: +Oh, Barry, stop. +MARTIN: +Who told you humans are taking +our honey? That's a rumor. +BARRY: +Do these look like rumors? +(Holds up the pictures) +UNCLE CARL: +That's a conspiracy theory. +These are obviously doctored photos. +JANET: +How did you get mixed up in this? +ADAM: +He's been talking to humans. +JANET: +- What? +MARTIN: +- Talking to humans?! +ADAM: +He has a human girlfriend. +And they make out! +JANET: +Make out? Barry! + +BARRY: +We do not. +ADAM: +- You wish you could. +MARTIN: +- Whose side are you on? +BARRY: +The bees! +UNCLE CARL: +(He has been sitting in the back of the room this entire time) +I dated a cricket once in San Antonio. +Those crazy legs kept me up all night. +JANET: +Barry, this is what you want +to do with your life? +BARRY: +I want to do it for all our lives. +Nobody works harder than bees! + : +Dad, I remember you +coming home so overworked + : +your hands were still stirring. +You couldn't stop. +JANET: +I remember that. +BARRY: +What right do they have to our honey? + : +We live on two cups a year. They put it +in lip balm for no reason whatsoever! + +ADAM: +Even if it's true, what can one bee do? +BARRY: +Sting them where it really hurts. +MARTIN: +In the face! The eye! + : +- That would hurt. +BARRY: +- No. +MARTIN: +Up the nose? That's a killer. +BARRY: +There's only one place you can sting +the humans, one place where it matters. +(Flash forward a bit in time and we are watching the Bee News) +BEE NEWS NARRATOR: +Hive at Five, the hive's only +full-hour action news source. +BEE PROTESTOR: +No more bee beards! +BEE NEWS NARRATOR: +With Bob Bumble at the anchor desk. + : +Weather with Storm Stinger. + : +Sports with Buzz Larvi. + : +And Jeanette Chung. +BOB BUMBLE: +- Good evening. I'm Bob Bumble. +JEANETTE CHUNG: + +- And I'm Jeanette Chung. +BOB BUMBLE: +A tri-county bee, Barry Benson, + : +intends to sue the human race +for stealing our honey, + : +packaging it and profiting +from it illegally! +JEANETTE CHUNG: +Tomorrow night on Bee Larry King, + : +we'll have three former queens here in +our studio, discussing their new book, + : +Classy Ladies, +out this week on Hexagon. +(The scene changes to an interview on the news with Bee version of Larry +King and Barry) +BEE LARRY KING: +Tonight we're talking to Barry Benson. + : +Did you ever think, "I'm a kid +from the hive. I can't do this"? +BARRY: +Bees have never been afraid +to change the world. + : +What about Bee Columbus? +Bee Gandhi? Bejesus? +BEE LARRY KING: +Where I'm from, we'd never sue humans. + + : +We were thinking +of stickball or candy stores. +BARRY: +How old are you? +BEE LARRY KING: +The bee community +is supporting you in this case, + : +which will be the trial +of the bee century. +BARRY: +You know, they have a Larry King +in the human world too. +BEE LARRY KING: +It's a common name. Next week... +BARRY: +He looks like you and has a show +and suspenders and colored dots... +BEE LARRY KING: +Next week... +BARRY: +Glasses, quotes on the bottom from the +guest even though you just heard 'em. +BEE LARRY KING: +Bear Week next week! +They're scary, hairy and here, live. +(Bee Larry King gets annoyed and flies away offscreen) +BARRY: +Always leans forward, pointy shoulders, +squinty eyes, very Jewish. +(Flash forward in time. We see Vanessa enter and Ken enters behind her. +They are arguing) + +KEN: +In tennis, you attack +at the point of weakness! +VANESSA: +It was my grandmother, Ken. She's 81. +KEN== +Honey, her backhand's a joke! +I'm not gonna take advantage of that? +BARRY: +(To Ken) +Quiet, please. +Actual work going on here. +KEN: +(Pointing at Barry) +- Is that that same bee? +VANESSA: +- Yes, it is! + : +I'm helping him sue the human race. +BARRY: +- Hello. +KEN: +- Hello, bee. +VANESSA: +This is Ken. +BARRY: +(Recalling the "Winter Boots" incident earlier) +Yeah, I remember you. Timberland, size +ten and a half. Vibram sole, I believe. +KEN: +(To Vanessa) +Why does he talk again? +VANESSA: + +Listen, you better go +'cause we're really busy working. +KEN: +But it's our yogurt night! +VANESSA: +(Holding door open for Ken) +Bye-bye. +KEN: +(Yelling) +Why is yogurt night so difficult?! +(Ken leaves and Vanessa walks over to Barry. His workplace is a mess) +VANESSA: +You poor thing. +You two have been at this for hours! +BARRY: +Yes, and Adam here +has been a huge help. +ADAM: +- Frosting... +- How many sugars? + ==BARRY== +Just one. I try not +to use the competition. + : +So why are you helping me? +VANESSA: +Bees have good qualities. + : +And it takes my mind off the shop. + : +Instead of flowers, people +are giving balloon bouquets now. +BARRY: + +Those are great, if you're three. +VANESSA: +And artificial flowers. +BARRY: +- Oh, those just get me psychotic! +VANESSA: +- Yeah, me too. + : +BARRY: +Bent stingers, pointless pollination. +ADAM: +Bees must hate those fake things! + : +Nothing worse +than a daffodil that's had work done. + : +Maybe this could make up +for it a little bit. +VANESSA: +- This lawsuit's a pretty big deal. +BARRY: +- I guess. +ADAM: +You sure you want to go through with it? +BARRY: +Am I sure? When I'm done with +the humans, they won't be able + : +to say, "Honey, I'm home," +without paying a royalty! +(Flash forward in time and we are watching the human news. The camera shows + +a crowd outside a courthouse) +NEWS REPORTER: +It's an incredible scene +here in downtown Manhattan, + : +where the world anxiously waits, +because for the first time in history, + : +we will hear for ourselves +if a honeybee can actually speak. +(We are no longer watching through a news camera) +ADAM: +What have we gotten into here, Barry? +BARRY: +It's pretty big, isn't it? +ADAM== +(Looking at the hundreds of people around the courthouse) +I can't believe how many humans +don't work during the day. +BARRY: +You think billion-dollar multinational +food companies have good lawyers? +SECURITY GUARD: +Everybody needs to stay +behind the barricade. +(A limousine drives up and a fat man,Layton Montgomery, a honey industry +owner gets out and walks past Barry) +ADAM: +- What's the matter? +BARRY: +- I don't know, I just got a chill. +(Fast forward in time and everyone is in the court) +MONTGOMERY: +Well, if it isn't the bee team. + +(To Honey Industry lawyers) +You boys work on this? +MAN: +All rise! The Honorable +Judge Bumbleton presiding. +JUDGE BUMBLETON: +All right. Case number 4475, + : +Superior Court of New York, +Barry Bee Benson v. the Honey Industry + : +is now in session. + : +Mr. Montgomery, you're representing +the five food companies collectively? +MONTGOMERY: +A privilege. +JUDGE BUMBLETON: +Mr. Benson... you're representing +all the bees of the world? +(Everyone looks closely, they are waiting to see if a Bee can really talk) +(Barry makes several buzzing sounds to sound like a Bee) +BARRY: +I'm kidding. Yes, Your Honor, +we're ready to proceed. +JUDGE BUMBLBETON: +Mr. Montgomery, +your opening statement, please. +MONTGOMERY: +Ladies and gentlemen of the jury, + : +my grandmother was a simple woman. + : + +Born on a farm, she believed +it was man's divine right + : +to benefit from the bounty +of nature God put before us. + : +If we lived in the topsy-turvy world +Mr. Benson imagines, + : +just think of what would it mean. + : +I would have to negotiate +with the silkworm + : +for the elastic in my britches! + : +Talking bee! +(Montgomery walks over and looks closely at Barry) + : +How do we know this isn't some sort of + : +holographic motion-picture-capture +Hollywood wizardry? + : +They could be using laser beams! + : +Robotics! Ventriloquism! +Cloning! For all we know, + : +he could be on steroids! +JUDGE BUMBLETON: +Mr. Benson? + +BARRY: +Ladies and gentlemen, +there's no trickery here. + : +I'm just an ordinary bee. +Honey's pretty important to me. + : +It's important to all bees. +We invented it! + : +We make it. And we protect it +with our lives. + : +Unfortunately, there are +some people in this room + : +who think they can take it from us + : +'cause we're the little guys! +I'm hoping that, after this is all over, + : +you'll see how, by taking our honey, +you not only take everything we have + : +but everything we are! +JANET== +(To Martin) +I wish he'd dress like that +all the time. So nice! +JUDGE BUMBLETON: +Call your first witness. +BARRY: +So, Mr. Klauss Vanderhayden + +of Honey Farms, big company you have. +KLAUSS VANDERHAYDEN: +I suppose so. +BARRY: +I see you also own +Honeyburton and Honron! +KLAUSS: +Yes, they provide beekeepers +for our farms. +BARRY: +Beekeeper. I find that +to be a very disturbing term. + : +I don't imagine you employ +any bee-free-ers, do you? +KLAUSS: +(Quietly) +- No. +BARRY: +- I couldn't hear you. +KLAUSS: +- No. +BARRY: +- No. + : +Because you don't free bees. +You keep bees. Not only that, + : +it seems you thought a bear would be +an appropriate image for a jar of honey. +KLAUSS: +They're very lovable creatures. + + : +Yogi Bear, Fozzie Bear, Build-A-Bear. +BARRY: +You mean like this? +(The bear from Over The Hedge barges in through the back door and it is +roaring and standing on its hind legs. It is thrashing its claws and people +are screaming. It is being held back by a guard who has the bear on a +chain) + : +(Pointing to the roaring bear) +Bears kill bees! + : +How'd you like his head crashing +through your living room?! + : +Biting into your couch! +Spitting out your throw pillows! +JUDGE BUMBLETON: +OK, that's enough. Take him away. +(The bear stops roaring and thrashing and walks out) +BARRY: +So, Mr. Sting, thank you for being here. +Your name intrigues me. + : +- Where have I heard it before? +MR. STING: +- I was with a band called The Police. +BARRY: +But you've never been +a police officer, have you? +STING: +No, I haven't. +BARRY: + +No, you haven't. And so here +we have yet another example + : +of bee culture casually +stolen by a human + : +for nothing more than +a prance-about stage name. +STING: +Oh, please. +BARRY: +Have you ever been stung, Mr. Sting? + : +Because I'm feeling +a little stung, Sting. + : +Or should I say... Mr. Gordon M. Sumner! +MONTGOMERY: +That's not his real name?! You idiots! +BARRY: +Mr. Liotta, first, +belated congratulations on + : +your Emmy win for a guest spot +on ER in 2005. +RAY LIOTTA: +Thank you. Thank you. +BARRY: +I see from your resume +that you're devilishly handsome + : +with a churning inner turmoil + +that's ready to blow. +RAY LIOTTA: +I enjoy what I do. Is that a crime? +BARRY: +Not yet it isn't. But is this +what it's come to for you? + : +Exploiting tiny, helpless bees +so you don't + : +have to rehearse +your part and learn your lines, sir? +RAY LIOTTA: +Watch it, Benson! +I could blow right now! +BARRY: +This isn't a goodfella. +This is a badfella! +(Ray Liotta looses it and tries to grab Barry) +RAY LIOTTA: +Why doesn't someone just step on +this creep, and we can all go home?! +JUDGE BUMBLETON: +- Order in this court! +RAY LIOTTA: +- You're all thinking it! +(Judge Bumbleton starts banging her gavel) +JUDGE BUMBLETON: +Order! Order, I say! +RAY LIOTTA: +- Say it! +MAN: + +- Mr. Liotta, please sit down! +(We see a montage of magazines which feature the court case) +(Flash forward in time and Barry is back home with Vanessa) +BARRY: +I think it was awfully nice +of that bear to pitch in like that. +VANESSA: +I think the jury's on our side. +BARRY: +Are we doing everything right,you know, legally? +VANESSA: +I'm a florist. +BARRY: +Right. Well, here's to a great team. +VANESSA: +To a great team! +(Ken walks in from work. He sees Barry and he looks upset when he sees +Barry clinking his glass with Vanessa) +KEN: +Well, hello. +VANESSA: +- Oh, Ken! +BARRY: +- Hello! +VANESSA: +I didn't think you were coming. + : +No, I was just late. +I tried to call, but... +(Ken holds up his phone and flips it open. The phone has no charge) +...the battery... +VANESSA: + +I didn't want all this to go to waste, +so I called Barry. Luckily, he was free. +KEN: +Oh, that was lucky. +(Ken sits down at the table across from Barry and Vanessa leaves the room) +VANESSA: +There's a little left. +I could heat it up. +KEN: +(Not taking his eyes off Barry) +Yeah, heat it up, sure, whatever. +BARRY: +So I hear you're quite a tennis player. + : +I'm not much for the game myself. +The ball's a little grabby. +KEN: +That's where I usually sit. +Right... +(Points to where Barry is sitting) +there. +VANESSA: +(Calling from other room) +Ken, Barry was looking at your resume, + : +and he agreed with me that eating with +chopsticks isn't really a special skill. +KEN: +(To Barry) +You think I don't see what you're doing? +BARRY: +I know how hard it is to find +the right job. We have that in common. + +KEN: +Do we? +BARRY: +Bees have 100 percent employment, +but we do jobs like taking the crud out. +KEN: +(Menacingly) +That's just what +I was thinking about doing. +(Ken reaches for a fork on the table but knocks if on the floor. He goes to +pick it up) +VANESSA: +Ken, I let Barry borrow your razor +for his fuzz. I hope that was all right. +(Ken quickly rises back up after hearing this but hits his head on the +table and yells) +BARRY: +I'm going to drain the old stinger. +KEN: +Yeah, you do that. +(Barry flies past Ken to get to the bathroom and Ken freaks out, splashing +some of the wine he was using to cool his head in his eyes. He yells in +anger) +(Barry looks at the magazines featuring his victories in court) +BARRY: +Look at that. +(Barry flies into the bathroom) +(He puts his hand on his head but this makes hurts him and makes him even +madder. He yells again) +(Barry is washing his hands in the sink but then Ken walks in) +KEN: +You know, you know I've just about had it +(Closes bathroom door behind him) +with your little mind games. +(Ken is menacingly rolling up a magazine) +BARRY: + +(Backing away) +- What's that? +KEN: +- Italian Vogue. +BARRY: +Mamma mia, that's a lot of pages. +KEN: +It's a lot of ads. +BARRY: +Remember what Van said, why is +your life more valuable than mine? +KEN: +That's funny, I just can't seem to recall that! +(Ken smashes everything off the sink with the magazine and Barry narrowly +escapes) +(Ken follows Barry around and tries to hit him with the magazine but he +keeps missing) +(Ken gets a spray bottle) + : +I think something stinks in here! +BARRY: +(Enjoying the spray) +I love the smell of flowers. +(Ken holds a lighter in front of the spray bottle) +KEN: +How do you like the smell of flames?! +BARRY: +Not as much. +(Ken fires his make-shift flamethrower but misses Barry, burning the +bathroom. He torches the whole room but looses his footing and falls into +the bathtub. After getting hit in the head by falling objects 3 times he +picks up the shower head, revealing a Water bug hiding under it) +WATER BUG: +Water bug! Not taking sides! + +(Barry gets up out of a pile of bathroom supplies and he is wearing a +chapstick hat) +BARRY: +Ken, I'm wearing a Chapstick hat! +This is pathetic! +(Ken switches the shower head to lethal) +KEN: +I've got issues! +(Ken sprays Barry with the shower head and he crash lands into the toilet) +(Ken menacingly looks down into the toilet at Barry) +Well, well, well, a royal flush! +BARRY: +- You're bluffing. +KEN: +- Am I? +(flushes toilet) +(Barry grabs a chapstick from the toilet seat and uses it to surf in the +flushing toilet) +BARRY: +Surf's up, dude! +(Barry flies out of the toilet on the chapstick and sprays Ken's face with +the toilet water) + : +EW,Poo water! +BARRY: +That bowl is gnarly. +KEN: +(Aiming a toilet cleaner at Barry) +Except for those dirty yellow rings! +(Barry cowers and covers his head and Vanessa runs in and takes the toilet +cleaner from Ken just before he hits Barry) +VANESSA: +Kenneth! What are you doing?! +KEN== +(Leaning towards Barry) + +You know, I don't even like honey! +I don't eat it! +VANESSA: +We need to talk! +(Vanessa pulls Ken out of the bathroom) + : +He's just a little bee! + : +And he happens to be +the nicest bee I've met in a long time! +KEN: +Long time? What are you talking about?! +Are there other bugs in your life? +VANESSA: +No, but there are other things bugging +me in life. And you're one of them! +KEN: +Fine! Talking bees, no yogurt night... + : +My nerves are fried from riding +on this emotional roller coaster! +VANESSA: +Goodbye, Ken. +(Ken huffs and walks out and slams the door. But suddenly he walks back in +and stares at Barry) + : +And for your information, +I prefer sugar-free, artificial +sweeteners MADE BY MAN! +(Ken leaves again and Vanessa leans in towards Barry) +VANESSA: +I'm sorry about all that. +(Ken walks back in again) + +KEN: +I know it's got +an aftertaste! I LIKE IT! +(Ken leaves for the last time) +VANESSA: +I always felt there was some kind +of barrier between Ken and me. + : +I couldn't overcome it. +Oh, well. + : +Are you OK for the trial? +BARRY: +I believe Mr. Montgomery +is about out of ideas. +(Flash forward in time and Barry, Adam, and Vanessa are back in court) +MONTGOMERY-- +We would like to call +Mr. Barry Benson Bee to the stand. +ADAM: +Good idea! You can really see why he's +considered one of the best lawyers... +(Barry stares at Adam) +...Yeah. +LAWYER: +Layton, you've +gotta weave some magic +with this jury, +or it's gonna be all over. +MONTGOMERY: +Don't worry. The only thing I have +to do to turn this jury around + : +is to remind them +of what they don't like about bees. +(To lawyer) + +- You got the tweezers? +LAWYER: +- Are you allergic? +MONTGOMERY: +Only to losing, son. Only to losing. + : +Mr. Benson Bee, I'll ask you +what I think we'd all like to know. + : +What exactly is your relationship +(Points to Vanessa) + : +to that woman? +BARRY: +We're friends. +MONTGOMERY: +- Good friends? +BARRY: +- Yes. +MONTGOMERY: +How good? Do you live together? +ADAM: +Wait a minute... + : +MONTGOMERY: +Are you her little... + : +...bedbug? +(Adam's stinger starts vibrating. He is agitated) +I've seen a bee documentary or two. +From what I understand, + + : +doesn't your queen give birth +to all the bee children? +BARRY: +- Yeah, but... +MONTGOMERY: +(Pointing at Janet and Martin) +- So those aren't your real parents! +JANET: +- Oh, Barry... +BARRY: +- Yes, they are! +ADAM: +Hold me back! +(Vanessa tries to hold Adam back. He wants to sting Montgomery) +MONTGOMERY: +You're an illegitimate bee, +aren't you, Benson? +ADAM: +He's denouncing bees! +MONTGOMERY: +Don't y'all date your cousins? +(Montgomery leans over on the jury stand and stares at Adam) +VANESSA: +- Objection! +(Vanessa raises her hand to object but Adam gets free. He flies straight at +Montgomery) +=ADAM: +- I'm going to pincushion this guy! +BARRY: +Adam, don't! It's what he wants! +(Adam stings Montgomery in the butt and he starts thrashing around) + +MONTGOMERY: +Oh, I'm hit!! + : +Oh, lordy, I am hit! +JUDGE BUMBLETON: +(Banging gavel) +Order! Order! +MONTGOMERY: +(Overreacting) +The venom! The venom +is coursing through my veins! + : +I have been felled +by a winged beast of destruction! + : +You see? You can't treat them +like equals! They're striped savages! + : +Stinging's the only thing +they know! It's their way! +BARRY: +- Adam, stay with me. +ADAM: +- I can't feel my legs. +MONTGOMERY: +(Overreacting and throwing his body around the room) +What angel of mercy +will come forward to suck the poison + : +from my heaving buttocks? +JUDGE BUMLBETON: +I will have order in this court. Order! + + : +Order, please! +(Flash forward in time and we see a human news reporter) +NEWS REPORTER: +The case of the honeybees +versus the human race + : +took a pointed turn against the bees + : +yesterday when one of their legal +team stung Layton T. Montgomery. +(Adam is laying in a hospital bed and Barry flies in to see him) +BARRY: +- Hey, buddy. +ADAM: +- Hey. +BARRY: +- Is there much pain? +ADAM: +- Yeah. + : +I... + : +I blew the whole case, didn't I? +BARRY: +It doesn't matter. What matters is +you're alive. You could have died. +ADAM: +I'd be better off dead. Look at me. +(A small plastic sword is replaced as Adam's stinger) +They got it from the cafeteria +downstairs, in a tuna sandwich. + + : +Look, there's +a little celery still on it. +(Flicks off the celery and sighs) +BARRY: +What was it like to sting someone? +ADAM: +I can't explain it. It was all... + : +All adrenaline and then... +and then ecstasy! +BARRY: +...All right. +ADAM: +You think it was all a trap? +BARRY: +Of course. I'm sorry. +I flew us right into this. + : +What were we thinking? Look at us. We're +just a couple of bugs in this world. +ADAM: +What will the humans do to us +if they win? +BARRY: +I don't know. +ADAM: +I hear they put the roaches in motels. +That doesn't sound so bad. +BARRY: +Adam, they check in, +but they don't check out! + +ADAM: +Oh, my. +(Coughs) +Could you get a nurse +to close that window? +BARRY: +- Why? +ADAM: +- The smoke. +(We can see that two humans are smoking cigarettes outside) + : +Bees don't smoke. +BARRY: +Right. Bees don't smoke. + : +Bees don't smoke! +But some bees are smoking. + : +That's it! That's our case! +ADAM: +It is? It's not over? +BARRY: +Get dressed. I've gotta go somewhere. + : +Get back to the court and stall. +Stall any way you can. +(Flash forward in time and Adam is making a paper boat in the courtroom) +ADAM: +And assuming you've done step 29 correctly, you're ready for the tub! +(We see that the jury have each made their own paper boats after being +taught how by Adam. They all look confused) +JUDGE BUMBLETON: + +Mr. Flayman. +ADAM: +Yes? Yes, Your Honor! +JUDGE BUMBLETON: +Where is the rest of your team? +ADAM: +(Continues stalling) +Well, Your Honor, it's interesting. + : +Bees are trained to fly haphazardly, + : +and as a result, +we don't make very good time. + : +I actually heard a funny story about... +MONTGOMERY: +Your Honor, +haven't these ridiculous bugs + : +taken up enough +of this court's valuable time? + : +How much longer will we allow +these absurd shenanigans to go on? + : +They have presented no compelling +evidence to support their charges + : +against my clients, +who run legitimate businesses. + : +I move for a complete dismissal + +of this entire case! +JUDGE BUMBLETON: +Mr. Flayman, I'm afraid I'm going + : +to have to consider +Mr. Montgomery's motion. +ADAM: +But you can't! We have a terrific case. +MONTGOMERY: +Where is your proof? +Where is the evidence? + : +Show me the smoking gun! +BARRY: +(Barry flies in through the door) +Hold it, Your Honor! +You want a smoking gun? + : +Here is your smoking gun. +(Vanessa walks in holding a bee smoker. She sets it down on the Judge's +podium) +JUDGE BUMBLETON: +What is that? +BARRY: +It's a bee smoker! +MONTGOMERY: +(Picks up smoker) +What, this? +This harmless little contraption? + : +This couldn't hurt a fly, +let alone a bee. +(Montgomery accidentally fires it at the bees in the crowd and they faint + +and cough) +(Dozens of reporters start taking pictures of the suffering bees) +BARRY: +Look at what has happened + : +to bees who have never been asked, +"Smoking or non?" + : +Is this what nature intended for us? + : +To be forcibly addicted +to smoke machines + : +and man-made wooden slat work camps? + : +Living out our lives as honey slaves +to the white man? +(Barry points to the honey industry owners. One of them is an African +American so he awkwardly separates himself from the others) +LAWYER: +- What are we gonna do? +- He's playing the species card. +BARRY: +Ladies and gentlemen, please, +free these bees! +ADAM AND VANESSA: +Free the bees! Free the bees! +BEES IN CROWD: +Free the bees! +HUMAN JURY: +Free the bees! Free the bees! +JUDGE BUMBLETON: +The court finds in favor of the bees! + +BARRY: +Vanessa, we won! +VANESSA: +I knew you could do it! High-five! +(Vanessa hits Barry hard because her hand is too big) + : +Sorry. +BARRY: +(Overjoyed) +I'm OK! You know what this means? + : +All the honey +will finally belong to the bees. + : +Now we won't have +to work so hard all the time. +MONTGOMERY: +This is an unholy perversion +of the balance of nature, Benson. + : +You'll regret this. +(Montgomery leaves and Barry goes outside the courtroom. Several reporters +start asking Barry questions) +REPORTER 1#: +Barry, how much honey is out there? +BARRY: +All right. One at a time. +REPORTER 2#: +Barry, who are you wearing? +BARRY: +My sweater is Ralph Lauren, +and I have no pants. + +(Barry flies outside with the paparazzi and Adam and Vanessa stay back) +ADAM: +(To Vanessa) +- What if Montgomery's right? +Vanessa: +- What do you mean? +ADAM: +We've been living the bee way +a long time, 27 million years. +(Flash forward in time and Barry is talking to a man) +BUSINESS MAN: +Congratulations on your victory. +What will you demand as a settlement? +BARRY: +First, we'll demand a complete shutdown +of all bee work camps. +(As Barry is talking we see a montage of men putting "closed" tape over the +work camps and freeing the bees in the crappy apartments) +Then we want back the honey +that was ours to begin with, + : +every last drop. +(Men in suits are pushing all the honey of the aisle and into carts) +We demand an end to the glorification +of the bear as anything more +(We see a statue of a bear-shaped honey container being pulled down by +bees) +than a filthy, smelly, +bad-breath stink machine. + : +We're all aware +of what they do in the woods. +(We see Winnie the Pooh sharing his honey with Piglet in the cross-hairs of +a high-tech sniper rifle) +BARRY: +(Looking through binoculars) + +Wait for my signal. + : +Take him out. +(Winnie gets hit by a tranquilizer dart and dramatically falls off the log +he was standing on, his tongue hanging out. Piglet looks at Pooh in fear +and the Sniper takes the honey.) +SNIPER: +He'll have nausea +for a few hours, then he'll be fine. +(Flash forward in time) +BARRY: +And we will no longer tolerate +bee-negative nicknames... +(Mr. Sting is sitting at home until he is taken out of his house by the men +in suits) +STING: +But it's just a prance-about stage name! +BARRY: +...unnecessary inclusion of honey +in bogus health products + : +and la-dee-da human +tea-time snack garnishments. +(An old lady is mixing honey into her tea but suddenly men in suits smash +her face down on the table and take the honey) +OLD LADY: +Can't breathe. +(A honey truck pulls up to Barry's hive) +WORKER: +Bring it in, boys! + : +Hold it right there! Good. + : +Tap it. + +(Tons of honey is being pumped into the hive's storage) +BEE WORKER 1#: +(Honey overflows from the cup) +Mr. Buzzwell, we just passed three cups, +and there's gallons more coming! + : +- I think we need to shut down! +=BEE WORKER #2= +- Shut down? We've never shut down. + : +Shut down honey production! +DEAN BUZZWELL: +Stop making honey! +(The bees all leave their stations. Two bees run into a room and they put +the keys into a machine) +Turn your key, sir! +(Two worker bees dramatically turn their keys, which opens the button which +they press, shutting down the honey-making machines. This is the first time +this has ever happened) +BEE: +...What do we do now? +(Flash forward in time and a Bee is about to jump into a pool full of +honey) +Cannonball! +(The bee gets stuck in the honey and we get a short montage of Bees leaving +work) +(We see the Pollen Jocks flying but one of them gets a call on his antenna) +LOU LU DUVA: +(Through "phone") +We're shutting honey production! + : +Mission abort. +POLLEN JOCK #1: +Aborting pollination and nectar detail. +Returning to base. +(The Pollen Jocks fly back to the hive) + +(We get a time lapse of Central Park slowly wilting away as the bees all +relax) +BARRY: +Adam, you wouldn't believe +how much honey was out there. +ADAM: +Oh, yeah? +BARRY: +What's going on? Where is everybody? +(The entire street is deserted) + : +- Are they out celebrating? +ADAM: +- They're home. + : +They don't know what to do. +Laying out, sleeping in. + : +I heard your Uncle Carl was on his way +to San Antonio with a cricket. +BARRY: +At least we got our honey back. +ADAM: +Sometimes I think, so what if humans +liked our honey? Who wouldn't? + : +It's the greatest thing in the world! +I was excited to be part of making it. + : +This was my new desk. This was my +new job. I wanted to do it really well. + : + +And now... + : +Now I can't. +(Flash forward in time and Barry is talking to Vanessa) +BARRY: +I don't understand +why they're not happy. + : +I thought their lives would be better! + : +They're doing nothing. It's amazing. +Honey really changes people. +VANESSA: +You don't have any idea +what's going on, do you? +BARRY: +- What did you want to show me? +(Vanessa takes Barry to the rooftop where they first had coffee and points +to her store) +VANESSA: +- This. +(Points at her flowers. They are all grey and wilting) +BARRY: +What happened here? +VANESSA: +That is not the half of it. +(Small flash forward in time and Vanessa and Barry are on the roof of her +store and she points to Central Park) +(We see that Central Park is no longer green and colorful, rather it is +grey, brown, and dead-like. It is very depressing to look at) +BARRY: +Oh, no. Oh, my. + : + +They're all wilting. +VANESSA: +Doesn't look very good, does it? +BARRY: +No. +VANESSA: +And whose fault do you think that is? +BARRY: +You know, I'm gonna guess bees. +VANESSA== +(Staring at Barry) +Bees? +BARRY: +Specifically, me. + : +I didn't think bees not needing to make +honey would affect all these things. +VANESSA: +It's not just flowers. +Fruits, vegetables, they all need bees. +BARRY: +That's our whole SAT test right there. +VANESSA: +Take away produce, that affects +the entire animal kingdom. + : +And then, of course... +BARRY: +The human species? + : +So if there's no more pollination, + + : +it could all just go south here, +couldn't it? +VANESSA: +I know this is also partly my fault. +BARRY: +How about a suicide pact? +VANESSA: +How do we do it? +BARRY: +- I'll sting you, you step on me. +VANESSA: +- That just kills you twice. +BARRY: +Right, right. +VANESSA: +Listen, Barry... +sorry, but I gotta get going. +(Vanessa leaves) +BARRY: +(To himself) +I had to open my mouth and talk. + : +Vanessa? + : +Vanessa? Why are you leaving? +Where are you going? +(Vanessa is getting into a taxi) +VANESSA: +To the final Tournament of Roses parade +in Pasadena. + : + +They've moved it to this weekend +because all the flowers are dying. + : +It's the last chance +I'll ever have to see it. +BARRY: +Vanessa, I just wanna say I'm sorry. +I never meant it to turn out like this. +VANESSA: +I know. Me neither. +(The taxi starts to drive away) +BARRY: +Tournament of Roses. +Roses can't do sports. + : +Wait a minute. Roses. Roses? + : +Roses! + : +Vanessa! +(Barry flies after the Taxi) +VANESSA: +Roses?! + : +Barry? +(Barry is flying outside the window of the taxi) +BARRY: +- Roses are flowers! +VANESSA: +- Yes, they are. +BARRY: +Flowers, bees, pollen! + +VANESSA: +I know. +That's why this is the last parade. +BARRY: +Maybe not. +Could you ask him to slow down? +VANESSA: +Could you slow down? +(The taxi driver screeches to a stop and Barry keeps flying forward) + : +Barry! +(Barry flies back to the window) +BARRY: +OK, I made a huge mistake. +This is a total disaster, all my fault. +VANESSA: +Yes, it kind of is. +BARRY: +I've ruined the planet. +I wanted to help you + : +with the flower shop. +I've made it worse. +VANESSA: +Actually, it's completely closed down. +BARRY: +I thought maybe you were remodeling. + : +But I have another idea, and it's +greater than my previous ideas combined. +VANESSA: +I don't want to hear it! + +BARRY: +All right, they have the roses, +the roses have the pollen. + : +I know every bee, plant +and flower bud in this park. + : +All we gotta do is get what they've got +back here with what we've got. + : +- Bees. +VANESSA: +- Park. +BARRY: +- Pollen! +VANESSA: +- Flowers. +BARRY: +- Re-pollination! +VANESSA: +- Across the nation! + : +Tournament of Roses, +Pasadena, California. + : +They've got nothing +but flowers, floats and cotton candy. + : +Security will be tight. +BARRY: +I have an idea. + +(Flash forward in time. Vanessa is about to board a plane which has all the +Roses on board. +VANESSA: +Vanessa Bloome, FTD. +(Holds out badge) + : +Official floral business. It's real. +SECURITY GUARD: +Sorry, ma'am. Nice brooch. +=VANESSA== +Thank you. It was a gift. +(Barry is revealed to be hiding inside the brooch) +(Flash back in time and Barry and Vanessa are discussing their plan) +BARRY: +Once inside, +we just pick the right float. +VANESSA: +How about The Princess and the Pea? + : +I could be the princess, +and you could be the pea! +BARRY: +Yes, I got it. + : +- Where should I sit? +GUARD: +- What are you? +BARRY: +- I believe I'm the pea. +GUARD: +- The pea? +VANESSA: + +It goes under the mattresses. +GUARD: +- Not in this fairy tale, sweetheart. +- I'm getting the marshal. +VANESSA: +You do that! +This whole parade is a fiasco! + : +Let's see what this baby'll do. +(Vanessa drives the float through traffic) +GUARD: +Hey, what are you doing?! +BARRY== +Then all we do +is blend in with traffic... + : +...without arousing suspicion. + : +Once at the airport, +there's no stopping us. +(Flash forward in time and Barry and Vanessa are about to get on a plane) +SECURITY GUARD: +Stop! Security. + : +- You and your insect pack your float? +VANESSA: +- Yes. +SECURITY GUARD: +Has it been +in your possession the entire time? +VANESSA: +- Yes. + +SECURITY GUARD: +Would you remove your shoes? +(To Barry) +- Remove your stinger. +BARRY: +- It's part of me. +SECURITY GUARD: +I know. Just having some fun. +Enjoy your flight. +(Barry plotting with Vanessa) +BARRY: +Then if we're lucky, we'll have +just enough pollen to do the job. +(Flash forward in time and Barry and Vanessa are flying on the plane) +Can you believe how lucky we are? We +have just enough pollen to do the job! +VANESSA: +I think this is gonna work. +BARRY: +It's got to work. +CAPTAIN SCOTT: +(On intercom) +Attention, passengers, +this is Captain Scott. + : +We have a bit of bad weather +in New York. + : +It looks like we'll experience +a couple hours delay. +VANESSA: +Barry, these are cut flowers +with no water. They'll never make it. +BARRY: + +I gotta get up there +and talk to them. +VANESSA== +Be careful. +(Barry flies right outside the cockpit door) +BARRY: +Can I get help +with the Sky Mall magazine? +I'd like to order the talking +inflatable nose and ear hair trimmer. +(The flight attendant opens the door and walks out and Barry flies into the +cockpit unseen) +BARRY: +Captain, I'm in a real situation. +CAPTAIN SCOTT: +- What'd you say, Hal? +CO-PILOT HAL: +- Nothing. +(Scott notices Barry and freaks out) +CAPTAIN SCOTT: +Bee! +BARRY: +No,no,no, Don't freak out! My entire species... +(Captain Scott gets out of his seat and tries to suck Barry into a handheld +vacuum) +HAL: +(To Scott) +What are you doing? +(Barry lands on Hals hair but Scott sees him. He tries to suck up Barry but +instead he sucks up Hals toupee) +CAPTAIN SCOTT: +Uh-oh. +BARRY: +- Wait a minute! I'm an attorney! + +HAL: +(Hal doesn't know Barry is on his head) +- Who's an attorney? +CAPTAIN SCOTT: +Don't move. +(Scott hits Hal in the face with the vacuum in an attempt to hit Barry. Hal +is knocked out and he falls on the life raft button which launches an +infalatable boat into Scott, who gets knocked out and falls to the floor. +They are both uncounscious.) +BARRY: +(To himself) +Oh, Barry. +BARRY: +(On intercom, with a Southern accent) +Good afternoon, passengers. +This is your captain. + : +Would a Miss Vanessa Bloome in 24B +please report to the cockpit? +(Vanessa looks confused) +(Normal accent) +...And please hurry! +(Vanessa opens the door and sees the life raft and the uncounscious pilots) +VANESSA: +What happened here? +BARRY: +I tried to talk to them, but +then there was a DustBuster, +a toupee, a life raft exploded. + : +Now one's bald, one's in a boat, +and they're both unconscious! +VANESSA: +...Is that another bee joke? +BARRY: + +- No! + : +No one's flying the plane! +BUD DITCHWATER: +(Through radio on plane) +This is JFK control tower, Flight 356. +What's your status? +VANESSA: +This is Vanessa Bloome. +I'm a florist from New York. +BUD: +Where's the pilot? +VANESSA: +He's unconscious, +and so is the copilot. +BUD: +Not good. Does anyone onboard +have flight experience? +BARRY: +As a matter of fact, there is. +BUD: +- Who's that? +BARRY: +- Barry Benson. +BUD: +From the honey trial?! Oh, great. +BARRY: +Vanessa, this is nothing more +than a big metal bee. + : +It's got giant wings, huge engines. + +VANESSA: +I can't fly a plane. +BARRY: +- Why not? Isn't John Travolta a pilot? +VANESSA: +- Yes. +BARRY: +How hard could it be? +(Vanessa sits down and flies for a little bit but we see lightning clouds +outside the window) +VANESSA: +Wait, Barry! +We're headed into some lightning. +(An ominous lightning storm looms in front of the plane) +(We are now watching the Bee News) +BOB BUMBLE: +This is Bob Bumble. We have some +late-breaking news from JFK Airport, + : +where a suspenseful scene +is developing. + : +Barry Benson, +fresh from his legal victory... +ADAM: +That's Barry! +BOB BUMBLE: +...is attempting to land a plane, +loaded with people, flowers + : +and an incapacitated flight crew. +JANET, MARTIN, UNCLE CAR AND ADAM: +Flowers?! +(The scene switches to the human news) + +REPORTER: +(Talking with Bob Bumble) +We have a storm in the area +and two individuals at the controls + : +with absolutely no flight experience. +BOB BUMBLE: +Just a minute. +There's a bee on that plane. +BUD: +I'm quite familiar with Mr. Benson +and his no-account compadres. + : +They've done enough damage. +REPORTER: +But isn't he your only hope? +BUD: +Technically, a bee +shouldn't be able to fly at all. + : +Their wings are too small... +BARRY: +(Through radio) +Haven't we heard this a million times? + : +"The surface area of the wings +and body mass make no sense."... +BOB BUMBLE: +- Get this on the air! +BEE: +- Got it. + +BEE NEWS CREW: +- Stand by. +BEE NEWS CREW: +- We're going live! +BARRY: +(Through radio on TV) +...The way we work may be a mystery to you. + : +Making honey takes a lot of bees +doing a lot of small jobs. + : +But let me tell you about a small job. + : +If you do it well, +it makes a big difference. + : +More than we realized. +To us, to everyone. + : +That's why I want to get bees +back to working together. + : +That's the bee way! +We're not made of Jell-O. + : +We get behind a fellow. + : +- Black and yellow! +BEES: +- Hello! +(The scene switches and Barry is teaching Vanessa how to fly) +BARRY: + +Left, right, down, hover. +VANESSA: +- Hover? +BARRY: +- Forget hover. +VANESSA: +This isn't so hard. +(Pretending to honk the horn) +Beep-beep! Beep-beep! +(A Lightning bolt hits the plane and autopilot turns off) +Barry, what happened?! +BARRY: +Wait, I think we were +on autopilot the whole time. +VANESSA: +- That may have been helping me. +BARRY: +- And now we're not! +VANESSA: +So it turns out I cannot fly a plane. +(The plane plummets but we see Lou Lu Duva and the Pollen Jocks, along with +multiple other bees flying towards the plane) +Lou Lu DUva: +All of you, let's get +behind this fellow! Move it out! + : +Move out! +(The scene switches back to Vanessa and Barry in the plane) +BARRY: +Our only chance is if I do what I'd do, +you copy me with the wings of the plane! +(Barry sticks out his arms like an airplane and flys in front of Vanessa's +face) + +VANESSA: +Don't have to yell. +BARRY: +I'm not yelling! +We're in a lot of trouble. +VANESSA: +It's very hard to concentrate +with that panicky tone in your voice! +BARRY: +It's not a tone. I'm panicking! +VANESSA: +I can't do this! +(Barry slaps Vanessa) +BARRY: +Vanessa, pull yourself together. +You have to snap out of it! +VANESSA: +(Slaps Barry) +You snap out of it. +BARRY: +(Slaps Vanessa) + : +You snap out of it. +VANESSA: +- You snap out of it! +BARRY: +- You snap out of it! +(We see that all the Pollen Jocks are flying under the plane) +VANESSA: +- You snap out of it! +BARRY: +- You snap out of it! + +VANESSA: +- You snap out of it! +BARRY: +- You snap out of it! +VANESSA: +- Hold it! +BARRY: +- Why? Come on, it's my turn. +VANESSA: +How is the plane flying? +(The plane is now safely flying) +VANESSA: +I don't know. +(Barry's antennae rings like a phone. Barry picks up) +BARRY: +Hello? +LOU LU DUVA: +(Through "phone") +Benson, got any flowers +for a happy occasion in there? +(All of the Pollen Jocks are carrying the plane) +BARRY: +The Pollen Jocks! + : +They do get behind a fellow. +LOU LU DUVA: +- Black and yellow. +POLLEN JOCKS: +- Hello. +LOU LU DUVA: +All right, let's drop this tin can + +on the blacktop. +BARRY: +Where? I can't see anything. Can you? +VANESSA: +No, nothing. It's all cloudy. + : +Come on. You got to think bee, Barry. +BARRY: +- Thinking bee. +- Thinking bee. +(On the runway there are millions of bees laying on their backs) +BEES: +Thinking bee! +Thinking bee! Thinking bee! +BARRY: +Wait a minute. +I think I'm feeling something. +VANESSA: +- What? +BARRY: +- I don't know. It's strong, pulling me. + : +Like a 27-million-year-old instinct. + : +Bring the nose down. +BEES: +Thinking bee! +Thinking bee! Thinking bee! +CONTROL TOWER OPERATOR: +- What in the world is on the tarmac? +BUD: +- Get some lights on that! + +(It is revealed that all the bees are organized into a giant pulsating +flower formation) +BEES: +Thinking bee! +Thinking bee! Thinking bee! +BARRY: +- Vanessa, aim for the flower. +VANESSA: +- OK. +BARRY: +Out the engines. We're going in +on bee power. Ready, boys? +LOU LU DUVA: +Affirmative! +BARRY: +Good. Good. Easy, now. That's it. + : +Land on that flower! + : +Ready? Full reverse! + : +Spin it around! +(The plane's nose is pointed at a flower painted on a nearby plane) +- Not that flower! The other one! +VANESSA: +- Which one? +BARRY: +- That flower. +(The plane is now pointed at a fat guy in a flowered shirt. He freaks out +and tries to take a picture of the plane) +VANESSA: +- I'm aiming at the flower! + +BARRY: +That's a fat guy in a flowered shirt. +I mean the giant pulsating flower +made of millions of bees! +(The plane hovers over the bee-flower) + : +Pull forward. Nose down. Tail up. + : +Rotate around it. +VANESSA: +- This is insane, Barry! +BARRY: +- This's the only way I know how to fly. +BUD: +Am I koo-koo-kachoo, or is this plane +flying in an insect-like pattern? +(The plane is unrealistically hovering and spinning over the bee-flower) +BARRY: +Get your nose in there. Don't be afraid. +Smell it. Full reverse! + : +Just drop it. Be a part of it. + : +Aim for the center! + : +Now drop it in! Drop it in, woman! + : +Come on, already. +(The bees scatter and the plane safely lands) +VANESSA: +Barry, we did it! +You taught me how to fly! + +BARRY: +- Yes! +(Vanessa is about to high-five Barry) +No high-five! +VANESSA: +- Right. +ADAM: +Barry, it worked! +Did you see the giant flower? +BARRY: +What giant flower? Where? Of course +I saw the flower! That was genius! +ADAM: +- Thank you. +BARRY: +- But we're not done yet. + : +Listen, everyone! + : +This runway is covered +with the last pollen + : +from the last flowers +available anywhere on Earth. + : +That means this is our last chance. + : +We're the only ones who make honey, +pollinate flowers and dress like this. + : +If we're gonna survive as a species, +this is our moment! What do you say? + + : +Are we going to be bees, or just +Museum of Natural History keychains? +BEES: +We're bees! +BEE WHO LIKES KEYCHAINS: +Keychain! +BARRY: +Then follow me! Except Keychain. +POLLEN JOCK #1: +Hold on, Barry. Here. + : +You've earned this. +BARRY: +Yeah! + : +I'm a Pollen Jock! And it's a perfect +fit. All I gotta do are the sleeves. +(The Pollen Jocks throw Barry a nectar-collecting gun. Barry catches it) +Oh, yeah. +JANET: +That's our Barry. +(Barry and the Pollen Jocks get pollen from the flowers on the plane) +(Flash forward in time and the Pollen Jocks are flying over NYC) + : +(Barry pollinates the flowers in Vanessa's shop and then heads to Central +Park) +BOY IN PARK: +Mom! The bees are back! +ADAM: +(Putting on his Krelman hat) +If anybody needs + +to make a call, now's the time. + : +I got a feeling we'll be +working late tonight! +(The bee honey factories are back up and running) +(Meanwhile at Vanessa's shop) +VANESSA: +(To customer) +Here's your change. Have a great +afternoon! Can I help who's next? + : +Would you like some honey with that? +It is bee-approved. Don't forget these. +(There is a room in the shop where Barry does legal work for other animals. +He is currently talking with a Cow) +COW: +Milk, cream, cheese, it's all me. +And I don't see a nickel! + : +Sometimes I just feel +like a piece of meat! +BARRY: +I had no idea. +VANESSA: +Barry, I'm sorry. +Have you got a moment? +BARRY: +Would you excuse me? +My mosquito associate will help you. +MOOSEBLOOD: +Sorry I'm late. +COW: +He's a lawyer too? + +MOOSEBLOOD: +Ma'am, I was already a blood-sucking parasite. +All I needed was a briefcase. +VANESSA: +Have a great afternoon! + : +Barry, I just got this huge tulip order, +and I can't get them anywhere. +BARRY: +No problem, Vannie. +Just leave it to me. +VANESSA: +You're a lifesaver, Barry. +Can I help who's next? +BARRY: +All right, scramble, jocks! +It's time to fly. +VANESSA: +Thank you, Barry! +(Ken walks by on the sidewalk and sees the "bee-approved honey" in +Vanessa's shop) +KEN: +That bee is living my life!! +ANDY: +Let it go, Kenny. +KEN: +- When will this nightmare end?! +ANDY: +- Let it all go. +BARRY: +- Beautiful day to fly. +POLLEN JOCK: + +- Sure is. +BARRY: +Between you and me, +I was dying to get out of that office. +(Barry recreates the scene near the beginning of the movie where he flies +through the box kite. The movie fades to black and the credits being) +[--after credits; No scene can be seen but the characters can be heard +talking over the credits--] +You have got +to start thinking bee, my friend! + : +- Thinking bee! +- Me? +BARRY: +(Talking over singer) +Hold it. Let's just stop +for a second. Hold it. + : +I'm sorry. I'm sorry, everyone. +Can we stop here? +SINGER: +Oh, BarryBARRY: +I'm not making a major life decision +during a production number! +SINGER: +All right. Take ten, everybody. +Wrap it up, guys. +BARRY: +I had virtually no rehearsal for that. + diff --git a/blog/blendos.html b/blog/blendos.html new file mode 100644 index 0000000..f5a59f5 --- /dev/null +++ b/blog/blendos.html @@ -0,0 +1,82 @@ + + + + + + Checking out blendOS + + + + +

Checking out blendOS

+

blendOS is self-described as "Arch Linux, made declarative, + immutable and atomic." And yeah, that's a pretty good + description of what it is. But you can never really + tell what a distro is like without trying it, so...

+

Installation

+

I decided to just run blendOS in a virtual machine; I had a + bunch of data I hadn't backed up yet and was actively working + on, and didn't feeling like switching yet given I had no + experience with blendOS v4[^1] - I've actually tried blendOS v3 + before, back when v4 was in alpha, but it had practically zero + documentation, not even man pages, so I gave up on + it very quickly. But with v4, hopefully it's improved since + then.

+

First use

+

Upon first boot, blendOS drops you into a pretty standard + GNOME session, on account of the /system.yaml file + by default:

+
impl: http://github.com/blend-os/tracks/raw/main
+repo: https://pkg-repo.blendos.co
+track: default-gnome
+

At first I wasn't sure what impl is doing, but it seems to be + combined with the track to get the URL for the raw + yaml file[^1].

+

This is actually a really interesting bit which isn't + documented, as it means you can just, say, host your own + track(s) for all your computers in a Git repo, and they can each + inherit from other configs[^2] or be overridden locally; this + actually seems like a very interesting and viable way to + centrally manage many computers running Linux, and given I'm + constantly switching between several computers; I can just put + my config(s) in one repo, and pull from that.

+

Configuration

+

It's quite basic, but blendOS actually works very well for + me; I already have a Git repo of all my + configs, which are intended to be run from a clean + installation automatically, so for blendOS I just have to put + those scripts into the yaml file and adapt it so the packages + are listed in the YAML rather than being installed with + pacman or yay.

+

Problems

+

Biggest of all blendOS's problems is how slow it is to + rebuild. It doesn't save "layers" of packages like rpm-ostree + (as used by Fedora atomic)

+

Wishlist

+

Sources

+ +

Footnotes

+ + + + + + diff --git a/blog/blendos.md b/blog/blendos.md new file mode 100644 index 0000000..465e256 --- /dev/null +++ b/blog/blendos.md @@ -0,0 +1,70 @@ +# Checking out blendOS + +blendOS is self-described as "Arch Linux, made declarative, immutable and atomic." And yeah, that's a pretty good description of what it is. But you can never *really* tell what a distro is like without trying it, so... + +## Installation + +I decided to just run blendOS in a virtual machine; I had a bunch of data I hadn't backed up yet and was actively working on, and didn't feeling like switching yet given I had no experience with blendOS v4[^1] - I've actually tried blendOS v3 before, back when v4 was in alpha, but it had practically zero documentation, not even `man` pages, so I gave up on it very quickly. But with v4, hopefully it's improved since then. + +## First use + +Upon first boot, blendOS drops you into a pretty standard GNOME session, on account of the `/system.yaml` file by default: + +```yaml +impl: http://github.com/blend-os/tracks/raw/main +repo: https://pkg-repo.blendos.co +track: default-gnome +``` + +At first I wasn't sure what impl is doing, but it seems to be combined with the track to get the URL for the raw `yaml` file[^1]. + +This is actually a really interesting bit *which isn't documented*, as it means you can just, say, host your own track(s) for all your computers in a Git repo, and they can each inherit from other configs[^2] or be overridden locally; this actually seems like a very interesting and viable way to centrally manage many computers running Linux, and given I'm constantly switching between several computers; I can just put my config(s) in one repo, and pull from that. + +## Configuration + +blendOS's configuration is really simple: + +```yaml +impl: http://github.com/blend-os/tracks/raw/main +repo: https://pkg-repo.blendos.co +track: default-gnome + +arch-repo: 'https://repo-goes-here.example' + +packages: + - 'fish' + +aur-packages: + - 'EVEN-MORE-FISH' + +services: + - 'service-goes-here' + +user-services: + - 'user-service-goes-here' + +package-repos: + - name: 'repo name' + repo-url: 'https://repo.url' + +commands: + 'echo hiiiiiii > /home/user/helloooooo' +``` + +It's quite basic, but blendOS actually works very well for me; I already have a Git repo of [all my configs](https://git.askiiart.net/askiiart/configs), which are intended to be run from a clean installation automatically, so for blendOS I just have to put those scripts into the yaml file and adapt it so the packages are listed in the YAML rather than being installed with `pacman` or `yay`. + +## Problems + +Biggest of all blendOS's problems is how slow it is to rebuild. It doesn't save "layers" of packages like [`rpm-ostree`](https://github.com/coreos/rpm-ostree) (as used by Fedora atomic) + +## Wishlist + +## Sources + +- \[1\] [blendOS homepage](https://blendos.co/) +- \[2\] [blendOS post-install intro](https://blendos.co/install/post-install/intro/) + +## Footnotes + +- [^1] That is, `http://github.com/blend-os/tracks/raw/main` + `/` + `default-gnome` + `.yaml` +- [^2] In the provided `blend-os/tracks` repo, `default-gnome` actually inherits from the `gnome` track. diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..33d052e --- /dev/null +++ b/feed.xml @@ -0,0 +1,11 @@ + + + + + askiiart.net + The feed for askiiart.net, I guess + https://askiiart.net + Sun, 25 Aug 2024 16:56:47 +0000 + + + \ No newline at end of file diff --git a/generate-rss.sh b/generate-rss.sh new file mode 100755 index 0000000..40b688b --- /dev/null +++ b/generate-rss.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# Makes RSS feed (feed.xml) +# Currently missing description and pubDate +# Based off https://en.wikipedia.org/wiki/RSS, particularly the example +printf "\n\n\n\n eng.askiiart.net\n This is the feed for engl.askiiart.net, I guess\n https://askiiart.net\n $(TZ='UTC' date --rfc-2822)" >feed.xml +find . -path ./error -prune -o -name '*.html' -print | while read -r item; do + # Skip template.html, wishlist.html, resume.html, and portfolio.html + if [[ ${item} == "./index.html" || ${item} == "./template.html" ]]; then + continue + fi + item="${item%.*}" + item="${item#./}" + TITLE=$(grep -m 1 -oP '(?<=^# ).*' ${item}.md | cat) + printf "\n \n ${TITLE}\n https://engl.askiiart.net/${item}.html\n " >>feed.xml +done +printf "\n\n\n" >>feed.xml diff --git a/generate-sitemap.sh b/generate-sitemap.sh new file mode 100755 index 0000000..c77d30f --- /dev/null +++ b/generate-sitemap.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +### Stolen from TCCD-CompSci-and-Coding-Club/website on Codeberg (also written by me) + +# Taken from here and modified: https://www.lostsaloon.com/technology/how-to-create-an-xml-sitemap-using-wget-and-shell-script/ +# (https://web.archive.org/web/20231202193251/https://www.lostsaloon.com/technology/how-to-create-an-xml-sitemap-using-wget-and-shell-script/) (https://archive.ph/qtdMP) +sitedomain=https://engl.askiiart.net/ +dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +wget --spider --recursive --level=inf --output-file=$dir/linklist.txt $sitedomain +# greps for the relevant lines, gets the URLs, gets only the lines for $sitedomain, and sorts them +# wget's output changed, so this line had to be updated +# also, not sure why it ends up working, since there's a leading space in the lines after `awk` runs, but it works soooo i'mnot gonna mess with it +grep "Adding URL:" $dir/linklist.txt | awk -F 'Adding URL:' '{print $2}' | grep "$sitedomain" | sort -u >$dir/sortedurls.txt +header='' +echo $header >sitemap.xml +while read p; do + case "$p" in + */ | *.html | *.htm) + echo ''$p'' >>sitemap.xml + ;; + *) ;; + esac +done <$dir/sortedurls.txt +echo "" >>sitemap.xml +rm $dir/linklist.txt +rm $dir/sortedurls.txt diff --git a/index.html b/index.html new file mode 100644 index 0000000..979b07c --- /dev/null +++ b/index.html @@ -0,0 +1,24 @@ + + + + + + Computers and stuff + + + + +

Computers and stuff

+

This is a site! Doing... stuff with computers. Interesting + and sometimes funny stuff, at least to me.

+

Pages

+ + + + + + diff --git a/index.md b/index.md new file mode 100644 index 0000000..4c7811e --- /dev/null +++ b/index.md @@ -0,0 +1,7 @@ +# Computers and stuff + +This is a site! Doing... stuff with computers. Interesting and sometimes funny stuff, at least to me. + +## Pages + +- [Checking out blendOS](/blog/blendos.html) diff --git a/md2html.sh b/md2html.sh new file mode 100755 index 0000000..e2e34bf --- /dev/null +++ b/md2html.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -e + +dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +find . -name "*.md" | while read -r item; do + item="${item%.*}" + echo "Currently processing ${item}" + pandoc -f markdown-smart --data-dir . --template ${dir}/template.html -t html -o ${item}.html ${item}.md --metadata title="$(grep -m 1 -oP '(?<=^# ).*' ${item}.md | cat)" + sed -i s/sourceCode\ /language-/g ${item}.html + python3 $dir/regex-chicanery.py ${item}.html +done diff --git a/prism.css b/prism.css new file mode 100644 index 0000000..537b6fd --- /dev/null +++ b/prism.css @@ -0,0 +1,219 @@ +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+bash+css-extras+csv+docker+excel-formula+git+java+javadoc+javadoclike+javastacktrace+json+json5+log+markdown+nginx+nix+python+rust+sql+yaml&plugins=line-numbers+show-language+toolbar+copy-to-clipboard */ +code[class*=language-], +pre[class*=language-] { + color: #f8f8f2; + background: #0e0f0f; + text-shadow: 0 1px rgba(0, 0, 0, .3); + font-family: 'FiraCode', 'Nimbus Mono PS', 'Liberation Mono', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', 'Lucida Console', monospace; + font-size: 0.95em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none +} + +pre[class*=language-] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: .3em +} + +:not(pre)>code[class*=language-], +pre[class*=language-] { + background: #0e0f0f +} + +:not(pre)>code[class*=language-] { + padding: .1em; + border-radius: .3em; + white-space: normal +} + +.token.cdata, +.token.comment, +.token.doctype, +.token.prolog { + color: #8292a2 +} + +.token.punctuation { + color: #f8f8f2 +} + +.token.namespace { + opacity: .7 +} + +.token.constant, +.token.deleted, +.token.property, +.token.symbol, +.token.tag { + color: #f92672 +} + +.token.boolean, +.token.number { + color: #ae81ff +} + +.token.attr-name, +.token.builtin, +.token.char, +.token.inserted, +.token.selector, +.token.string { + color: #a6e22e +} + +.language-css .token.string, +.style .token.string, +.token.entity, +.token.operator, +.token.url, +.token.variable { + color: #f8f8f2 +} + +.token.atrule, +.token.attr-value, +.token.class-name, +.token.function { + color: #e6db74 +} + +.token.keyword { + color: #66d9ef +} + +.token.important, +.token.regex { + color: #fd971f +} + +.token.bold, +.token.important { + font-weight: 700 +} + +.token.italic { + font-style: italic +} + +.token.entity { + cursor: help +} + +pre[class*=language-].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber +} + +pre[class*=language-].line-numbers>code { + position: relative; + white-space: inherit +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; + letter-spacing: -1px; + border-right: 1px solid #999; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.line-numbers-rows>span { + display: block; + counter-increment: linenumber +} + +.line-numbers-rows>span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: .8em; + text-align: right +} + +div.code-toolbar { + position: relative +} + +div.code-toolbar>.toolbar { + position: absolute; + z-index: 10; + top: .3em; + right: .2em; + transition: opacity .3s ease-in-out; + opacity: 0 +} + +div.code-toolbar:hover>.toolbar { + opacity: 1 +} + +div.code-toolbar:focus-within>.toolbar { + opacity: 1 +} + +div.code-toolbar>.toolbar>.toolbar-item { + display: inline-block +} + +div.code-toolbar>.toolbar>.toolbar-item>a { + cursor: pointer +} + +div.code-toolbar>.toolbar>.toolbar-item>button { + background: 0 0; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none +} + +div.code-toolbar>.toolbar>.toolbar-item>a, +div.code-toolbar>.toolbar>.toolbar-item>button, +div.code-toolbar>.toolbar>.toolbar-item>span { + color: #bbb; + font-size: .8em; + padding: 0 .5em; + background: #f5f2f0; + background: rgba(224, 224, 224, .2); + box-shadow: 0 2px 0 0 rgba(0, 0, 0, .2); + border-radius: .5em +} + +div.code-toolbar>.toolbar>.toolbar-item>a:focus, +div.code-toolbar>.toolbar>.toolbar-item>a:hover, +div.code-toolbar>.toolbar>.toolbar-item>button:focus, +div.code-toolbar>.toolbar>.toolbar-item>button:hover, +div.code-toolbar>.toolbar>.toolbar-item>span:focus, +div.code-toolbar>.toolbar>.toolbar-item>span:hover { + color: inherit; + text-decoration: none +} \ No newline at end of file diff --git a/prism.js b/prism.js new file mode 100644 index 0000000..b447219 --- /dev/null +++ b/prism.js @@ -0,0 +1,31 @@ +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+bash+css-extras+csv+docker+excel-formula+git+java+javadoc+javadoclike+javastacktrace+json+json5+log+markdown+nginx+nix+python+rust+sql+yaml&plugins=line-numbers+show-language+toolbar+copy-to-clipboard */ +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); +Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; +!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); +Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; +Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; +!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=a,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},i={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:i,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:i})}(Prism); +Prism.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}; +!function(e){var n="(?:[ \t]+(?![ \t])(?:)?|)".replace(//g,(function(){return"\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])"})),r="\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'",t="--[\\w-]+=(?:|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(//g,(function(){return r})),o={pattern:RegExp(r),greedy:!0},i={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function a(e,r){return e=e.replace(//g,(function(){return t})).replace(//g,(function(){return n})),RegExp(e,r)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:a("(^(?:ONBUILD)?\\w+)(?:)*","i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[o,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:a("(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\\b","i"),lookbehind:!0,greedy:!0},{pattern:a("(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\\\]+)AS","i"),lookbehind:!0,greedy:!0},{pattern:a("(^ONBUILD)\\w+","i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:i,string:o,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:i},e.languages.dockerfile=e.languages.docker}(Prism); +Prism.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"builtin"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"selector",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"selector"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},Prism.languages.xlsx=Prism.languages.xls=Prism.languages["excel-formula"]; +Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}; +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); +!function(a){var e=a.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(e,"addSupport",{value:function(e,n){"string"==typeof e&&(e=[e]),e.forEach((function(e){!function(e,n){var t="doc-comment",r=a.languages[e];if(r){var o=r[t];if(o||(o=(r=a.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[t]),o instanceof RegExp&&(o=r[t]={pattern:o}),Array.isArray(o))for(var i=0,s=o.length;i/g,(function(){return"#\\s*\\w+(?:\\s*\\([^()]*\\))?"}));a.languages.javadoc=a.languages.extend("javadoclike",{}),a.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp("(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)(?:"+n+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:a.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:e,lookbehind:!0,inside:a.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:e,lookbehind:!0,inside:{tag:a.languages.markup.tag,entity:a.languages.markup.entity,code:{pattern:/.+/,inside:a.languages.java,alias:"language-java"}}}}}],tag:a.languages.markup.tag,entity:a.languages.markup.entity}),a.languages.javadoclike.addSupport("java",a.languages.javadoc)}(Prism); +Prism.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}; +Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; +!function(n){var e=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;n.languages.json5=n.languages.extend("json",{property:[{pattern:RegExp(e.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:e,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(Prism); +Prism.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:Prism.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp("\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))|\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b|\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b","i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}; +!function(n){function e(n){return n=n.replace(//g,(function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))"})),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var t="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",a="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,(function(){return t})),i="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(t),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(t),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e("(~~?)(?:(?!~))+\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:e('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(e){["url","bold","italic","strike","code-snippet"].forEach((function(t){e!==t&&(n.languages.markdown[e].inside.content.inside[t]=n.languages.markdown[t])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t",quot:'"'},l=String.fromCodePoint||String.fromCharCode;n.languages.md=n.languages.markdown}(Prism); +!function(e){var n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}(Prism); +Prism.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside=Prism.languages.nix; +Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python; +!function(e){for(var a="/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/",t=0;t<2;t++)a=a.replace(//g,(function(){return a}));a=a.replace(//g,(function(){return"[^\\s\\S]"})),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); +Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; +!function(e){var n=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,t="(?:"+r.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+r.source+")?)",a="(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g,(function(){return"[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"})),d="\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";function o(e,n){n=(n||"").replace(/m/g,"")+"m";var r="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\\]|\\}|(?:[\r\n]\\s*)?#))".replace(/<>/g,(function(){return t})).replace(/<>/g,(function(){return e}));return RegExp(r,n)}e.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(/<>/g,(function(){return t}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g,(function(){return t})).replace(/<>/g,(function(){return"(?:"+a+"|"+d+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:o("false|true","i"),lookbehind:!0,alias:"important"},null:{pattern:o("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:o(d),lookbehind:!0,greedy:!0},number:{pattern:o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:r,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism); +!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;r/dev/null && pwd) + +cd $SCRIPT_DIR +./md2html.sh +./generate-rss.sh +./generate-sitemap.sh \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..fecf262 --- /dev/null +++ b/style.css @@ -0,0 +1,108 @@ +@font-face { + /* from https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode */ + font-family: "FiraCode"; + src: url('/FiraCodeNerdFontMono-Regular.woff2'); +} + +/* from Google Fonts, under the Open Font License */ +@font-face { + font-family: "Atkinson Hyperlegible"; + src: local('Atkinson Hyperlegible'), url('/AtkinsonHyperlegible-Regular.woff2'); +} + +@font-face { + font-family: "Atkinson Hyperlegible Bold"; + src: local('Atkinson Hyperlegible Bold'), url('/AtkinsonHyperlegible-Bold.woff2'); +} + +@font-face { + font-family: "Atkinson Hyperlegible Italic"; + src: local('Atkinson Hyperlegible Italic'), url('/AtkinsonHyperlegible-Italic.woff2'); +} + +@font-face { + font-family: "Atkinson Hyperlegible Bold Italic"; + src: local('Atkinson Hyperlegible Bold Italic'), url('/AtkinsonHyperlegible-BoldItalic.woff2'); +} + +body { + color: #dadada; + background: #181a1b; + margin: 1em auto; + max-width: 90vw; + padding: 0 .62em; +} + +li { + font-family: 'Atkinson Hyperlegible'; +} + +p, +footer { + font: 18px/1.35 'Atkinson Hyperlegible', sans-serif; +} + +a:link, +a:visited { + color: #80c47b; +} + +a:hover, +a:visited:hover { + color: #6bb794 +} + +h1 { + font: 36px/1.2 'Atkinson Hyperlegible Bold', sans-serif; +} + +h2, +h3 { + font: 24px/1.2 'Atkinson Hyperlegible Bold', sans-serif; +} + +h4 { + font: 20px/1.2 'Atkinson Hyperlegible Bold', sans-serif; +} + +code { + background: #0e0f0f; + border-radius: .2em; + padding: .125em; +} + +wrap { + word-wrap: break-word +} + +@media (max-device-width: 1200px) { + h1 { + line-height: 1.2; + font-size: 40px; + } + + h2 { + line-height: 1.2; + font-size: 30px; + } + + body { + font-size: 20px; + } +} + +@media print { + body { + max-width: none + } +} + +footer { + text-align: center; +} + +blockquote { + border-left: 3px solid #59997a; + padding-left: 1em; + margin-left: 0.5; +} \ No newline at end of file diff --git a/template.html b/template.html new file mode 100644 index 0000000..f365534 --- /dev/null +++ b/template.html @@ -0,0 +1,18 @@ + + + + + + $title$ + + + + + $body$ + + + + +