text:
Behind the Scenes / with Nigel Poor, Antwan Williams and Earlonne Woods
Behind-the-Scenes with Nigel Poor, Antwan Williams and Earlonne Woods
How did you get to know one another and come together to create Ear Hustle?
Nigel: I met Antwan & Earlonne in 2012 when I started working on a radio project inside San Quentin called the San Quentin Prison Report. Antwan and Earlonne worked on and off on the project and from that experience we realized that we would make a good team. We enjoyed working on radio but we wanted to do something that was creative in a different way, something that would allow us to do longer stories, more first-person narratives that included music and sound design.
What kind of storytelling do you hope to accomplish through Ear Hustle, and for whom?
Earlonne: I would like to tell stories that are entertaining and just unexpected. As to the audience, I would love for people to just give us a chance. I'm from the Hip Hop era so I would love to introduce a lot of people to the world of podcasts. I would also like a world wide audience. As to what I hope to accomplish with Ear Hustle , maybe just to open a dialogue on incarceration in America.
Antwan: And our audience is those who are directly affected by mass incarceration, so that is 2.4 million people.
Nigel: Our stories concentrate on the everyday experience of people inside - we are looking at complex issues through the smaller details of life. Stories we are working on: having pets in prison, celebrating special occasions, family visits, race relations, cooking, the relationship between correctional officers and incarcerated men, ministering on death row, how does being in prison affect memory.
We hope that our audience is varied but that it will include incarcerated people and their families, formerly incarcerated, people interested in criminal justice issue, and everyone who is interested in stories about the complexity of being human. We also hope that people interested in true crime stories will tune in, and that we can offer them a more nuanced view of those involved in the criminal justice system.
What are the extra challenges you face producing a podcast in prison?
Nigel: There are incredible challenges to doing this project: prison is a very unpredictable place. When there are lockdowns, for example, the men are confined to their housing units and we're not able to work. Everything inside prison takes time, there are all sorts of protocols that need to be followed. The administration's first objective is keep the prison safe so our needs and deadlines are not a priority. If you cannot be patient, persistent and polite you will not make it far as an outsider trying to work within the prison system.
Once I leave the prison I have no contact with Antwan and Earlonne, we cannot talk on the phone, use email or the internet - all our work must be done face to face. Also, once I am inside I have no contact with the outside world, so if we need information that is not available inside the prison I am cut off from that until I leave.
Antwan: We have major deadlines because Public Information Officer Lt Sam Robinson has to clear all the stories we create. We have to get them to him ahead of schedule so can make sure that all stories never threaten the safety and security of any of the inmates, staff or the institution.
Is there concern that something that happens on the podcast could lead to issues (fights etc) in prison?
Antwan: We make sure that all of our stories are honest and truthful not packed filled with drama, that can cause issues. We want to open people's eyes to the truth about prisons. You can find the propaganda elsewhere.
There's a lighthearted feel to the first episode, and quite a bit of laughter… San Quentin feels like home, in some ways not that different from life on the outside. Is this a feeling we'll hear throughout the series or is it particular to this first episode?
Earlonne: As to the lighthearted aspect of prison, San Quentin is a community of incarcerated individuals committed to changing their lives. I can't say that all of the stories will have the same lighthearted feeling as the first episode but when those moments occur we will highlight them.
Antwan: I didn't think that we have one form of storytelling we want to accomplish because prison is filled with so many different kinds of people and each story is unique - some stories are profound and compelling, some are so funny they don't seem true. There will be stories that will be sad, insightful, a tad political and hopeful. We want to make sure that the listeners get a chance to see prison for what it really is and not for what a lot of the media portrays it to be.
Nigel: One of the things I came to realize after spending time in prison is that everything that happens on the outside, happens on the inside. I used to think that everything inside prisons would be dark and depressing and that everyone inside would be scary and angry and of course that is a very one-dimensional view of life inside. We experience all kinds of emotions when we work, situations and stories can be happy, joyous, upsetting, depressing, frustrating and all those emotions will be presented in the various stories. We wanted to start with a lighter tone, but of course in the story there are also very serious moments, as the story touches on violence and race relations as well as camaraderie, family and affection.
Why did you start with the Cellies story?
Earlonne: We started with Cellies because we felt that people probably can't relate to prison but they can definitely relate to a roommate, especially a roommate from hell. Prisons in California is doubled celled and most of the time you don't have a choice of who you move in with. It could be a complete strangers convicted of god knows what or as in Cellies it could be your brother.
In this episode we don't hear about the prisoners' crimes… or maybe the tough life stories that preceded their prison terms. Is that intentional, will that change in upcoming episodes?
Nigel: We want to have an emotional arc to the season so there will be some very heavy stories coming up. We are telling stories that take place inside prison which of course means post crime and conviction. But we do always mention what the subject's crime is and we will be doing a few stories that center on a specific person's crime and how they got to prison.
But we are not a "true crime" podcast though obviously crime is part of the underpinning of our stories. It is a delicate balance, we are not hiding why people came to prison but we want to explore what happens in life after you come to prison.
For me a big part of wanting to do this project is to mirror the possibility that incarcerated and non-incarcerated people can work together as equal and professional colleagues. Earlonne, Antwan and I have an excellent working relationship - we get along well, respect each other's abilities and creative input and push each other to be better- and I think that contributes to the "warm feeling".
Also, we are all deeply involved in what we are doing. The creative, intellectual and aesthetic challenges are considerable and I believe when the mind is challenged in such a way, you cannot help but feel joy because you are working at your fullest potential and stretching your perception of self. We feel like we are doing good and important work and that is exhilarating.
Nigel Poor
Nigel Poor is co-creator, co-producer and co-host of Ear Hustle from Radiotopia. She will be co-hosting the 2019 Third Coast / Richard H. Driehaus Foundation Competition Awards Ceremony.
Earlonne Woods
Earlonne Woods is co-creator, co-producer and co-host of Ear Hustle from Radiotopia. As co-host of the 2019 Third Coast Awards Ceremony, Earlonne will make his return to the "Oscars of Radio." Last year, he beamed in via video (watch here) after winning a 2018 Best Documentary: Honorable Mention Award as part of the Ear Hustle team.
Antwan Williams
Antwan Williams is co-creator, co-producer and sound designer of Ear Hustle from Radiotopia.
Ear Hustle, Episode 1: Cellies
"We started with Cellies because we felt that people probably can't relate to prison but they can definitely relate to a roommate, especially a roommate from hell." Earlonne Woods, co-host of Ear Hustle .


Tooth Bonding or Dental Bonding – Get the smile you've always wanted with affordable dental bonding treatment.
This is a treatment that is ideal for fixing your smile and taking years off your age. Tooth bonding fixes minor imperfections, such as filling gaps, restoring chips, or brightening your smile.
It takes a skilled dental surgeon to ensure your get a look that is as natural as possible. Also, it is crucial that underlying dental issues are effectively addressed.
Dr Taylor has more than 20 years experience in providing dental aesthetic solutions to countless happy patients. The best testament to his skills are his patients who continue to refer their family and friends to him.


New A380 operators come every once in a blue moon nowadays. ANA has three A380 frames on order and will be the next new operator of the aircraft. Their first plane entered the Airbus paint shop today.
The 5th seating style comes in the form of what ANA is calling Couchii, a concept similar to what Air New Zealand calls the Sky Couch and what Joon calls Cosy Joon. These seats feature an extendable leg rests that convert the seats into a "bed". Couchii passengers will also receive a dedicated bed sheet, pillow and blanket set amenities.
The first class suites look like a modernized version of the existing ANA suite found aboard all 777 products aircraft which are essentially composed of a lay-z-boy in a cubicle and will feature a massive 32″ personal TV. The suites will also include sliding doors.
All premium economy seats will feature a 38″ pitch and most seats will have a 15.6″ entertainment screen. The tray tables will also swivel 90 degrees so customers can still maneuver even when the tray table is open.
All seats will feature 34″ pitch and 13.3″ entertainment monitors. Each seat comes with power and USB outlets as well. Couchii seats will only have 32″ of pitch.
The flights aren't currently available for sale yet, but were already looking forward to trying the new service. If you wanted to use United miles to redeem for free flights on this route expect to pay between 27,500 miles for a one-way economy award up to 55,000 miles for a first class award. Virgin Atlantic frequent flyer program is always a sweet spot for flights on ANA and looks like this route should only cost 90,000 miles for a first class round trip ticket.
Are you planning on flying the new ANA A380 Hawaii service?


The Arnreiter mill offers a wide range of products. We focus on best quality – from raw material to finished product.
Our range of spelt products includes spelt fl our and wholemeal spelt flour, spelt flakes, cracked spelt flour and pregelatinised spelt flour. Spelt is an ancient form of wheat. Each spelt grain is covered by a husk and therefore is better protected against negative environmental impacts. A complex and time-consuming processing method is required for spelt to remove these husks.
Our soy products include soy flour and soy semolina and cracked soy flour. A GMO analysis is carried out every time raw materials are delivered. The soy beans are cleaned, roasted and shelled.
Raw materials like rye, wheat and rye malt are processed to produce a range of diverse granulated roasted flours.
Pregelatinised flour, produced from one or two raw materials, contain hydrothermally treated flour, mainly rye, wheat and spelt flour. Other cereals can also be used. During this process we purify and extrude the raw materials.
We process primarily wheat, spelt, rye, as well as different kinds of corn, to make cereal flakes. Other grains can also be used. The grains are carefully purified, stream-treated and then flaked on a roller mill. Our flakes are especially suitable for the production and processing of muesli, breakfast cereals, baking products and for sprinkling on breads and baked goods.
The cereals are softened during the malting process and the germination process is initiated. This creates enzymes that break the endosperms down into sugars. The malt is then dried in a kiln to enable dry storage. We process different types of malt to make flour, flakes and cracked flour or use the malt to process and produce other specialised products like roasted flour und pregelatinised flour.
Our ground products are made from purified grains that are processed into high-quality cracked flour, flour, wholemeal flour, wholemeal semolina and semolina.
The poppy seeds are steamed and cracked using a hydrothermal procedure. This creates excellent flavour and a longer shelf-life. This specialised procedure means the poppy seeds are ready for further processing by our clients.
Drawing on the experience and expertise of many years, and making use of our broad range of diverse products, we work with our customers to develop new products. Thanks to our state-of-the-art equipment, we meet the requirements of our clients, while adhering to strict quality and hygiene regulations.
Arnreiter Mühle also produces a wide range of organic products. These are certified by "Austria Bio Garantie GmbH". Our organic products meet the requirements of the (EC) No. 889/2008 Regulation as well as those of the Austrian Food Code, Chapter A8.
Our clients can purchase our goods in bulk, Big Bags or bags of 25 kg. Special requirements can be discussed as required by clients as well.


Please remember that local newspapers such as The Star and NST are a good reference regarding scholarships and university fairs. There are a number of very good scholarships offered within Malaysia and Singapore for Malaysian students.
One I found last week in The Star was the Jardine Scholarship Awards. There are also books and other information regarding financial aid options in the Universities Office.
Universities in Hong Kong offer full scholarships to top students and there are also some good packages available at Japanese universities (for courses in English).


