[HN Gopher] I built a receipt printer for GitHub issues ___________________________________________________________________ I built a receipt printer for GitHub issues Author : horsellama Score : 562 points Date : 2022-03-25 15:49 UTC (7 hours ago) (HTM) web link (aschmelyun.com) (TXT) w3m dump (aschmelyun.com) | fractalf wrote: | Very kool! Good job :) | mirchiseth wrote: | imagine denial of paper attack | jddil wrote: | Fantastic idea, I hope we see a resurgence in this type of | tactile, physical tech. | | I also wish there was a metal spike to put closed issues on as | mentioned in another comment, lol. Just makes sense. | Felger wrote: | Printing GitHub issues on receipt ? Are you trying to compete | with the FED's money printing rate ? | mottiden wrote: | This is so good. I love it! | tevon wrote: | This is awesome, I'd add a QR code with the link to the bottom | (if possible on printer). | | Then could scan with your phone to bring the issue up for | immediate triage. I imagine lots of issues can be closed right | away (or very quickly). | Darkphibre wrote: | Heh, that's in the article under _Wrapping up and next steps_ | | > For the tickets themselves, a QR code could be added to link | directly to the issue on GitHub. You could also add in more | details from the issue itself like tags and severity. | andix wrote: | The printers unusually can create barcodes and some of them | also QR codes. | | But it is also possible to print images. You can also configure | them as standard printers and print via any common printing | system (cups, windows spooler, ...) | dev_tty01 wrote: | If it could be closed right away, wouldn't you do that before | you print it out? Perhaps I'm a luddite, but wouldn't typing | the ticket number into a box almost certainly be faster than | getting your phone out, turning it on and scanning the code? | iamjackg wrote: | I bought all the equipment to do something like this a while ago, | and wanted to set up a script that would print a daily briefing | every morning. Then I realized that I would basically be | generating tons of garbage for an absolutely frivolous purpose, | so I never did it. | | I did end up reusing the printer to turn it into a Game Boy | Printer, though! ...And I make sure to only print pictures I plan | on keeping. ;) | | https://github.com/iamjackg/esp32-phomemo-gameboy-printer | briandoll wrote: | Very cool, reminded me of one of our fist winners of the first | GitHub Data Challenge, where someone made a daily newspaper out | of their GitHub feed using a thermal printer: | https://github.com/alx/Le-Github via | https://github.blog/2012-06-12-github-data-challenge-winners... | chagaif wrote: | I'd love to have something like this | notimpotent wrote: | Your Side Projects link to Github in the first sentence is 404. | aschmelyun wrote: | Thanks for letting me know, a fix for that is going out now! | PaulHoule wrote: | I thought about doing something like this so I could turn the | tickets I work on into paper tickets but never quite got around | to it. | | (I did buy a cheap receipt printer on eBay though and managed to | burn it out in the first 10 minutes of printing. ProTip: a | receipt printer with the width specified in inches is likely to | be a quality printer by a reputable manufacturer, one specified | in mm is likely to be a piece of junk from China.) | | Adding a QR code would help a lot in terms of making a cyber- | physical object where you could close the ticket by pointing at | it... | jonpalmisc wrote: | What's the reason behind the inches vs millimeters distinction? | I understand it's just a heuristic but I don't get what the | underlying cause is. | w0m wrote: | english == Made in America; Quality. metric == Chinese; Piece | of crap | | is the intention I think. Not a fair distinction imho, but to | each their own. | PaulHoule wrote: | I am buying these off eBay in the United States. English | units might mean "culturally sensitive" which is a tracer | for quality. | | A Zebra or NCR sold in the US will be marketed with English | units, the same printer is probably marketed in the E.U. | with metric units. | | The people selling the off brand printer might not know or | could care less what units are used in the area it is being | marketed in, which is a tracer for them not caring about | any other quality attributes of the product. | PaulHoule wrote: | I've had a few crap Chinese receipt printers. I do | appreciate that they print Chinese characters because I | print a lot of anime fan art and art reproductions of 19th | century Japanese prints and like to put as much kanji as I | can on the back sides. On the other hand other than some | official Pokemon art that renders beautifully on thermal | printers because it was thought through like the Ansel | Adams Zone System | | https://safebooru.donmai.us/posts/2477177 | | I do almost all this work with inkjet printers and | rasterize it all myself. | | (I wrote my own text rendering engine for vertical CJK | text, not because I was unhappy with the results I got | printing characters with uniformly square metrics but | because I wanted western characters and dingbats I | introduced to look good. Sooner or later I'll probably | write my own text rendering engine for horizontal roman | text because I haven't met a kerning engine I really like | and because there are many typographical details like | ordinals (e.g. 5k) that I'd like to have better control | of.) | fmakunbound wrote: | I once tried a thermal paper print experiment for completed | pomodoros to see if sense of accomplishment was improved with | something physical. | [deleted] | daneel_w wrote: | I don't mean to critique the creation, but nobody would bat an | eye at an identical solution printing the issues on a normal A4 | desktop printer. The lyrical praise and the raving reviews | entirely hinge on the gimmicky and "comic" detail of a receipt | printer being used instead. Is the hacker community really this | under-stimulated? | jddil wrote: | The UX between a A4 desktop printer and a receipt printer is | different, this is almost in the realm of a practical solution | to a real tech problem (almost). | | Also, not speaking for others but I enjoyed it because it's a | great example of the hacker mindset and their willingness to | write a blogpost to share it with others made my day slightly | better. | phphphphp wrote: | If you look close enough at anything (and everything) you can | reduce it in the same way. The sum of human experience is just | meaningless stimulation: if receipt paper is the thing that | stimulates us today, so be it, it's no less valid than watching | a rocket zoom into space. What is it to be human if not to | enjoy whimsy? | amelius wrote: | Huh? A rocket sending a telescope into space is much greater | news than a receipt printer connected to yet another data | source. | jbverschoor wrote: | And then you hang it on your kanban board ;-) | nsenifty wrote: | Bonus: Old stale issues automatically fade away! | toomuchtodo wrote: | Throw a QR code on there with a link to the issue to close the | loop! | leovander wrote: | They mention that in the post at the end. | JackMcMack wrote: | A long time ago we tried to do something similar with a jira | kanban board. We were using thermal printer paper with a | repositional adhesive, like post-it notes. | | You need a printer with integrated cutter, the Epson TM-88 used | here will work. You can directly print and stick. For our use | case the 80mm width was a tad too small. If you're printing | "landscape" on the thermal printer, the text is not big enough to | fit a ticket title in a reasonably sized sticky note. It works, | but it's not really readable from more than a few meters. | | The paper is from MaxStick (no affiliation). Depending on your | use case, pick a glue pattern without full coverage (e.g. center | adhesive), so you can easily move the paper without having to pry | your fingernails under an edge. | | https://maxstick.com/ | | https://github.com/wannessels/stickyprint | tpict wrote: | Building one of these is probably easier than wrangling the | GitHub notifications settings into having a meaningful | signal:noise | aschmelyun wrote: | Literally why I built this in the first place. Work is one | thing, but my side project issue notifications kind of just got | lost in the mix of noise coming through my email, and I'd | forget to check them out. | gotaquestion wrote: | This is a really funny read for a Friday morning. | | It should play an MP3 of a line cook in a busy diner shouting, | "Order up!", and then he can stick it on a rotating order wheel | hanging above his desk. | | EDIT: One of these things: | https://www.webstaurantstore.com/choice-stainless-steel-orde... | AdmiralAsshat wrote: | I'm sure the diner frycook would love to be able to send back | every burger order he got with "Closed; won't fix". | RankingMember wrote: | "Not a bug...a hair" | jasonwatkinspdx wrote: | A friend shared this, and my response then was that the author | should go tell his plan to a line cook and see what response he | gets :P | | For those who haven't been around kitchen culture, it's common | to joke about having nightmares about the sound of the ticket | printer. | nescioquid wrote: | Is the sound objectionable or do you mean that it triggers a | conditioned response? | otterley wrote: | Have you been inside a Domino's franchise when they get a new | order? Their order systems play a happy tune. | anamexis wrote: | I hope he at least has one of those receipt spikes to stick it | on when the issue is closed. | aschmelyun wrote: | I've already been looking at kitchen rails to hang above my | desk lol | | https://www.amazon.com/Winco-Order-Rack- | Aluminium-24/dp/B01E... | pottertheotter wrote: | Those things always drive me crazy. Something about having a | metal spike sticking up from a counter. | | Although I've always had problems with sharp corners. For | instance, if I'm reading in a chair and there's a small table | next to me and the corner is sharp, I can't handle it and | have to cover it (like set a book so it's hanging over the | edge). It bugs my eyes for some reason. Same if I'm watching | TV and there's furniture with sharp corners near the TV. | | I really hate that this affects me so much, so mostly sharing | in case someone else deals with this or knows what's going | on. | kqr wrote: | I had a friend in elementary school who suffered from the | same thing. He never mentioned table corners, but he | definitely requested that you don't hold pencils with the | pointy bit up if you sit next to him. | | Sounds like it sucks. Take care of yourself! | teeray wrote: | I hope he has a metal spike to spear them all onto when he's | closed them | ryatkins wrote: | Yeah PHP! You rock! | TazeTSchnitzel wrote: | Fun fact: code page 437 didn't die with DOS. It's still what | receipt printers default to, judging by all the mojibake | variations on "Tack for besoket, valkommen ater!" I've seen in | daily life in Sweden. | incanus77 wrote: | These printers are fun. I got one from a hardware swap meet a few | years back and used the same software to work it into a public | art project I did a bit later. You could listen to or record your | own "dream" story to a kiosk, and upon leaving one, you'd get a | paper receipt. It was a fun, tangible interaction that gave a bit | of permanence to something purely audio. | | https://justinmiller.io/services/dreamdial1.jpg | paulmd wrote: | "instant photo" printers are another fun tangible thing like | that! Polaroid nailed it way back when, everyone loves | something instant and tangible like that. | | You can get Fuji printers which use Instax film, or Canon makes | a similar one they call the Selphy, or there's the Zink printer | line as well. | ianbicking wrote: | Kind of tangential, but I think it could be a lot of fun to make | a "boardgame" computer that has a thermal printer, some number | displays, and some buttons. It wouldn't try to run the whole | game, but would only assist. It could print out scoresheets or | special tokens, roll dice, keep track of a few numbers, that sort | of thing. Maybe a barcode/QR scanner so you could round trip, | like scan a printout and then choose an option as described on | that printout. | | The printer in particular could open up all kinds of generative | and variable interactions or play pieces in a game while still | preserving the physical tracking of the game. Maybe with some | plastic holders you could even turn the printouts into rough | cards... | kuang_eleven wrote: | Although not a tangible as what you suggest, there already is a | trend in modern board gaming to have app-assisted games, | usually to manage hidden state and real-time elements, and | primarily in cooperative games. A couple examples are Space | Alert, X-COM and Mansions of Madness 2e. | knute wrote: | When I was DMing a D&D campaign I had an idea for using a | receipt printer to print a "token" that would represent items | that the players acquired and they could keep it or pass it | around or turn it back in after it was used or destroyed. | trynewideas wrote: | You weren't alone: https://github.com/BigJk/snd | scottlamb wrote: | This is a fun idea, but I've read thermal paper is surprisingly | nasty stuff. [Edit: unless it's advertised as "phenol-free".] | It's not just paper. It contains plastics (BPA or BPS) that you | absorb through your skin when handling it. I'd avoid working with | receipts at my desk all day. (I'd also avoid being a grocery | store cashier...) | | https://www.pca.state.mn.us/green-chemistry/bpa-thermal-pape... | darkhorse222 wrote: | that explains why it tastes so bad | cridenour wrote: | There's a great I Think You Should Leave skit about why it | might taste so bad. | juancb wrote: | How do you know how it tastes? | giaour wrote: | What do you do with your receipts? If they weren't meant to | be edible, you wouldn't get a complimentary one with every | restaurant meal. | cinntaile wrote: | He was joking. But maybe you are too? | samstave wrote: | SUPER NASTY | | its teflon and every single thermal receipt is poison! | cinntaile wrote: | Why do they use thermal printing for receipts? Is it just | cheaper because you don't have ink that runs out? Less moving | parts so less maintenance? | tyingq wrote: | No trying to get cashiers to refill ink properly is, I | assume, the main business benefit. The only thing they refill | is paper, which should be dead simple on a decent thermal | printer. | otterley wrote: | That, and also speed. Thermal printing is _fast_ compared to | the alternatives. | postalrat wrote: | Fast, reliable, inexpensive, relatively quiet. Hard to beat. | drewzero1 wrote: | Pros: faster, quieter, better quality, don't need to know how | to load ribbon when it runs out. | | Cons: fancy paper, fades over time, destroyed by even minor | heat. | | We switched from dot matrix receipts to thermal a few years | ago and there were several very vocal complaints about the | relative impermanence of a thermal receipt. | RankingMember wrote: | As someone who once worked a job in retail where we printed | receipts on dot matrix printers on triplicate paper, we | longed for thermal printing at the time. Noise, speed, and | jams were a common occurrence. | aschmelyun wrote: | Yeah, the machine came with a few spools of BPA-free paper, but | that just means there's a less-tested alternative like some of | the responses are saying. I was a cashier for 4 years though, | so this is probably a drop in the bucket for what's already in | my system. | hh3k0 wrote: | > Yeah, the machine came with a few spools of BPA-free paper | [...] | | Or so they said on AliExpress. | turtlebits wrote: | BPA free thermal paper has been around for a while. A few years | ago, I bought a box of it for a similar project (JIRA events -> | Receipt printer) | scottlamb wrote: | I think "BPA free" means "BPS". I think that's less-studied | but not necessarily better. [Edit: but "phenol-free" is | likely actually safe, thanks for pointing that out. I should | read my own link fully!] | outworlder wrote: | The article linked in the comment says this: | | "If you must give paper receipts, look for "phenol-free" | paper, which is safer for human health and has fewer | environmental effects. Three types that do not contain BPA | or BPS and are competitively priced contain either ascorbic | acid (vitamin C), urea-based Pergafast 201, or a technology | without developers, Blue4est. The latter uses a coating | that reveals an underlying dark layer when heat is | applied." | flotzam wrote: | Yeah they're "BPA free" in roughly the same sense that | 1P-LSD is "LSD free" | | Those blue receipt papers seem okay though: | https://www.koehlerpaper.com/en/products/Thermal- | paper/Blue4... | doublepg23 wrote: | As a retail worker of 6 yrs I'm raising my eye at this... | mwcremer wrote: | no child labor laws where you live? | badrabbit wrote: | We would have a lot of cancer victims who happen to be cashiers | in that case? | CameronNemo wrote: | I found this in two minutes: | https://pubmed.ncbi.nlm.nih.gov/29778011/ | otterley wrote: | Insulin resistance isn't cancer (though I admit it's still | troubling). | CameronNemo wrote: | If you spend more than two minutes looking into it you | might find a link to cancer. I don't know. That is just | the most concerning research I found in the short time I | allotted to the task. | scottlamb wrote: | My threshold for "nasty" isn't "carcinogen". Not sure how | that goalpost got moved, but let's move it back. The link | I posted says this: | | > The chemicals have been shown to be hazardous to | reproductive systems in humans and animals and are linked | with obesity and attention disorders. | badrabbit wrote: | Interesting but that is n=54 and for a specific geomarket | (common supply chain). | blt wrote: | If the author is here - please include pictures of the printer | and output in the article! | | There is an embedded twitter video, but it seems more aligned | with the spirit of the project to use the traditional visual aids | :) | aschmelyun wrote: | I'll make some edits to the article today to include those! | julianlam wrote: | > Wrapping up and next steps | | The only logical next step here is to get that metal spike thing, | so you can stab closed issues on completion. | FroshKiller wrote: | It's called a spindle. | the_arun wrote: | Get to etch them on stone - go further back in time. | jacobmartin wrote: | Damnatio memoriae if the issue is actually "functions as | intended" and that can be clearly seen from the | documentation? | jen729w wrote: | This is how I work! I write my tasks on slips of paper and stab | them on to the spike when done. | | https://share.icloud.com/photos/0f3i7xv2QbOeofiM4atMtSCzA | [deleted] | staindk wrote: | With a camera in the roof pointed at it that OCRs the most | recently stabbed ticket and automatically marks it as 'done' | with any comments you hand-wrote onto the slip of paper. | zdw wrote: | Rather than the chmod of the printers /dev node, the user could | probably be added to the `lp` group to grant the correct | permissions. | | "Just `chmod 777` it" as the universal solution to permission | issues is usually solving the wrong problem. | Nextgrid wrote: | To be fair, chmod 777 is a perfectly acceptable workaround for | a single-user, single-purpose system. | aschmelyun wrote: | Forgot to mention that in the article, but I tried that as | well. Added `lp` group to both the pi and root users, to no | avail. | dqpb wrote: | Nice. Any time you submit a bug, you give the maintainer a little | bit of cancer. | popotamonga wrote: | is thermal paper bad? | throwaway599281 wrote: | yes, it's full of BPA. | | https://www.pca.state.mn.us/green-chemistry/bpa-thermal- | pape... | latexr wrote: | https://news.ycombinator.com/item?id=30804319 | peter303 wrote: | I wouldnt be surprised if this applies to other Hondas than | listed, e.g. FIT, Accord ... | leipert wrote: | I would recommend switching to their Events API. Webhooks are | great until they aren't. Querying the Events API means you are | able to resume if GitHub, your network or your Raspberry Pi was | down. | | And bonus, your pi doesn't need to be exposed to the world. | aschmelyun wrote: | Ooh, that's good to know. I'll keep that in mind for Version 2! | throwra620 wrote: | bob1029 wrote: | Learned this one the hard way. Events are definitely the way to | go. You can guarantee perfect synchronization of state if you | use it carefully (i.e. as a log you replay as needed). | daenz wrote: | Pull vs push? Why not both! Then you'll get the benefits of low | latency and robustness. | 0x0 wrote: | This is super cool! | | Quick question though. Why go through all the hassle with the | custom udev rule and dialout group if you are just using sudo to | run the script after all? | alttab wrote: | You should get a camera and write an OCR scanner that | automatically scans the receipts as they are printed, then pushes | it into a DB so you can view all your issues via a simple web | application, replete with tracking, reminders, and then an e-mail | integration that e-mails the opener of the issue when you put a | comment on the receipt that's printed and rescanned. | tristor wrote: | This is rather clever satire. | nixpulvis wrote: | This is rather clever commentary. | eckza wrote: | Web 2.0 -> Web 1.0 -> Web 2.0 adapter. | bmn__ wrote: | https://thedailywtf.com/articles/Web_0_0x2e_1 | gilleain wrote: | Yes the wooden table was the first thing that came to mind. | | Oddly enough I have recently been drawing geometric | designs, and then got the idea to draw them with a drawing | ro bot. The current process is : | | 1. Draw design with ruler and compass | | 2. Photograph paper | | 3. Edge-detect image in Inkscape | | 4. Draw over the edge detected lines and save to SVG | | 5. Possibly convert to a graph, and run the Chinese postman | algorithm over it | | 6. Convert graph to turtle commands and send to robot | | So not far off. Also step 2 often involves a wooden | surface... | randomdata wrote: | A day in the life of a bookkeeper. | recentdarkness wrote: | All Hail to the air gapped database - At least no one will be | breaking into that one that easily. | merlincorey wrote: | Lil' Bobby Tables submits an issue. | iamjackg wrote: | This reminds me of a comment I read a long time ago about | somebody's experience working for a company that had a branch | in Japan. They would demand that some spreadsheets be sent as a | fax, and then some employee would be tasked with re-typing all | that information back into a spreadsheet later on. | SllX wrote: | Someone once told me this is how they share source code | between departments at some software shops in Japan. | | I still refuse to believe this is true. | [deleted] | iancmceachern wrote: | I once worked at a job where one of the owners of the | company, when asked to send a pdf copy of a document, would | print out the document on the shared office copier/printer, | then scan it back in using the same copier/printer and have | it email him the pdf. Every single time he ever made a pdf of | any file, even hundreds of pages, he would do this way. | geoffeg wrote: | At a job many, many years ago I asked a developer on a | different team (across town) to email me an XML file I | needed for a feature I was working on. After a few hours of | not getting anything I checked with him and he said the | file was too large and the email server wasn't allowing him | to send it to me. It was a few hundred kilobytes, it | shouldn't have been a problem but I didn't care too much, I | just wanted the file so I asked him to zip it up to reduce | the size. A few minutes later he said the email server was | still rejecting it, even as a zip file. Getting frustrated, | I grabbed my laptop and drove to the other office. He | showed me the XML file... which was a Word document with | screenshots of the XML document opened in an editor. | | Exasperated, I asked him why he couldn't just send me the | raw XML file instead of putting screenshots in a Word | document. Turns out the document was on another system he | had to remote into (with Citrix, I think? I don't remember | what was used back then) and he wasn't "allowed" to copy | files off that machine. | duxup wrote: | I once had a cube next to mine. It was the "Japan Cube", all | it had was a printer and a fax machine. | | It was only ever used for faxes to and from Japan. | | Eventually it was decorated with Japanese art and etc. | warmfusion wrote: | I did something like this but linked it to Slack and put the | printer in our office. | | If you responded to a message with a printer emoji she (Her name | was Tilly) would print the message (could even print images/first | frame of gifs) in black and white. | | https://hackaday.io/project/21191-tilly-the-slack-printer | geniium wrote: | When I read this I want to instantly go on one of your github and | create an "test printer" issue :evil-grins: | scode2 wrote: | What is the point of setting up the udev group if you're just | going to run php as root anyways? | daenz wrote: | There's something about a physical reference to information that | you can't quite capture digitally. You can hand it to someone. | You can use it as a prop to express your happiness or | frustration. You can destroy. | | I know this was a fun project but I hope we can capture more | physical interactions in the future, and not just in VR. | urbandw311er wrote: | Sorry to be 'that guy' but it is also a little bit wasteful. | XorNot wrote: | Having done "post-it notes on a board" at an earlier job, I | could not feel more different about it. Post-it notes _sucked_ | - they 're not big enough to capture any history or context, | and the types of tasks I was handed would be about 10-20 extra | subtasks on their own. | | I ended up trolling the system by simply adding post-it notes | to post-it notes for subtasks as a protest against the fact | that I could never keep any useful detail against them and the | tasks themselves ranged between gigantic and functionally | unsolvable (it was infrastructure work, so "done" didn't really | exist). | a_wild_dandan wrote: | You could literally burn a ticket. That would be so | cathartic... | EsotericAlgo wrote: | These printers also have an expansion network card. | | A decade ago I worked on a project to deploy a couple hundred of | these to a restaurant chain as part of a POC for an online | ordering program for pickup orders. The requirement for each | franchisee was to acquire a static IP and configure one of these | printers to bind that static address using a network card that | replaced the serial connection. The online interface from the | vendor was configured with that static address and sent text over | TCP to print the incoming orders. The printer than just printed | whatever it received. | | The project was initially deployed without any whitelisting or | authentication (at the vendors behest) so for a couple months | these printers were printing a mixture of garbage and scan | attempts from random devices connecting. It was quite humorous at | the time but scares the hell out of me given the other things | that were on that internal network. The project failed for other | reasons, but it looks like that particular vendor is still | around. | andix wrote: | They are quite fast (200mm/s). If you send a malicious job you | have 12m of paper sticking out of the printer within a minute | :D | gopaz wrote: | Fujitsu fp-2200 can print 400mm/s, it's quite mind boggling | how fast the paper comes out :) | | Also if you hold feed while power on you get a interactive | menu, printed on paper. Probably works on Epson printers also | dcchambers wrote: | This is amazing. | jaredlt wrote: | I enjoyed the response on Twitter | https://twitter.com/aschmelyun/status/1507043742167060487?t=... | kevincox wrote: | I had one of these as well that you could print just by writing | to a device file. I'm sure it had fancier formats for graphics | and stuff but it was fun to just use some ascii art to get | something printed. | tootie wrote: | I did this at work once. We had receipt printers for a kiosk | thing we were building and I printed Jira tickets on it. Nobody | thought it was funny except me. | post_break wrote: | I have a receipt printer I was using for grocery lists. I still | haven't found a good use for it yet. I love how extremely fast it | is though and it has auto cut. Maybe I can use it for a ticket | system at work. | weaksauce wrote: | any kind of todo thing it would be good for or temporary | labeling things with painter's tape. | semireg wrote: | This is awesome. I'm a solo dev and I created an electron app | named Label LIVE. I recently added an HTTP API so you can fire | off label jobs using a POST request (or retrieve label PNGs via | GET). What Label LIVE affords is a WYSIWYG imaging pipeline that | can target many different thermal printers at the correct DPI, or | generate/submit PDFs to a printer (system or network). If you | mention this note and your project, I'll send you a free license | for "testing." :D (and no, no direct Linux-Desktop support yet, | sorry!) Read more at https://label.live/guides/automated-label- | printing-integrati... ___________________________________________________________________ (page generated 2022-03-25 23:00 UTC)