text:
New: a free personal digital document safe for everyone
Toblerone owner under investigation for anti-competitive practices...
Brussels seeks volunteers to help vaccinate the city...
'The world is counting on us' for Covid-19...
Belgium's coronavirus infections rise while reproduction rate drops
Pfizer's Covid-19 vaccine production back on track
Decision to close schools again is up to parliament, says Education Minister
The Federation of Notaries (Fednot) has announced the launch of IZIMI, a personal digital safe for the storage of up to 200 Mb of important documents.
The service, which is free, will launch officially in January, but it is already possible to open an account at the IZIMI website.
The procedure is simple: log in with an eID card or itsme, fill in a few personal details and wait for a confirmation email. From then on, simply upload digital documents or scans of paper documents to your 'vault' and you can consult them or share them with others as you wish, in a way that's safer than conventional email.
"The vault is much more than a digital platform for the safe storage of important documents," said Philippe Bosseler, president of Fednot. "It is also a way of securely sharing personal information with individuals of your choice."
In its operation, the service is no different from many other online services like Dropbox, but this one comes with a guarantee of safety and confidentiality from the notary federation.
That guarantee is based on extensive testing to meet the highest standards, the federation said. They also promise any data stored in IZIMI will not be passed on to third parties for commercial purposes.
"This is possible because Fednot has already invested a lot in the development of super-secure digital networks in recent years," said director-general Jan Sap. "The communications between a notary and the citizen are usually highly personal and privacy-sensitive."
The vault also provides a solution to the problems faced by surviving relatives on the account-holder's death.
"After a death, the heirs do not have to search for all the important papers," the federation said. "Unless the holder of the safe has decided otherwise, the notary can ensure that the contents are transferred to the heirs."
Alan Hope

redpajama_set_name: RedPajamaCommonCrawl


text:
<resources>

    <style name="PlayerTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@null</item>
    </style>

</resources>

redpajama_set_name: RedPajamaGithub


Dr Robert Weinkove is a UK-trained haematologist (blood specialist) who relocated to New Zealand in 2008. Dr Weinkove believes that to be a good doctor you need to do research.
Dr Weinkove's interest is in chronic lymphocytic leukaemia (CLL). CLL occurs when white blood cells called B lymphocytes divide uncontrollably. They accumulate in the blood and bone marrow and crowd out normal blood cells, impairing the ability to fight infection and often giving rise to anaemia. CLL is the most common leukaemia and the prevalence increases with age. With New Zealanders living longer CLL will become more common.
Early stage CLL is not actively treated and many people die with it, but not of it, in old age. However, if the disease progresses there are currently only two treatment options: chemotherapy or bone marrow transplantation. Chemotherapy is often ineffective, and elderly people are not good candidates for bone marrow transplantation, so new treatments are needed.
The immune system is regulated by a finely tuned set of controls involving dozens of different cell types, proteins, carbohydrates and lipids. Most of the time, the immune system hums along happily but, on occasion, a control circuit is broken and one cell type starts to replicate out of control – this is leukaemia. Retaking control of the errant part of the system is the goal of Dr Weinkove's immunotherapeutic approach.
One treatment that has being investigated is to harvest immune cells called dendritic cells from the patient and stimulate them in the test tube to fight the leukaemia cells. The cells are then injected back into the patient. However, this has not worked well in people with CLL. Dr Weinkove believes the key to success is to introduce another cell into the test tube to further stimulate the dendritic cells. This cell goes by the name of invariant natural killer T cell or iNKT cell. These cells are not plentiful in the blood and much work is required to isolate and learn how to work with them, but in two or three years an effective new treatment for CLL may be available.


text:
Trump 'an existential threat': Biden to take aim at the president as they cross paths in Iowa
By Garrett Haake and Allan Smith with NBC News Politics • Updated: 11/06/2019
Democratic presidential candidate former Vice President Joe Biden speaks on June 6, 2019, in Atlanta. - Copyright John Bazemore AP
DAVENPORT, Iowa — Former Vice President Joe Biden will cross paths with President Donald Trump as the Democratic presidential candidate barnstorms through Iowa on Tuesday — and he wants to use that backdrop to contrast himself with the president.
Biden, who is taking a two-day trip to the state, will lambaste the president in a wide-ranging speech in Davenport on Tuesday evening, hammering the president on everything from his character to his attempts to nullify the Affordable Care Act, and from his handling of climate change to his trade policies.
Trump, meanwhile, will deliver remarks in Council Bluffs on Tuesday before speaking at a Republican Party fundraiser in West Des Moines.
"You know, Donald Trump and I are both in Iowa today," Biden is set to say at his Davenport event, according to prepared remarks released by his campaign. "It wasn't planned that way, but I hope Trump's presence here will be a clarifying event."
The former vice president will say farmers and manufacturers "have been crushed" by Trump's trade war. Pointing to the deal Trump recently announced with Mexico to stave off tariffs he promised if that country did not do more to stem the flow of migration toward the U.S., Biden will say "maybe there's some secret development yet to be revealed — but based on what we know, it seems more like old wine in new bottles."
Biden will criticize Trump's understanding of tariffs — which the president called "beautiful" during a CNBC interview on Monday — and his grasp of economics entirely, saying the president "doesn't get the basics."
Trump "thinks his tariffs are being paid by China," Biden will say. "Any beginning econ student at Iowa or Iowa State could tell you that the American people are paying his tariffs. The cashiers at Target see what's going on — they know more about economics than Trump."
Biden will pledge to repeal the tax cuts Trump signed into law and said his opposition to the Affordable Care Act will be the president's ultimate demise, pointing to Republican losses in the 2018 midterms.
"But time and time again, on issue after issue, Trump makes the wrong choices," Biden will say. "He is motivated by the wrong thing."
Saying there are "a lot of ways Trump fails the basic standard to be president," Biden will add, "but one of them is this: Donald — it's not about you. It's about America."
"This president is setting a standard for crude language and embarrassing behavior that is burrowing deep into this culture — and it's going to take a long time to get rid of it," Biden added.
Biden has been a favorite target of Trump's early in the 2020 campaign cycle as polling shows the former vice president with an initial lead over his Democratic rivals. Late last month, Trump tweeted that he "smiled" after North Korean leader Kim Jong Un "called Swampman Joe Biden a low IQ individual, & worse," later telling reporters in Japan that he agreed with Kim's assessment.


you can return item to us within 60 days of delivery.
Returns received after 30 days may be subject to a 25% restocking fee.
you may return any incorrect product with Availability listed as a Stock Item within 60 days.
freight charged to the customer is not refundable.
all items must be in the original packaging, unused, undamaged, and in salable condition.
Mfr Direct: these products are subject to manufacturer restrictions and typically are not returnable.
Please contact us at 610-668-9500 or email us at sales@dispersetech.com.
Please provide the purchase date, the original invoice number, the item number and a description of the defect.
we will review your request and send you a completed Return Authorization (RA) form within three business days.
you must include your RA form with your returned item.
your RA form will provide you with the shipping information.
When the item is received by the appropriate party, it will be inspected typically within two business days. You can expect an e-mail from us notifying you if the product has been accepted.
Upon acceptance we will immediately cancel any credit card charges, credit your account, or send a replacement product as you have requested.
We reserve the right to reject any return that does not comply with the terms of this policy.


Seven Year Switch couple Michael and Felicity have had more to worry about than just their relationship.
After rushing their two-year-old son, Orlando, to hospital following a severe seizure, they found out that the toddler suffers from epilepsy.
Felicity says that ever since Orlando's prognosis, she has daily anxiety attacks.
"I get so anxious now when I put him to bed, because most of his seizures happen when he is asleep," the mum-of-two tells New Idea.
"Every morning when I go to his room to wake him up, my heart drops a little through fear. Or if I hear him cry out in the night, I panic and run straight to his room."
"I had Orlando with me the day I found out his results from his paediatrician," Felicity recalls. "I drove him back to preschool and dropped him off.
Afterwards, I bawled my eyes out for about three hours. I didn't want him to see me because he's so young, he doesn't really understand."
The 25-year-old says she quickly had to educate herself. "I was devastated and angry that this was happening to my beautiful little boy. It didn't seem fair and I didn't really know anything about it."
"During his last seizure, he completely lost consciousness."
"It's the worst thing to watch, because you can't do anything but put him on his side and let it finish," she says.
Felicity and Michael are still together following the reality TV show, with her saying, "While I had doubts at times. In my soul, I knew we would make it in the end."


text:
Tag Archives | Rock In Rio
Ariana Grande Cries Over Her Rock In Rio Cancellation
By Oceanup Staff on May 29, 2016
Ariana Grande fans received some bad news yesterday. It was announced that her Rock in Rio performance was cancelled. "I'm deeply saddened to tell my babes in Portugal that I have to cancel my performance at Rock in Rio," the singer said in an Instagram post.
Ariana was announced as a performer for the annual concert back in February, but because of a throat and sinus infection the singer was advised not to perform. "I promise to make it up to you, and give you the best show I'm capable of when I return," she wrote.
Read Ariana's full apologetic statement below.
Were you looking forward to Ariana's Rock in Rio performance?
(Photo credit: Arianator Island Twitter account; Ariana Grande Instagram account)
Ariana Grande, Rock In Rio
Ariana Grande To Perform At Rock In Rio
By Oceanup Staff on February 11, 2016
Ariana Grande has been added to this year's lineup for Rock in Rio Lisboa, which is a global music festival that has installments in Portugal, Brazil, Spain and the U.S.
Ariana will join acts like Maroon 5 and Avicii in Portugal during the last weekend in May. Tickets are on sale now.
Take a look at the official announcements below.
(Photo credit: getbald, Ariana Grande and Rock in Rio Lisboa Twitter account)
Ariana Grande, Avicii, Maroon 5, Rock In Rio


05 Dec Tumblr adds "Buy" button – is social commerce the next big thing?
With this, Tumblr has taken the first step towards enabling the platform for social commerce.Facebook and Twitterboth rolled out tests for in-app "Buy" buttons earlier this year, which allows users to purchase directly from a featured retailer without leaving the social network.
Tumblr's "Buy" option works a little differently. For one, it's not an in-app feature, meaning clicking the button will navigate the user away from Tumblr to the retailer's website in order to complete the purchase. (To mitigate this, users can also choose to send purchase reminders to the email address associated with their Tumblr accounts.) For another, the action buttons are limited to the four specific websites for now, which makes for a considerably smaller reach than Facebook and Twitter's iterations. Finally, as of now the test is limited to the desktop version of Tumblr, whereas Facebook and Twitter's versions include mobile integration.
Still, the potential is there – and if well-received, Tumblr could very well take a leading role in the rise of social commerce. The microblogging site has overtaken Instagram as the fastest-growing social platform, charting a 120% growth in active user base over the past six months. Plus, their demographic skews young, urban, and rich: with a median household income of $80,075, Tumblr users have more disposable income than Twitter and Facebook users, reported as averaging at $79,562 and $70,124, respectively.
They're not afraid to spend, either. According to Adobe's 2014 Mobile Benchmark Report, even though 78% of Tumblr shares are posted via desktop, Tumblr referrals produce highest revenue per visit (RPV) from mobile devices. Aspiring fashionistas and trendy urbanites who post coveted items from different retail sites generate an average RPV of $2.57 on tablets and 67 cents on smartphones. Tumblr leads Facebook by a significant margin, where a referral is worth $1.55 on tablets and 42 cents on smartphones.
Of course, the sheer size of Facebook's user base – 1.35 billion monthly active users as of September 2014 – is an important factor in crunching the numbers. Even with a lower median income and RPV, Facebook's social commerce efforts will likely take a lion's share of profits. Still, Tumblr's move bodes well for the development of social commerce as a revenue-generating eCommerce channel. Mobile commerce is definitely dominating 2014, as last weekend's Thanksgiving sales numbers attest. But who knows? 2015's title might just belong to social commerce.


1 OWNER CARFAX AND Acura CERTIFIED IN BEAUTIFUL PEARL WHITE WITH A WARRANTY UP TO 100,000 MILES!! LOADED UP WITH TECH PACKAGE, LEATHER, AND A POWER MOONROOF!! This outstanding example of a 2014 Acura RLX Tech Pkg is offered by Marty Sussman Acura. Sussman Automotive, located in Eastern Montgomery County, is a multi-generational family operated group of dealerships that believes in forging lifelong relationships with its customers, employees and the community. Sussman represents the new car franchises of Honda in Roslyn, Acura and Kia in Jenkintown, Hyundai and Mazda in Willow Grove, with a tremendous selection of pre-owned vehicles at each location. Sussman has been selling and servicing vehicles in the greater Philadelphia area since 1959. It is Sussman Automotives' intent to exceed its customers' expectations in every aspect of their business by providing the highest quality products and services in the automotive industry. The Sussman Automotive group has worked tirelessly to earn and maintain a reputation of being the best by demanding excellent customer satisfaction from their employees and by being a good neighbor to the community. For sales, service and parts for Honda, Acura, Kia, Hyundai and Mazda vehicles, the Sussman Automotive dealerships should be your choice in Eastern Montgomery County.


Excellent performance throughout the Brod's Tournament.
The first 'tournament' of the season was hosted at the Brods, this Sunday.
30/9/2018. Old a Brodlians Tournament.
A first rate performance right across the team winning all five games and only conceding one try throughout the day. All helped by a big defensive game, with textbook tackling from Oliver Samples and Padruig Muxlow and top try scorer Jude Jackson.


text:
Opinion Exchange 116955813
Will Wisconsin be the GOP's 'overreach' moment?
By Jill Burcum Star Tribune
February 26, 2011 — 6:27pm
MADISON, WIS.-- With the fight over collective bargaining stretching into its third week here, the colorful ground war waged by protesters at Wisconsin's State Capitol continues to take center stage.
But it's the air war -- the barrage of TV ads for and against Gov. Scott Walker's union-busting bill -- that tells the real story about the Badger State battle and the implications for those elsewhere watching it unfold.
Walker, who is just months into his first term, has proposed broad collective bargaining restrictions on most public employees, as well as reasonable benefit cuts.
Stung by his surprise attack and by his refusal to compromise even after unions agreed to concessions, the Wisconsin State AFL-CIO is striking back with ads imploring the state to support public workers' bargaining rights.
An equally unavoidable ad from the Wisconsin Club for Growth urges families to support Walker and protect the state against "special interest" protesters. Never mind that the Club for Growth nationally is an ultra-rich special interest itself.
Also weighing in on Walker's behalf: Americans for Prosperity, a group with strong ties to billionaire oilman David Koch.
Koch was the Libertarian Party's 1980 vice presidential candidate; his platform called for abolishing Social Security, the minimum wage and almost all federal agencies while legalizing recreational drugs, suicide and prostitution.
What appears at first glance to be nothing more than a Midwestern state budget battle is in reality something far bigger.
This is a death match between American's special-interest titans -- wealthy, antiunion corporate-interest groups vs. public-sector unions -- and the clash will shape elections nationally in 2012 and beyond.
Right now, the Club for Growth and its allies have the upper hand in Wisconsin, given the state's GOP-controlled legislature and Walker's giddiness last week when a prankster claiming to be Koch called his office.
While Republicans have the votes to pass the bill, they may be setting themselves and party members across the nation up for the same kind of "shellacking" that President Obama and the Democrats got in the 2010 midterms.
Polls in Wisconsin and elsewhere show that the public approves of benefit cuts for government workers but also strongly supports their right to collectively bargain. (Disclosure: I'm a newspaper union member.)
The Tea Party and the GOP benefited from the perception that Obama and his party overreached on health care, but that doesn't mean they are immune from blowback themselves. Taking away workers' rights sure looks like this movement's overreach moment.
Images broadcast around the world from the Capitol only underscore that. Walker has derided the protesters as out-of-state special-interest groups.
That's wishful thinking. Wisconsin Badger hats and sweatshirts celebrating the Green Bay Packers' Super Bowl win are common.
Protesters camped out at the Capitol include Christa Bruhn, a Madison mom, and her 9-year-old daughter Sham, who brought her pink sleeping bag Wednesday night and had a slumber party with school friends on the third floor.
One floor below, a "knit-in" gave the protest a down-home flavor. Nicole Craig, who works at a Madison nonprofit, proudly modeled a green scarf she'd just finished.
"This is not an angry protest. I think it is injustice that is drawing people here,'' she said.
Walker and other hard-liners against collective bargaining need a history lesson about how far they've strayed from party roots: Republicans in Minnesota and other states often supported legislation allowing public workers to unionize decades ago.
Nonetheless, the Wisconsin governor chose to start a fight with a formidable foe.
The American Federation of State, County and Municipal Employees (AFSCME) ranks third on the Center for Responsive Politics' "Heavy Hitters" list of political donors.
Between 1989 and 2010, AFSCME spent $43.5 million on federal-level politics -- 98 percent of which went to Democrats.
Also making the Center's Top 10: the National Education Association, the International Brotherhood of Electrical Workers, the Teamsters Union and the Laborers Union.
Virtually all of these organizations had signs or contingents at the Wisconsin Capitol this week. Rarely has such a broad array of labor unions been ready to rumble in Wisconsin and everywhere else.
"You remember how you felt on 9/11? That patriotism that rose up? It's that kind of feeling,'' said Sandra Burdue, a California nurse and union member who flew in to support protesters. "It's about our way of life, our values and our future."
Joe Heim, a political science professor at the University of Wisconsin-La Crosse, put it this way: "A sleeping giant has been awakened.''
The protesters and union representatives use a lot of over-the-top rhetoric. But anti-collective-bargaining bills in Wisconsin, Ohio and others states really are an existential threat to many government workers' unions.
The Wisconsin bill wouldn't completely strip most public workers of collective bargaining (police and firefighters are exempted) but would limit the process to wages; increases beyond certain levels would require a public referendum.
It also would make it significantly harder for unions to collect dues -- a potentially lethal blow.
If this were really about Wisconsin's budget, Walker would have targeted all public unions and not exempted those that often have generous benefits. He would have accepted the concessions and moved on.
The unions had a sweet deal on health and pension benefits. It needed to end.
Walker is betting he'll make a career out of being the governor who broke public unions' back. Maybe so. But the prank call last week will also dog him.
He wasn't talking to protesters, and Democratic legislative leaders claimed he was hard to reach. Yet he quickly made time to take a phone call from fat cat Koch.
That ought to raise questions for years to come about who he's really listening to.
Jill Burcum is a Star Tribune editorial board member and editorial writer.
Jill has been an editorial writer since March 2008, joining the Editorial Board after working in the newsroom as an editor and reporter. Her "Separate and Unequal" series on dilapidated Bureau of Indian Education schools was a 2015 Pulitzer Prize finalist for editorial writing.
jill.burcum@startribune.com 612-673-7846 JBurcum
Water contamination: In Minnesota, we must reconsider which crops we plant • Opinion Exchange
Editorial counterpoint: The Iron Range deserves fair trade policies • Opinion Exchange
We don't need more mining to have a green, high-tech economy • Opinion Exchange
Minneapolis in winter is something to treasure • Opinion Exchange
Sixth graders: Give us time to eat at school • Opinion Exchange


text:
Cannabis Global Reports Significantly Increased Revenues for the Fiscal Year End - Files Annual Report
LOS ANGELES, CA / ACCESSWIRE / December 15, 2021 / Cannabis Global, Inc. (OTC PINK:CBGL), an innovation-oriented company investing in disruptive cannabis technologies, today announced the filing of its annual report for the fiscal year ended August 31, 2021. Revenues for the fiscal year grew to just over $1.6 million, compared to approximately $27,000 for the previous fiscal year. Growth was attributed to increased sales and distribution of cannabis products across a broad array of product lines, including cannabis flower, edibles, and concentrates.
"We are pleased with the strong growth of our distribution and manufacturing businesses via Northern Lights Distribution and Natural Plant Extract of California, respectively," commented CEO Arman Tabatabaei. "The customers generating our growth are ordering consistently into this current fiscal year and in some cases are expanding orders and revenues with us. With strong revenue growth and pending new product introductions we remain confident moving into calendar 2022. Our major emphasis moving forward will be to improve profitability especially relating to our high cost of capital to better ensure our bottom line matches the strength of our revenue growth."
CBGL has recently announced the addition of several new product categories, including solventless extracts, infused cannabis pre-rolls and innovative categories of cannabis edibles, which are expected to be released soon after the first of the new year.
Mr. Tabatabaei continued, "While this past fiscal year was a year of acquisition, product development and of positioning our products and distribution efforts into an increasingly competitive California cannabis market, we anticipate this current fiscal year being one of emphasis on profitability, new product introductions and full utilization of our suburban Los Angeles manufacturing and distribution facilities."
About Cannabis Global, Inc.
Cannabis Global, Inc. is a Los Angeles-based, fully audited and reporting Company with the U.S. Securities & Exchange Commission, trading under the stock symbol CBGL. We are an emerging force in the cannabis marketplace with a growing product and proprietary intellectual property portfolio. We are marketing and producing Comply Bag™, an innovative solution for cannabis storage, transport and tracking. Our subsidiary, Natural Plant Extract (NPE), is a Southern California licensed cannabis manufacturer and distributor which licenses our technologies to produce edibles for the cannabis marketplace. Cannabis Global has filed three non-provisional and multiple provisional patents for cannabis infusion and nanoparticle technologies and continues an active research & development program.
This news release contains "forward-looking statements" which are not purely historical and may include any statements regarding beliefs, plans, expectations or intentions regarding the future. Such forward-looking statements include, among other things, the development, costs and results of new business opportunities and words such as "anticipate," "seek," intend," "believe," "estimate," "expect," "project," "plan," or similar phrases may be deemed "forward-looking statements" within the meaning of the Private Securities Litigation Reform Act of 1995. Actual results could differ from those projected in any forward-looking statements due to numerous factors. Such factors include, among others, the inherent uncertainties associated with new projects, the future U.S. and global economies, the impact of competition, and the Company's reliance on existing regulations regarding the use and development of cannabis-based products. These forward-looking statements are made as of the date of this news release, and we assume no obligation to update the forward-looking statements, or to update the reasons why actual results could differ from those projected in the forward-looking statements. Although we believe that any beliefs, plans, expectations and intentions contained in this press release are reasonable, there can be no assurance that any such beliefs, plans, expectations or intentions will prove to be accurate. Investors should consult all of the information set forth herein and should also refer to the risk factors disclosure outlined in our annual report on Form 10-K, our quarterly reports on Form 10-Q and other periodic reports filed from time-to-time with the Securities and Exchange Commission. For more information, please visit www.sec.gov.
Arman Tabatabaei
IR@CannabisGlobalInc.com
John Grosso
http://www.iconiconsulting.com/
SOURCE: Cannabis Global, Inc.
https://www.accesswire.com/677721/Cannabis-Global-Reports-Significantly-Increased-Revenues-for-the-Fiscal-Year-End--Files-Annual-Report
News powered by iR Direct —
Copyright © 2022 Issuer Direct Corporation.


Duro-Tuss PE CHESTY Cough + NASAL DECONGESTANT clears chest congestion and a blocked or runny nose.
Bromhexine Hydrochloride 12mg/15mL, Phenylephrine hydrochloride 10mg/15mL.
Take every 6 hours as required (max 4 times per day).
Consult your doctor if you are pregnant, have high blood pressure, have heart problems, are taking anti-depressant medicine.
Product containing sorbitol may have a laxative effect or cause diarrhea.


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using APIMonLib;
using APIMonLib.Hooks.ntdll.dll;
using APIMonLib.Hooks.kernel32.dll;
using APIMonLib.Hooks.ws2_32.dll;
using APIMonLib.Hooks;
using CPN;
using System.Diagnostics;

namespace APIMon {
	public class CPNetBuilder {

		#region Useful functions defenitions
		public static Func<object, string> to_string = CPNetBlocks.to_string;
		public static Func<object, int> to_int = CPNetBlocks.to_int;
		public static Func<object, string, bool> begins_with_string = CPNetBlocks.begins_with_string;
		public static Func<object, string, bool> ends_with_string = CPNetBlocks.ends_with_string;
		public static Func<object, object, bool> strings_equal_ignore_case = CPNetBlocks.strings_equal_ignore_case;
		public static Func<object, string> get_file_extention = CPNetBlocks.get_file_extention;

		public Func<Token, Token, bool> EQUAL(string field_name_1, string field_name_2) {
			return (token1, token2) => token1[field_name_1].Equals(token2[field_name_2]);
		}

		public Func<Token, Token, bool> FIRST_ENDS_WITH_SECOND_STRING(string field_name_1, string field_name_2) {
			return (token1, token2) => ends_with_string(token1[field_name_1], to_string(token2[field_name_2]));
		}

		public Func<Tuple, Token> STANDARD_GENEXP(Place base_place) {
			return tuple =>
			{
				Token result = new Token(tuple[base_place]);
				result.prevTuple = tuple;
				return result;
			};
		}

		public Func<Tuple, Token> SIMPLE_GENEXP() {
			return tuple =>
			{
				Token result = new Token();
				result.prevTuple = tuple;
				return result;
			};
		}

		//private bool value_in_set

		private Func<Token, bool> TRUE = token => true;
		private Func<Token, Token, bool> TRUE_2 = (token1, token2) => true;

		#endregion

        public void injectLibraryIntoFollowupProcess(Place place, Token token) {
            Process p = Process.GetProcessById((int)token[Hook_CreateProcessInternalW.Color.ProcessId]);
            MessageServer.instance.injectLibrary(p, (int)token[Hook_CreateProcessInternalW.Color.FirstThreadId]);
        }

		public void assembleCPN() {

			#region API places definition
            //ApiPlace ldr_load_dll = new ApiPlace(typeof(Hook_LdrLoadDll));

			#region Object managment API
			//ApiPlace zw_duplicate_object_api = new ApiPlace(typeof(Hook_ZwDuplicateObject));
			#endregion

			#region Process management API
			ApiPlace create_process_w_api = new ApiPlace(typeof(Hook_CreateProcessInternalW));
            create_process_w_api.addPutReaction(new Place.Reaction(PrintReactionProvider.getProvider(ConsoleColor.Red).advancedPrintToken));

            if (Configuration.FOLLOW_PROCESS_TREE) create_process_w_api.addPutReaction(new Place.Reaction(injectLibraryIntoFollowupProcess));
			//ApiPlace exit_process_api = new ApiPlace(typeof(Hook_ExitProcess));
			//ApiPlace zw_terminate_process_api = new ApiPlace(typeof(Hook_ZwTerminateProcess));
			//ApiPlace ldr_shutdown_process_api = new ApiPlace(typeof(Hook_LdrShutdownProcess));
			#endregion
			#region Network API
			ApiPlace wsa_socket_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_WSASocketW), Hook_WSASocketW.Color.Handle);
			ApiPlace wsa_connect_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_WSAConnect), Hook_WSAConnect.Color.Handle);
			ApiPlace connect_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_connect), Hook_connect.Color.Handle);
			ApiPlace bind_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_bind), Hook_bind.Color.Handle);
			ApiPlace listen_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_listen), Hook_listen.Color.Handle);
			ApiPlace wsa_accept_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_WSAAccept), Hook_WSAAccept.Color.Handle);
			ApiPlace accept_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_accept), Hook_accept.Color.Handle);
			ApiPlace send_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_send), Hook_send.Color.Handle);
			ApiPlace wsa_send_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_WSASend), Hook_WSASend.Color.Handle);

			#endregion
			#region Named Pipes API
			ApiPlace create_named_pipe_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_CreateNamedPipeW), Hook_CreateNamedPipeW.Color.PipeHandle);
            create_named_pipe_api.addPutReaction(new Place.Reaction(PrintReactionProvider.getProvider(ConsoleColor.Yellow).simplePrintToken));
			ApiPlace connect_named_pipe_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ConnectNamedPipe), Hook_ConnectNamedPipe.Color.PipeHandle);
			#endregion
			#region File API
			ApiPlace zw_create_file_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwCreateFile), "FileHandle");
			ApiPlace zw_open_file_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwOpenFile), "FileHandle");
			ApiPlace zw_read_file_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwReadFile), "FileHandle");
			ApiPlace zw_write_file_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwWriteFile), "FileHandle");
			ApiPlace zw_create_section_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwCreateSection), "FileHandle");
			CPNetBlocks.assembleCloseHandleSubNet(zw_create_section_api, "SectionHandle");// in addition section can be closed by SectionHandle
			ApiPlace zw_map_view_of_section_api = CPNetBlocks.getApiPlaceClosedByZwClose(typeof(Hook_ZwMapViewOfSection), "SectionHandle");

			//Place zw_create_file_api = CPNetBlocks.getPlaceClosedByZwClose("3", "2");
			//Place zw_open_file_api = CPNetBlocks.getPlaceClosedByZwClose("33", "2");
			//Place zw_read_file_api = CPNetBlocks.getPlaceClosedByZwClose("333", "2");
			//Place zw_write_file_api = CPNetBlocks.getPlaceClosedByZwClose("4", "2");
			//Place zw_create_section_api = CPNetBlocks.getPlaceClosedByZwClose("44", "2");
			//CPNetBlocks.assembleCloseHandleSubNet(zw_create_section_api, "SectionHandle");// in addition section can be closed by SectionHandle
			//Place zw_map_view_of_section_api = CPNetBlocks.getPlaceClosedByZwClose("444", "2");

			#endregion
			#endregion

			#region Filesystem predefinitions
			Place joined_create_open_file_api = CPNetBlocks.getPlaceClosedByZwClose("Joined_create_&_open", "FileHandle");
			CPNetBlocks.unconditionallyJoinPlacesIntoOne(zw_create_file_api, zw_open_file_api, joined_create_open_file_api);
			#endregion

			#region Network predefinitions
			Place joined_connect_api = CPNetBlocks.getPlaceClosedByZwClose("Joined_connect_&_WSAConnect", Hook_connect.Color.Handle);
			CPNetBlocks.unconditionallyJoinPlacesIntoOne(wsa_connect_api, connect_api, joined_connect_api);

			Place joined_send_api = CPNetBlocks.getPlaceClosedByZwClose("Joined_send_&_WSASend", Hook_send.Color.Handle);
			CPNetBlocks.unconditionallyJoinPlacesIntoOne(send_api, wsa_send_api, joined_send_api);

			Place joined_accept_api = CPNetBlocks.getPlaceClosedByZwClose("Joined_accept_&_WSAAccept", Hook_accept.Color.Handle);
			CPNetBlocks.unconditionallyJoinPlacesIntoOne(accept_api, wsa_accept_api, joined_accept_api);

			Place socket_connected = CPNetBlocks.getPlaceClosedByZwClose("Socket_connected", Hook_connect.Color.Handle);

			CPNetBlocks.assembleDiInputStructure(
									wsa_socket_api,
									Delete.No,
									joined_connect_api,
									Delete.Yes,
									socket_connected,
									EQUAL(Hook_WSASocketW.Color.Handle, Hook_connect.Color.Handle)).generating_expression = STANDARD_GENEXP(joined_connect_api);

			#endregion

			#region File read/write self_read

			Place file_mapping = Detect_FileMapping(joined_create_open_file_api, zw_create_section_api, zw_map_view_of_section_api);
			const int MIN_TO_READ = 1600;
			Place read_from_file = AccumulatedBytesCheckAssemble(joined_create_open_file_api, zw_read_file_api, MIN_TO_READ, "BytesRead", "read");
			const int MIN_TO_WRITE = 1600;
			Place written_to_file = AccumulatedBytesCheckAssemble(joined_create_open_file_api, zw_write_file_api, MIN_TO_WRITE, "BytesWritten", "write");

			Place self_read_or_map = new Place("Self_read_or_map_file");

			Place read_from_file_mirror = CPNetBlocks.mirror(read_from_file);
			CPNetBlocks.assembleMonoInputStructure(read_from_file_mirror,
													Arc.MAX_WEIGHT,
													Delete.Yes,
													self_read_or_map,
													token => CPNetBlocks.checkProcessStartedFromTheModule(token.PID, to_string(token["ObjectName"]))
													).generating_expression = STANDARD_GENEXP(read_from_file_mirror);

			CPNetBlocks.assembleMonoInputStructure(read_from_file_mirror,
													Arc.MIN_WEIGHT,
													Delete.Yes,
													CPNetBlocks.getPlaceDestroingTokens(),
													TRUE).generating_expression = STANDARD_GENEXP(read_from_file_mirror);

			Place map_file_mirror = CPNetBlocks.mirrorDumped(file_mapping);

			CPNetBlocks.assembleMonoInputStructure(map_file_mirror,
													Arc.MAX_WEIGHT,
													Delete.Yes,
													self_read_or_map,
													token => CPNetBlocks.checkProcessStartedFromTheModule(token.PID, to_string(token["ObjectName"]))
													).generating_expression = STANDARD_GENEXP(map_file_mirror);

			#region Definition of executable file extentions
			HashSet<string> executables_extentions_set = new
		HashSet<string>() {
									"ADE", //- Microsoft Access Project Extension
									"ADP", //- Microsoft Access Project
									"BAS", //- Visual Basic Class Module
									"BAT", //- Batch File
									"CHM", //- Compiled HTML Help File
									"CMD", //- Windows NT Command Script
									"COM", //- MS-DOS Application
									"CPL", //- Control Panel Extension
									"CRT", //- Security Certificate
									"DLL", //- Dynamic Link Library
									"EXE", //- Application
									"HLP", //- Windows Help File
									"HTA", //- HTML Applications
									"INF", //- Setup Information File
									"INS", //- Internet Communication Settings
									"ISP", //- Internet Communication Settings
									"JSE", //- JScript Encoded Script File
									"LNK", //- Shortcut
									"MDB", //- Microsoft Access Application
									"MDE", //- Microsoft Access MDE Database
									"MSC", //- Microsoft Common Console Document
									"MSI", //- Windows Installer Package
									"MSP", //- Windows Installer Patch
									"MST", //- Visual Test Source File
									"OCX", //- ActiveX Objects
									"PCD", //- Photo CD Image
									"PIF", //- Shortcut to MS-DOS Program
									"POT", //- PowerPoint Templates
									"PPT", //- PowerPoint Files
									"REG", //- Registration Entries
									"SCR", //- Screen Saver
									"SCT", //- Windows Script Component
									"SHB", //- Document Shortcut File
									"SHS", //- Shell Scrap Object
									"SYS", //- System Config/Driver
									"URL", //- Internet Shortcut (Uniform Resource Locator)
									"VBE", //- VBScript Encoded Script File
									"VBS", //- VBScript Script File
									"WSC", //- Windows Script Component
									"WSF", //- Windows Script File
									"WSH" //- Windows Scripting Host Settings File
									};
			#endregion

			Place write_to_executable = new Place("write_to_executable");//.addPutReaction(new Place.Reaction(CPNetBlocks.getPrintReactionProvider(ConsoleColor.Yellow).advancedPrintToken));
			Place written_to_file_mirror_1=CPNetBlocks.mirrorDumped(written_to_file);
			CPNetBlocks.assembleMonoInputStructure(written_to_file_mirror_1,
													Delete.Yes,
													write_to_executable,
													token => executables_extentions_set.Contains(get_file_extention(token[Hook_ZwCreateFile.Color.ObjectName]).ToUpper())
													).generating_expression = STANDARD_GENEXP(written_to_file_mirror_1);

			//do self read -> write to EXE action detection

			Place self_read_write_to_executable = new DetectionPlace("self_read_write_to_executable");

			CPNetBlocks.assembleDiInputStructure(CPNetBlocks.mirror(self_read_or_map),
													Delete.No,
													CPNetBlocks.mirrorDumped(write_to_executable),
													Delete.Yes,
													self_read_write_to_executable,
													TRUE_2).generating_expression = SIMPLE_GENEXP();
			#endregion

			#region Download & execute

			Place start_process_from_edited_or_created_executable = new DetectionPlace("start_process_from_edited_or_created_executable");

			Place create_process_w_api_mirror_1 = CPNetBlocks.mirrorDumped(create_process_w_api);

			CPNetBlocks.assembleDiInputStructure(CPNetBlocks.mirror(write_to_executable),
												Delete.No,
												create_process_w_api_mirror_1,
												Delete.Yes,
												start_process_from_edited_or_created_executable,
                                                FIRST_ENDS_WITH_SECOND_STRING(Hook_ZwCreateFile.Color.ObjectName, Hook_CreateProcessInternalW.Color.ApplicationName)
												).generating_expression = STANDARD_GENEXP(create_process_w_api_mirror_1);

			Place socket_has_been_connected_fact = new Place("fact_that_socket_has_been_connected");
			CPNetBlocks.assembleEliminateDuplicateItems(CPNetBlocks.mirrorWithRemoval(socket_connected), socket_has_been_connected_fact, TRUE_2);

			Place download_and_execute_detected = new DetectionPlace("download_and_execute_detected");

			CPNetBlocks.assembleDiInputStructure(socket_has_been_connected_fact,
													Delete.No,
													CPNetBlocks.mirrorDumped(start_process_from_edited_or_created_executable),
													Delete.Yes,
													download_and_execute_detected,
													TRUE_2).generating_expression = SIMPLE_GENEXP();
			#endregion

			#region Self mail detection

			Place smtp_detected = Detect_SMTP(socket_connected, joined_send_api);

			Place self_mail_detected = new DetectionPlace("self_mail_detected");
			CPNetBlocks.assembleDiInputStructure(CPNetBlocks.mirrorDumped(smtp_detected),
													Delete.Yes,
													self_read_or_map,
													Delete.No,
													self_mail_detected,
													TRUE_2).generating_expression = STANDARD_GENEXP(self_read_or_map);

			#endregion

			Detect_NamedPipeShell(create_named_pipe_api, connect_named_pipe_api, create_process_w_api);
			Detect_BindListenAcceptShell(create_process_w_api, assembleBindListenAcceptLine(wsa_socket_api, bind_api, listen_api, joined_accept_api));
		}

		private Place Detect_BindListenAcceptShell(Place create_process_w_api, Place accepted_sockets) {
			Place create_process_w_api_mirror = CPNetBlocks.mirror(create_process_w_api);

			Place socket_listen_accept_in_shell_detected = new Place("Socket_listen_accept_connected_to_stdin");
			Place socket_listen_accept_out_shell_detected = new Place("Socket_listen_accept_connected_to_stdout");
			Place bind_shell_via_listen_accept_detected = new DetectionPlace("Bind_shell_via_listen_accept_detected");

			CPNetBlocks.assembleDiInputStructure(accepted_sockets,
													Delete.No,
													create_process_w_api_mirror,
													Delete.No,
													socket_listen_accept_in_shell_detected,
													EQUAL(Hook_WSAAccept.Color.Handle,Hook_CreateProcessInternalW.Color.StdInHandle)
												).generating_expression = STANDARD_GENEXP(create_process_w_api_mirror);

			CPNetBlocks.assembleDiInputStructure(accepted_sockets,
													Delete.No,
													create_process_w_api_mirror,
													Delete.No,
													socket_listen_accept_out_shell_detected,
													EQUAL(Hook_WSAAccept.Color.Handle,Hook_CreateProcessInternalW.Color.StdOutHandle)
												).generating_expression = STANDARD_GENEXP(create_process_w_api_mirror);

			CPNetBlocks.assembleDiInputStructure(socket_listen_accept_in_shell_detected,
													Delete.Yes,
													socket_listen_accept_out_shell_detected,
													Delete.Yes,
													bind_shell_via_listen_accept_detected,
													EQUAL(Hook_CreateProcessInternalW.Color.ProcessId,Hook_CreateProcessInternalW.Color.ProcessId)
												).generating_expression = tuple =>
												{
													Token result = new Token();
													result.loadAllFields("In.", tuple[socket_listen_accept_in_shell_detected]);
													result.loadAllFields("Out.", tuple[socket_listen_accept_out_shell_detected]);
													//result.prevTuple = tuple;
													return result;
												};
			return bind_shell_via_listen_accept_detected;
		}

		/// <summary>
		/// Assembles standart socket line bind->listen->accept detection.
		/// </summary>
		/// <param name="wsa_socket_api">No delete</param>
		/// <param name="bind_api">DELETE</param>
		/// <param name="listen_api">DELETE</param>
		/// <param name="joined_accept_api">DELETE</param>
		/// <returns>Place with accepted sockets</returns>
		private Place assembleBindListenAcceptLine(Place wsa_socket_api, Place bind_api, Place listen_api, Place joined_accept_api) {
			//Assemble line socket bind listen accept
			//Actually it is possible to listen w/o bind. But then port is random and getsockname or netstat is needed
			Place socket_bound = CPNetBlocks.getPlaceClosedByZwClose("Socket_bound", Hook_bind.Color.Handle);
			Place socket_listening = CPNetBlocks.getPlaceClosedByZwClose("Socket_listening", Hook_listen.Color.Handle);
			Place accepted_sockets = CPNetBlocks.getPlaceClosedByZwClose("Accepted_sockets", Hook_accept.Color.Handle);

			CPNetBlocks.assembleDiInputStructure(wsa_socket_api,
													Delete.No,
													bind_api,
													Delete.Yes,
													socket_bound,
													EQUAL(Hook_WSASocketW.Color.Handle, Hook_bind.Color.Handle)
												).generating_expression = STANDARD_GENEXP(bind_api);
			CPNetBlocks.assembleDiInputStructure(socket_bound,
													Delete.No,
													listen_api,
													Delete.Yes,
													socket_listening,
													EQUAL(Hook_bind.Color.Handle, Hook_listen.Color.Handle)
												).generating_expression = STANDARD_GENEXP(listen_api);
            socket_listening.addPutReaction(new Place.Reaction(PrintReactionProvider.getProvider(ConsoleColor.Yellow).advancedPrintToken));
			CPNetBlocks.assembleDiInputStructure(socket_listening,
													Delete.No,
													joined_accept_api,
													Delete.Yes,
													accepted_sockets,
													EQUAL(Hook_listen.Color.Handle, Hook_accept.Color.ListeningSocketHandle)
												).generating_expression = STANDARD_GENEXP(joined_accept_api);
			return accepted_sockets;
		}

		/// <summary>
		/// Detects when two named pipes are created and attached to the input of the process.
		/// </summary>
		/// <param name="create_named_pipe_api">NO Delete</param>
		/// <param name="connect_named_pipe_api">Mirrored </param>
		/// <param name="create_process_w_api">Mirrored</param>
		private Place Detect_NamedPipeShell(Place create_named_pipe_api, Place connect_named_pipe_api, Place create_process_w_api) {
			Place pipe_connected = CPNetBlocks.getPlaceClosedByZwClose("Pipe_created_&_connected", Hook_CreateNamedPipeW.Color.PipeHandle);

			CPNetBlocks.assembleDiInputStructure(create_named_pipe_api,
													Delete.No,
													CPNetBlocks.mirrorWithRemoval(connect_named_pipe_api),
													Delete.Yes,
													pipe_connected,
													EQUAL(Hook_CreateNamedPipeW.Color.PipeHandle, Hook_ConnectNamedPipe.Color.PipeHandle)
												).generating_expression = STANDARD_GENEXP(create_named_pipe_api);

			Place pipe_shell_in_detected = CPNetBlocks.getPlaceClosedByZwClose("Pipe_connnected_to_process_input_detected", Hook_CreateNamedPipeW.Color.PipeHandle);
			//pipe_shell_in_detected.addPutReaction(new Place.Reaction(CPNetBlocks.getPrintReactionProvider(ConsoleColor.Green).advancedPrintToken));

			Place pipe_shell_out_detected = CPNetBlocks.getPlaceClosedByZwClose("Pipe_connnected_to_process_output_detected", Hook_CreateNamedPipeW.Color.PipeHandle);
			//pipe_shell_out_detected.addPutReaction(new Place.Reaction(CPNetBlocks.getPrintReactionProvider(ConsoleColor.Blue).advancedPrintToken));

			Place create_process_w_api_mirror = CPNetBlocks.mirrorDumped(create_process_w_api);

			CPNetBlocks.assembleDiInputStructure(pipe_connected,
													Delete.No,
													create_process_w_api_mirror,
													Delete.No,
													pipe_shell_in_detected,
													EQUAL(Hook_CreateNamedPipeW.Color.PipeHandle,Hook_CreateProcessInternalW.Color.StdInHandle)
												).generating_expression = tuple =>
												{
													Token result = new Token(tuple[create_process_w_api_mirror]);
													result.loadFields(new string[] { Hook_CreateNamedPipeW.Color.PipeHandle }, string.Empty, tuple[pipe_connected]);
													result.prevTuple = tuple;
													return result;
												};

			CPNetBlocks.assembleDiInputStructure(pipe_connected,
													Delete.No,
													create_process_w_api_mirror,
													Delete.No,
													pipe_shell_out_detected,
													EQUAL(Hook_CreateNamedPipeW.Color.PipeHandle,Hook_CreateProcessInternalW.Color.StdOutHandle)
												).generating_expression = tuple =>
												{
													Token result = new Token(tuple[create_process_w_api_mirror]);
													result.loadFields(new string[] { Hook_CreateNamedPipeW.Color.PipeHandle }, string.Empty, tuple[pipe_connected]);
													result.prevTuple = tuple;
													return result;
												};

			Place bind_shell_via_named_pipes_detected = new DetectionPlace("Bind_shell_via_named_pipes_detected");

			//Pipe shell is obvious when in and out std handles of a process are connected to pipes
			//so here we check that both std streams of a process are connected to pipes
			CPNetBlocks.assembleDiInputStructure(pipe_shell_in_detected,
													Delete.Yes,
													pipe_shell_out_detected,
													Delete.Yes,
													bind_shell_via_named_pipes_detected,
													EQUAL(Hook_CreateProcessInternalW.Color.ProcessId,Hook_CreateProcessInternalW.Color.ProcessId)
												).generating_expression = tuple =>
												{
													Token result = new Token();
													result.loadAllFields("In.", tuple[pipe_shell_in_detected]);
													result.loadAllFields("Out.", tuple[pipe_shell_out_detected]);
													//result.prevTuple = tuple;
													return result;
												};
			return bind_shell_via_named_pipes_detected;
		}

		/// <summary>
        /// Detects that program does't network interaction accordin to SMTP e-mail protocol.
		/// Fully mirrored
		/// </summary>
		/// <param name="socket_connected_out">Mirrored</param>
		/// <param name="joined_send_api">Mirrored</param>
		/// /// <returns>Place with unique set of objects from where more than min_to_read bytes were read by program. This procedure DELETES from {place with read behavior}</returns>
		private Place Detect_SMTP(Place socket_connected, Place joined_send_api) {
			Place joined_send_api_mirror = CPNetBlocks.mirrorWithRemoval(joined_send_api);

			string[] smtp_prefixes_array = new string[] { "MAIL FROM:", "RCPT TO:", "DATA" };

			Place smtp_sequencer = CPNetBlocks.getPlaceClosedByZwClose("SMTP_sequencer", "SocketHandle").setPrintLevel(Place.PrintLevel.Low);

			CPNetBlocks.assembleDiInputStructure(	joined_send_api_mirror,
													Delete.Yes,
													CPNetBlocks.mirrorWithRemoval(socket_connected),
													Delete.No,
													smtp_sequencer,
										(token1, token2) => token1["SocketHandle"].Equals(token2["SocketHandle"]) && (CPNetBlocks.begins_with_string(token1["buffer"], "helo") || (CPNetBlocks.begins_with_string(token1["buffer"], "ehlo")))
									 ).generating_expression = tuple =>
									 {
										 Token result = new Token(tuple[joined_send_api_mirror]);
										 result.prevTuple = tuple;
										 result["index"] = 0;
										 result["smtp_prefixes"] = smtp_prefixes_array;
										 return result;
									 };

			Place smtp_buffers_sent = new Place("SMTP_buffers_sent");

			Transition t_cycle_through_smtp_prefixes = new Transition("t_cycle_through_smtp_prefixes");
			t_cycle_through_smtp_prefixes.addBinaryExpression(joined_send_api_mirror + smtp_sequencer,
																(token1, token2) => token1["SocketHandle"].Equals(token2["SocketHandle"]) &&
																					CPNetBlocks.begins_with_string(token1["buffer"], ((string[])token2["smtp_prefixes"])[to_int(token2["index"])])
															  );
			new Arc(joined_send_api_mirror, t_cycle_through_smtp_prefixes).enableTokenRemovalFromInput();
			new Arc(smtp_sequencer, t_cycle_through_smtp_prefixes).enableTokenRemovalFromInput();
			Arc output_arc_1 = new Arc(t_cycle_through_smtp_prefixes, smtp_sequencer);
			output_arc_1.filtering_expression = tuple => to_int(tuple[smtp_sequencer]["index"]) < smtp_prefixes_array.Length - 1;
			output_arc_1.generating_expression = tuple =>
			{
				Token result = new Token(tuple[joined_send_api_mirror]);
				result.prevTuple = tuple;
				result["index"] = to_int(tuple[smtp_sequencer]["index"]) + 1;
				result["smtp_prefixes"] = smtp_prefixes_array;
				return result;
			};
			Arc output_arc_2 = new Arc(t_cycle_through_smtp_prefixes, smtp_buffers_sent);
			output_arc_2.filtering_expression = tuple => to_int(tuple[smtp_sequencer]["index"]) == smtp_prefixes_array.Length - 1;
			output_arc_2.generating_expression = tuple => { Token result = new Token(tuple[joined_send_api_mirror]); result.prevTuple = tuple; return result; };

			//			smtp_buffers_sent.addPutReaction(new Place.Reaction(CPNetBlocks.getPrintReactionProvider(ConsoleColor.Yellow).advancedPrintToken));

			return smtp_buffers_sent;
		}

		/// <summary>
		/// Assembles file mapping detection
		/// </summary>
		/// <param name="joined_create_open_file">No delete</param>
		/// <param name="zw_create_section_api">DELETE</param>
		/// <param name="zw_map_view_of_section_api">DELETE</param>
		/// <returns></returns>
		private Place Detect_FileMapping(Place joined_create_open_file, Place zw_create_section_api, Place zw_map_view_of_section_api) {
			Place file_mapping_created = CPNetBlocks.getPlaceClosedByZwClose("File_mapping_created", "FileHandle");

			CPNetBlocks.assembleDiInputStructure(joined_create_open_file,
										Delete.No,
										zw_create_section_api,
										Delete.Yes,
										file_mapping_created,
										EQUAL(Hook_ZwCreateFile.Color.FileHandle, Hook_ZwCreateSection.Color.FileHandle)
									).generating_expression = tuple =>
									{
										Token result = new Token(tuple[zw_create_section_api]);
										result.loadFields(new string[] { "ObjectName" }, "Zw(Create/Open)File.", tuple[joined_create_open_file]);
										result.prevTuple = tuple;
										return result;
									};
			//file_mapping_created.addReaction(new Place.Reaction(printCauseToken));
			Place file_mapping_created_and_mapped = new Place("File_mapping_created_&_mapped");
			CPNetBlocks.assembleCloseHandleSubNet(file_mapping_created_and_mapped, Hook_ZwCreateSection.Color.FileHandle);
			CPNetBlocks.assembleCloseHandleSubNet(file_mapping_created_and_mapped, Hook_ZwCreateSection.Color.SectionHandle);

			CPNetBlocks.assembleDiInputStructure(file_mapping_created,
										Delete.No,
										zw_map_view_of_section_api,
										Delete.Yes,
										file_mapping_created_and_mapped,
										EQUAL(Hook_ZwCreateSection.Color.SectionHandle,Hook_ZwMapViewOfSection.Color.SectionHandle)
									 ).generating_expression = tuple =>
									 {
										 Token result = new Token(tuple[zw_map_view_of_section_api]);
										 result.loadFields(new string[] { "FileHandle", "ObjectName", "Zw(Create/Open)File.ObjectName" }, string.Empty, tuple[file_mapping_created]);
										 result.prevTuple = tuple;
										 return result;
									 };
			Place file_mapping_created_and_mapped_unique = new Place("File_mapping_created_and_mapped_unique");
			CPNetBlocks.assembleEliminateDuplicateItems(file_mapping_created_and_mapped, file_mapping_created_and_mapped_unique, (token1, token2) =>
			{
				return strings_equal_ignore_case(token1["Zw(Create/Open)File.ObjectName"], token2["Zw(Create/Open)File.ObjectName"]);
			});

			//file_mapping_created_and_mapped_unique.addPutReaction(new Place.Reaction(new SimpleReactionProvider(ConsoleColor.Green).advancedPrintTokenReaction));
			return file_mapping_created_and_mapped_unique;
		}

		/// <summary>
		/// Assembles repeated action detection. If program reads/writes/sends more than  min_to_transfer  the created/opened object is remebered in output place
		/// </summary>
		/// <param name="create_or_open_file">place whith object created/opened</param>
		/// <param name="zw_read_file_api">place with read behavior. DELETE</param>
		/// <param name="min_to_transfer">Min number of bytes to transfer for detection</param>
		/// <returns>Place with unique set of objects from where more than min_to_read bytes were read by program. This procedure DELETES from {place with read behavior}</returns>
		private Place AccumulatedBytesCheckAssemble(Place create_or_open_object, Place action_api, int min_to_transfer, string accumulator_field_name, string human_readable_prefix) {

			Place transfer_data_from_object = CPNetBlocks.getPlaceClosedByZwClose(human_readable_prefix + "_transfer_data_from_object", "FileHandle").setPrintLevel(Place.PrintLevel.Low);

			CPNetBlocks.assembleDiInputStructure(
									create_or_open_object,
									Arc.DEFAULT_WEIGHT,
									Delete.No,
									action_api,
									Arc.MIN_WEIGHT,
									Delete.Yes,
									transfer_data_from_object,
									EQUAL(Hook_ZwCreateFile.Color.FileHandle,"FileHandle")
							).generating_expression = tuple =>
							{
								Token result = new Token(tuple[action_api]);
								result.loadFields(new string[] { "ObjectName" }, string.Empty, tuple[create_or_open_object]);
								result.prevTuple = tuple;
								return result;
							};

			//add read more than limit subnet from the first time

			CPNetBlocks.assembleDiInputStructure(
							action_api,
							Delete.Yes,
							transfer_data_from_object,
							Delete.Yes,
							transfer_data_from_object,
							(token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) && to_int(token2[accumulator_field_name]) < min_to_transfer
						).generating_expression = tuple =>
						{
							Token result = new Token(tuple[transfer_data_from_object]);
							result[accumulator_field_name] = to_int(tuple[transfer_data_from_object][accumulator_field_name]) + to_int(tuple[action_api][accumulator_field_name]);
							return result;
						};

			Place excessive_tranfers = CPNetBlocks.getPlaceClosedByZwClose(human_readable_prefix + "_excessive_transfers", "FileHandle").setPrintLevel(Place.PrintLevel.Low);

			CPNetBlocks.assembleDiInputStructure(
							action_api,
							Arc.MAX_WEIGHT,
							Delete.Yes,
							transfer_data_from_object,
							Arc.DEFAULT_WEIGHT,
							Delete.No,
							excessive_tranfers,
							(token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) && to_int(token2[accumulator_field_name]) >= min_to_transfer
						).generating_expression = tuple => new Token(tuple[transfer_data_from_object]);

			Place remember_transfers = new Place(human_readable_prefix + "_remember_transfers").setPrintLevel(Place.PrintLevel.Low);
			//remember_file_read.addReaction(new Place.Reaction(printCauseToken));

			CPNetBlocks.assembleMonoInputStructure(
							transfer_data_from_object,
							Arc.MIN_WEIGHT,
							Delete.No,
							remember_transfers,
							(token) => to_int(token[accumulator_field_name]) >= min_to_transfer
						).generating_expression = tuple => new Token(tuple[transfer_data_from_object]);

			Place remember_transfers_unique = new Place(human_readable_prefix + "_remember_transfers_unique");
			//remember_file_read_unique.addReaction(new Place.Reaction(printCauseToken));
			CPNetBlocks.assembleEliminateDuplicateItems(remember_transfers, remember_transfers_unique, (token1, token2) => CPNetBlocks.strings_equal_ignore_case(token1["ObjectName"], token2["ObjectName"]));
			return remember_transfers_unique;
		}

		#region commmented out
		//private void ReadFileCheckAssemble(Place zw_create_file_api, ApiPlace zw_read_file_api) {
		//    const int MIN_TO_READ = 1600;
		//    Place read_from_file = new Place("read_from_file");
		//    CPNetBlocks.assembleCloseHandleSubNet(read_from_file, "FileHandle");
		//    //read_from_file.addReaction(new Place.Reaction(printCauseToken));

		//    Transition t_first_read = new Transition("first_read_transition");
		//    t_first_read.addBinaryExpression(zw_create_file_api + zw_read_file_api,
		//                                                (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"])
		//                                              );

		//    new Arc(zw_create_file_api, t_first_read);
		//    new Arc(zw_read_file_api, t_first_read, Arc.MIN_WEIGHT).enableTokenRemovalFromInput();
		//    Arc output_arc_3 = new Arc(t_first_read, read_from_file);
		//    output_arc_3.generating_expression = tuple =>
		//    {
		//        Token result = new Token(tuple[zw_read_file_api]);
		//        result.loadFields(new string[] { "ObjectName" }, string.Empty, tuple[zw_create_file_api]);
		//        result.prevTuple = tuple;
		//        return result;
		//    };

		//    //add read more than limit subnet from the first time

		//    Transition t_next_read = new Transition("next_read_transition");
		//    t_next_read.addBinaryExpression(zw_read_file_api + read_from_file,
		//                                       (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) &&
		//                                           to_int(token2["BytesRead"]) < MIN_TO_READ
		//                                    );

		//    new Arc(zw_read_file_api, t_next_read, Arc.DEFAULT_WEIGHT).enableTokenRemovalFromInput();
		//    new Arc(read_from_file, t_next_read).enableTokenRemovalFromInput();
		//    new Arc(t_next_read, read_from_file).generating_expression = tuple =>
		//    {
		//        Token result = new Token(tuple[read_from_file]);
		//        result["BytesRead"] = to_int(tuple[read_from_file]["BytesRead"]) + to_int(tuple[zw_read_file_api]["BytesRead"]);
		//        return result;
		//    };

		//    Place excessive_reads = new Place("excessive_reads");
		//    CPNetBlocks.assembleCloseHandleSubNet(excessive_reads, "FileHandle");

		//    Transition t_excessive_read = new Transition("excessive_read_transition");
		//    t_excessive_read.addBinaryExpression(zw_read_file_api + read_from_file,
		//                                       (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) &&
		//                                           to_int(token2["BytesRead"]) >= MIN_TO_READ
		//                                    );
		//    new Arc(zw_read_file_api, t_excessive_read, Arc.MAX_WEIGHT).enableTokenRemovalFromInput();
		//    new Arc(read_from_file, t_excessive_read);
		//    new Arc(t_excessive_read, excessive_reads).generating_expression = tuple => new Token(tuple[read_from_file]);
		//    //excessive_reads.addReaction(new Place.Reaction(printCauseToken));

		//    Place remember_file_read = new Place("remember_file_reads");
		//    //remember_file_read.addReaction(new Place.Reaction(printCauseToken));

		//    Transition t_remember_file_read = new Transition("Remeber that particular file has been read transition");
		//    t_remember_file_read.addUnaryExpression(read_from_file, (token) => to_int(token["BytesRead"]) >= MIN_TO_READ);

		//    new Arc(read_from_file, t_remember_file_read, Arc.MIN_WEIGHT);
		//    new Arc(t_remember_file_read, remember_file_read).generating_expression = tuple => new Token(tuple[read_from_file]);

		//    Place remember_file_read_unique = new Place("remember_file_read_unique");
		//    //remember_file_read_unique.addReaction(new Place.Reaction(printCauseToken));
		//    CPNetBlocks.assembeEliminateDuplicateItems(remember_file_read, remember_file_read_unique, (token1, token2) => strings_equal_ignore_case(token1["ObjectName"], token2["ObjectName"]));
		//}

		//private void WriteFileCheckAssemble(Place zw_create_file_api, ApiPlace zw_write_file_api) {
		//    const int MIN_TO_WRITE = 1600;
		//    Place write_from_file = new Place("write_from_file");
		//    CPNetBlocks.assembleCloseHandleSubNet(write_from_file, "FileHandle");
		//    //write_from_file.addReaction(new Place.Reaction(printCauseToken));

		//    Transition t_first_write = new Transition("first_write_transition");
		//    t_first_write.addBinaryExpression(zw_create_file_api + zw_write_file_api,
		//                                                (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"])
		//                                              );

		//    new Arc(zw_create_file_api, t_first_write);
		//    new Arc(zw_write_file_api, t_first_write, Arc.MIN_WEIGHT).enableTokenRemovalFromInput();
		//    Arc output_arc_3 = new Arc(t_first_write, write_from_file);
		//    output_arc_3.generating_expression = tuple =>
		//    {
		//        Token result = new Token(tuple[zw_write_file_api]);
		//        result.loadFields(new string[] { "ObjectName" }, string.Empty, tuple[zw_create_file_api]);
		//        result.prevTuple = tuple;
		//        return result;
		//    };

		//    //add write more than limit subnet from the first time

		//    Transition t_next_write = new Transition("next_write_transition");
		//    t_next_write.addBinaryExpression(zw_write_file_api + write_from_file,
		//                                       (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) &&
		//                                           to_int(token2["BytesWritten"]) < MIN_TO_WRITE
		//                                    );

		//    new Arc(zw_write_file_api, t_next_write, Arc.DEFAULT_WEIGHT).enableTokenRemovalFromInput();
		//    new Arc(write_from_file, t_next_write).enableTokenRemovalFromInput();
		//    new Arc(t_next_write, write_from_file).generating_expression = tuple =>
		//    {
		//        Token result = new Token(tuple[write_from_file]);
		//        result["BytesWritten"] = to_int(tuple[write_from_file]["BytesWritten"]) + to_int(tuple[zw_write_file_api]["BytesWritten"]);
		//        return result;
		//    };

		//    Place excessive_writes = new Place("excessive_writes");
		//    CPNetBlocks.assembleCloseHandleSubNet(excessive_writes, "FileHandle");

		//    Transition t_excessive_write = new Transition("excessive_write_transition");
		//    t_excessive_write.addBinaryExpression(zw_write_file_api + write_from_file,
		//                                       (token1, token2) => token1["FileHandle"].Equals(token2["FileHandle"]) &&
		//                                           to_int(token2["BytesWritten"]) >= MIN_TO_WRITE
		//                                    );
		//    new Arc(zw_write_file_api, t_excessive_write, Arc.MAX_WEIGHT).enableTokenRemovalFromInput();
		//    new Arc(write_from_file, t_excessive_write);
		//    new Arc(t_excessive_write, excessive_writes).generating_expression = tuple => new Token(tuple[write_from_file]);
		//    //excessive_writes.addReaction(new Place.Reaction(printCauseToken));

		//    Place remember_file_write = new Place("remember_file_writes");
		//    //remember_file_write.addReaction(new Place.Reaction(printCauseToken));

		//    Transition t_remember_file_write = new Transition("Remeber that particular file has been write transition");
		//    t_remember_file_write.addUnaryExpression(write_from_file, (token) => to_int(token["BytesWritten"]) >= MIN_TO_WRITE);

		//    new Arc(write_from_file, t_remember_file_write, Arc.MIN_WEIGHT);
		//    new Arc(t_remember_file_write, remember_file_write).generating_expression = tuple => new Token(tuple[write_from_file]);

		//    Place remember_file_write_unique = new Place("remember_file_write_unique");
		//    //remember_file_write_unique.addReaction(new Place.Reaction(printCauseToken));
		//    CPNetBlocks.assembeEliminateDuplicateItems(remember_file_write, remember_file_write_unique, (token1, token2) => strings_equal_ignore_case(token1["ObjectName"], token2["ObjectName"]));
		//}
		#endregion
	}
}


text:
Flashback: CIA Pope: The Real Mover and Shaker of this Entire Spectacle is the Deep State
By Laramie Hirsch
The U.S. State Department routinely pressures members of the United Security Council with a view to influencing the vote pertaining to Security Council resolutions. U.S. covert operations and propaganda campaigns are routinely applied with a view to influencing national elections in different countries around the world. Similarly, the CIA has a longstanding covert relationship with the Vatican. Did the U.S. government attempt to influence the outcome of the election of the new pontiff? Firmly committed to serving U.S. foreign policy interests in Latin America, Jorge Mario Bergoglio was Washington's preferred candidate. Were undercover pressures discretely exerted by Washington, within the Catholic Church, directly or indirectly, on the 115 cardinals who are members of the Vatican conclave?
Professor Michel Chossudovsky, "Washington's Pope"? Who is Pope Francis I? Cardinal Jorge Mario Bergoglio and Argentina's "Dirty War"
It is often said that the Catholic Church is infected with Americanism. This did not happen by chance. The U.S. Deep State has been actively infiltrating and directing elements within the Roman Catholic Church throughout the 20th century. In David Wemhoff's book, John Courtney Murray, Time/Life, and the American Proposition, we learn that the CIA has been deeply involved in the meddling of the Vatican's affairs since after World War II. Through the Roman Catholic religion, the U.S. Deep State played a long game to Americanize Germany, Western Europe, and Latin America. With the use of infiltrators, Time Magazine, and other clandestine mechanisms, the CIA utilized the Catholic Church to turn ideas into weapons. The Second Vatican Council itself was in large part driven by efforts of the U.S. Deep State, and the manipulation has only intensified since then.
Like the Freemasons and the Communists, the CIA never stopped spreading its tentacles throughout the Catholic Church. At this point, in today's world, the very pope himself was put into power by our country's Deep State. Like a third world banana republic, the Vatican is—-at least occasionally—-controlled like a puppet for various purposes by an unseen American network.
Bergoglio Was Chosen
Before the conclave of 2013, an anonymous whistleblower pre-warned us that the CIA had already picked out who would be the next pope. We were told the pope would be from Argentina, that the United States would try to gain control of South America, and that this would be the last pope. Enter Bergoglio.
Bergoglio is known for his complicity with the CIA during Operation Condor, a deep state operation that would destabilize Argentina with a military junta responsible for tortures and mass killings. The Vatican under Pope Paul VI and Pope John Paul II had a central role in Argentine's atrocities. Jorge Bergoglio, specifically, complied with death squads who kidnapped two priests and "disappeared" six members of their parish. When in 2005 the time came for the evasive Bergoglio to account for what happened under his watch, he twice invoked his right under Argentine law to not go to open court. In 2010, Argentine lawyer, Ms. Myriam Bergman, described her encounter she finally had with the pontiff-to-be:
"He finally excepted to see us in an office alongside Buenos Aires cathedral sitting underneath a tapestry of the Virgin Mary," Ms. Bregman said. "It was an intimidating experience. We were very uncomfortable intruding in a religious building." She added that Bergoglio did not provide any significant information on the two priests. "He seemed reticent, I left with a bitter taste," she said.
From Operation Gladio, by Paul L. Williams
The slippery evasiveness of Bergoglio left Ms. Bregman dumbfounded, and she described her later feelings of Bergoglio's election as that of "amazement and impotence." When a major trial of Argentina's "Dirty War" finally opened up in Buenos Aires on March 5, 2013, only a week later would Bergoglio become Bishop of Rome. "Pope Francis" escaped any further accountability, and he is the first pope in history to be charged with crimes against humanity. His time colluding with the CIA had paid off, and it was time to collect.
Yet, Bergoglio would still continue the work of factions within the U.S. intelligence community.
The Bidding of His Masters
Bergoglio's evasiveness—-which the entire world is now familiar with—-served his purposes. And his skillset would come to serve him again, now as "pope." What deeds would Bergoglio work in his new role? The specific details of what was demanded remain unknown. However, we do know that some of his functions are to facilitate globalism, climate change paranoia, the Kalergi Plan, socialism, the widespread acceptance of homosexuality, and most every other radical left wing cause on the table. To the best of his ability, this man who calls himself "Pope Francis" is stacking the college of cardinals with as many questionable deviants as possible, almost as though to intentionally discredit the authority of the Catholic Church. Is this his objective? Will this man, as Ann Barnhardt and Dr. Mazza once speculated, try to drive the Vatican into insolvency and sell it off to UNESCO as a World Heritage Site? One can only guess.
This push of leftist modernism by "the bishop in white" has many strings leading to many different places in the world, yet Bergoglio's leash to the U.S. remains. For example, shortly before the 2016 election, we learned from a Wikileaks dump of e-mails that Democrat operative Sanford "Sandy" Newman was pitching the idea of a leftist "Catholic Spring" to his friend, John Podesta. In reply, John Podesta said that preparations were well underway:
We created Catholics in Alliance for the Common Good to organize for a moment like this. But I think it lacks the leadership to do so now. Likewise Catholics United. Like most Spring movements, I think this one will have to be bottom up. I'll discuss with Tara. Kathleen Kennedy Townsend is the other person to consult.
Catholics in Alliance for the Common Good and Catholics United are George Soros-funded groups. They are populated with political creatures, not churchmen, who are only interested in utilizing the Church's influence.
Yet even more interesting is that this discussion of a "Catholic Spring" among Democrat operatives took place in 2011. Only two short years later, Pope Benedict XVI engaged in, what appears to be, his forced resignation. Was there a "Catholic Spring" initiative that helped to drive him off the Chair of Peter? There are a lot of murky circumstances surrounding his abdication, after all. For example, international monetary transactions with the Vatican were suspended just before Pope Benedict resigned, and they did not resume until February 12, 2013—the day after he announced his resignation. Even the National Security Agency (NSA) was monitoring the conclave that elected Bergoglio. Were there covert operatives working to bring Bergoglio into power? After all, this man has all the appearances of being a puppet, a non-canonically elected pontiff, and hardly the leader of a religion.
During President Trump's first term, after three and a half years of lies and scandalmongering, the Left in the U.S. revealed its deep ties within the various "alphabet intelligence agencies." Often, these agencies served the interests of the Democrat Party, and hardly ever have they shown favoritism towards anyone else. In fact, the wars in the Middle East—-and even many elements of what happened on 9/11—have the fingerprints of shady business on the part of these agencies, and whenever war and conflict are spearheaded by the U.S., it is always to the detriment of Christians throughout the world. There is always an anti-Christian, leftist bent in US-led conflicts, and the agencies are always behind the curtain pulling the ropes.
With these facts in mind, Bergoglio's political maneuverings make more sense, as does his blatant opposition to the current anti-Establishment U.S. president, Donald Trump. Elements within the FBI and other agencies actively worked to perform a political coup to oust a rightfully-elected president whom the Left in America despise. And as this has all happened, the various intelligence agencies have worked for decades to destroy all remaining vestiges of Christendom throughout the world. "Pope Francis" has been the perfect catalyst for this, and he has served as an excellent scapegoat to take all attention away from other prevailing forces who clandestinely hide in the shadows as the world loses its Christianity.
And so, when two weeks before President Trump's re-election we learn that the Democrat candidate's family is awash in drugs and pedophilia, when it is revealed to the world that most likely a great percentage America's political class is degenerate and corrupt far worse than many "normies" could even imagine, when it is realized that the FBI had likely known about Biden and his family's proclivities for years and never said anything, when Americans are being blatantly shown that the absolute worst examples of nepotism and filth are facilitated within the U.S. political elite, when it becomes apparent that all of the rising smoke over the dumpster-fire-known-as-Pizzagate is becoming openly recognized, when Americans realize that the degeneracy of these people is off the charts, and when the vast majority of people in the United States recognize that they are being stampeded and gaslit by a blatantly evil army of oligarchs—I say, as all of this is becoming realized in the short two weeks before the 2020 presidential election, Bergoglio comes storming out of the gates of the Vatican to tell the world that he approves of gay civil marriage. And this distraction should be of no surprise to us. Because this is what a CIA pope is supposed to do. Bergoglio wants to take up all of the focus and attention of the world's Catholics—and specifically the attention of American Catholics. Because the more distracted American Catholics are from Biden's evil, the more likely they will not vote to re-elect President Trump, who is a blatant enemy of the Deep State.
Implications Of A CIA Pope
The focus of all of this, however, is not Jorge Bergoglio. "Pope Francis" is not the star of the show. No, the real mover and shaker of this entire spectacle is the Deep State. It is they who are the real protagonist in this drama. They are the prime mover responsible for making all of this happen. Without their meddling, the Catholic world would not be in the awful state it is in today. The non-canonically elected man in the Vatican is just a symptom. The secret armies, the princes of this world, the principalities and powers that our Lord warned us about are manifested in the Deep State. Right now, at this moment in history, they are the beginning and the end of most of our troubles.
Pope Francis was no ideologue. He is a persuadable puppet. At one point in his life, he is helping the CIA root out liberation theology in his home country. Yet, in the latter part of his life, he flirts with liberation theology, courting the cult of the tucum ring, and joking about how "Today we old people laugh about how worried we were about liberation theology."This duplicity is one of the best tools that the Deep State could have. And there are figures like this throughout society.
The reach of these people is far more extensive and horrific then even a compromised pope.
If the U.S. Deep State can infiltrate the Catholic Church to this extent, then do not think for one moment that they have not already made inroads – or even well established themselves – within the traditional Catholic community. Which of the figures we follow are bought and paid for? Who among the people that we read or listen to are serving the interests of a clandestine network? Who is there to trust?
It is a sad thing that a government would go to such an enormous extent to spy on and deceive the people. This is the act of liars. This is the act of someone who is not your friend, but your enemy. This is not the behavior of a government that loves its people. An organization who feels they have a holy mandate does not do such things.
No, they do this because they hate you. They do this because they do not respect you. They think so little of you, as though you are cattle. You are like livestock. You have no human dignity, and you are expendable. They have a very different vision of what "ought to be" then you do. If anything, you are in the way.
So when you regard the mess that is "Pope Francis", remember that he is a macrocosm of many other smaller events. Know that the Deep State manipulation does not stop with him. Realize that the tentacles of this monster stretch far. Who among us is trustworthy? Who among us is not trying to manipulate people? To what extent has the traditional Catholic community been infiltrated? That is the question before us.
Note: The author of this post, Laramie Hirsch, is one of the current greats in Catholic blogging. He is a fine writer and excellent researcher. The Catholic Monitor is honored to post this article.
Note: What is needed right now to save America from those who would destroy our God given rights is to pray at home or in church and if called to even go to outdoor prayer rallies in every town and city across the United States for God to pour out His grace on our country to save us from those who would use a Reichstag Fire-like incident to destroy our civil liberties. [Is the DC Capitol Incident Comparable to the Nazi Reichstag Fire Incident where the German People Lost their Civil Liberties?: http://catholicmonitor.blogspot.com/2021/01/is-dc-capital-incident-comparable-to.html?m=1 and Epoch Times Show Crossroads on Capitol Incident: "Anitfa 'Agent Provocateurs'":
Note: Please put the America and President Donald Trump in the following Prayer of Command intention against the "satanic forces" unleashed against them:
Prayer of Command of Exorcist Fr. Chad Ripperger:
In His Name and by the power of His Cross and Blood, I ask Jesus to bind any evil spirits, forces and powers of the earth, air, fire, or water, of the netherworld and the satanic forces of nature. By the power of the Holy Spirit and by His authority, I ask Jesus Christ to break any curses, hexes, or spells and send them back to where they came from, if it be His Holy Will. I beseech Thee Lord Jesus to protect us by pouring Thy Precious Blood on us (intention), which Thou hast shed for us and I ask Thee to command that any departing spirits leave quietly, without disturbance, and go straight to Thy Cross to dispose of as Thou sees fit. I ask Thee to bind any demonic interaction, interplay, or communications. I place N. (intention) under the protection of the Blood of Jesus Christ which He shed for us. Amen
Pray an Our Father now for the United States of America and President Donald Trump.
Pray an Our Father now for the restoration of the Church as well as the Triumph of the Kingdom of the Sacred Heart and the Immaculate Heart of Mary
The publisher of the Catholic Monitor has made a pledge to wear the Brown Scapular and say the Sorrowful Mysteries of the Rosary everyday for a Rosary Lepanto-like victory for President Trump. He asks all CM readers to make this pledge until January 20.
"THE HOLY ROSARY, MOST POWERFUL WEAPON AGAINST THE ENEMY OF GOD AND MAN... Saint Pius V ordered the faithful to recite the Rosary to impetrate victory from God in the epic battle of the Christian Armada against the Turk in the waters of Lepanto: still today, at noon each day, the bells ring in our cities to recall [the victory of] October 7, 1571... Let us pray for the United States of America; let us pray for our President; let us pray for his victory, that the Lord God of Hosts – Dominus Deus Sabaoth –will grant that he may know how to place himself under God's protection." - Archbishop Carlo Maria Viganò


As kruton blatenly pointed out yesterday I added a banner ad to BiTSMACK. Today's comic is a gross exageration of things to come. Until the server fairy comes and leaves a web server under my pillow, it still costs money to host this site. Don't worry, I would never stoop so low to put a pop-up ad on the site. Those are pure evil. If you want to help out BiTSMACK, you can click the banner and sign-up. Most of the offers advertised are free anyway so it's a win-win situation.