The Good The 2007 Acura MDX benefits from excellent all-wheel drive and voice-command systems. The active suspension system contributes to a fairly smooth ride. An economical V-6 engine offers better economy than a V-8, but power-mad drivers won't be satisfied.
The Bad The control interface for the cabin systems is cleaned up a bit compared to the Acura RDX, but it's still messy. The automatic transmission could use an extra gear, just to keep up with the times, and the boatlike front-end design doesn't turn us on.
The Bottom Line We would have been thrilled with this car two years ago, but the competition has caught up, and in some cases surpassed Acura. A lot of the tech comes straight from the 2005 Acura RL model with little improvement in the interceding two years.
The 2007 Acura MDX, a significant model upgrade over the previous year, reinforces the tech roadmap the company set forth in its RL and RDX cars. The MDX is an SUV, complete with three rows of seating, yet it takes on Acura technologies such as Super Handling All-Wheel Drive (SH-AWD) and live traffic reporting used in the RL and the RDX. While there are some slight interface improvements for accessing the tech, the car drops behind the competition in some significant ways.
The MDX uses Acura's new pointed grill and raked front bumper design, giving it a boatlike appearance, a fairly unfortunate direction in Acura styling taken even further in the ridiculous looking concept shown at the Los Angeles Auto Show. It looks fairly compact from the outside, yet has a good amount of room for front- and middle-row passengers. Access to the rear seats requires some climbing around, which would prove difficult for people with bad backs or stiff joints. With the third row seats up, cargo space is virtually nonexistent.
The Acura MDX we tested came with the Sport and Entertainment packages, which is everything Acura offers. That means it includes navigation, Bluetooth cell phone integration, and a top stereo, all of our favorite cabin tech toys. It's a relatively big car, but it's only available powerplant is a 3.7-liter V-6. Honda just doesn't do V-8s. The automatic transmission only has five gears, which seems primitive compared to all the cars with six-plus automatics.
Coincidentally, we got our hands on the Acura MDX the same week we had planned a trip to Lake Tahoe, a winter wonderland compared to never-below-freezing San Francisco. So, it was a pretty easy choice to take the MDX up and see how it handled on slippery roads, snow, and a long highway trip into the mountains. On the trip, we made significant use of the navigation system, entertainment, climate control, and SH-AWD.
To start off, we used the voice-command system to enter the address of our weekend getaway. Being somewhat experienced with Acura navigation systems, we sped through it fairly quickly: pushing the voice button on the steering wheel, saying a command, getting a result on the LCD, then cutting off the voice help by pushing the button again to say the next command. We could have probably done it faster by using the big knob on the center stack, but voice commands are so much cooler.
We dig our tires into the white stuff, with SH-AWD making traction possible.
The route the car picked was exactly what we would have chosen on a map. Because we were smart enough to leave around noon on a Friday, the live traffic reporting showed green lines, meaning free-flowing traffic, all the way to Sacramento, where we had a small section of yellow, or 20 to 40mph traffic. In Tahoe, the navigation tried to lead us up a street that was closed due to snow and ice, but we checked the navigation map and saw we could get on our road from a different direction. As we proceeded around the closed road, the nav system recalculated our route promptly.
It hasn't been a particularly snowy season on the California/Nevada border, so we didn't have to contend with heavy snow on the roads. But we did want to, so we drove off the road to a snow-covered meadow and proceeded to try out the traction. Even with highway tires, the car did well. We could feel slip starting here and there, only to be compensated for by a combination of traction control and the SH-AWD. With temperatures around freezing, the car's heated seats and climate control came in handy. The front seats get dual climate control, while the middle-row seats have a single climate control zone. The front and middle row seats are also heated. During a "freeze-out" test where we had the windows down during a 20-minute drive in the evening, front- and middle-row occupants were kept comfortable, while the third-row passenger was subjected to a continuous blast of freezing cold air.
Climate control keeps middle-row passengers comfy during a freeze-out.
Acura's Technology package for the MDX is very similar to the package in the RL and the RDX. With the MDX, it also comes as part of the Sport package and includes navigation with live traffic reporting, the exceptional ELS/Panasonic stereo, and Bluetooth cell phone integration. In our review of the RDX, we complained about the haphazard mess of buttons around the steering wheel and the stack. Acura cleaned it up a bit for the MDX, using a nice triangular design for the hub of the steering wheel that makes multiple buttons easily accessible. The center stack joystick/knob can be a bit difficult to figure out when trying to find satellite radio stations or tracks on an MP3 CD.
The cabin materials aren't as luxurious as what we've seen in the Infiniti FX45 or the Lexus RX350. Strangely, the dashboard material looks cheaper than it feels. Ours had a pebbled light brown plastic-looking cover, which was ugly, but it also was soft to the touch. The wood grain accents are nice, and the switch gear has a quality feel to it, but the cabin comes off as midrange more than luxury.
Acura's voice-recognition system is the best in the business, easily recognizing our commands and offering good feedback on the LCD to let us know the next command options. At least, that's how the navigation, audio, and climate voice system works. The voice-recognition system for Bluetooth cell phone recognition is a completely different system. It's also good at recognizing commands, but it doesn't provide the same level of feedback on the screen. And because there are two voice systems, there also are two sets of buttons on the steering wheel for activating voice recognition. We would prefer to see a more integrated system, with one button to activate voice recognition and top-level voice commands for entering the phone system, navigation, climate control, or audio.
The triangular steering wheel design makes the multiple buttons more accessible than on the Acura RDX.
The navigation system itself works well. Setting a destination is easy, and its points-of-interest database includes just about anywhere you would need to go. We already covered how well its route guidance and live traffic reporting work above. Our only issues are it doesn't show a split-screen graphic and map for upcoming turns, and it doesn't read out the names of all streets. We don't see the latter text-to-speech functionality in very many cars, but good indications for upcoming turns are very important for a navigation system.
We were prepared to be blown away by the stereo, as we had liked the one in the RDX so much. This stereo has been specially tuned for the MDX and uses 10 speakers. The audio quality was great, but not as impressive as other systems we've heard. The speaker placement in the MDX is similar to the RDX, but it's a much bigger cabin to fill. We didn't feel quite the same surround effect as we did in the RDX. The audio quality was similarly crisp and, as in the RDX, we had to adjust the tuning to get a more satisfying bass note. An extra set of speakers would help this sound system fill the cabin and provide the surround effect this stereo is meant to have.
As for audio sources, this system won't let anyone down. Its six-disc changer can handle MP3 CDs, regular CDs, and DVD audio. You can plug in an MP3 player through RCA jacks in the rear of the console if the car comes equipped with the Entertainment package. XM radio also is included, along with a free three-month subscription.
The Entertainment package adds a rear-seat DVD screen and player, the latter mounted in the stack below the CD player. The screen is a nice, wide 9 inches, and the system includes a pair of wireless headphones and three headphone jacks. A remote for the system pops out of the ceiling screen module. The same RCA jacks that can be used for an MP3 player also can be used to plug in a PlayStation or other game console.
As mentioned above, we wish the phone system was better integrated with the rest of the car systems. It offers basic Bluetooth phone connectivity, and its voice-recognition system makes it easy to dial numbers. But it doesn't copy over address books, requiring you to build it up one entry at a time.
The LCD turns into a rear-view monitor when the MDX is put into reverse, but there are no animated overlays that show where the car is going. It's only useful for seeing if there are obstacles somewhere behind the car. The side mirrors tilt down whenever the car is in reverse, making it easier to see parking lot lines, but not helpful if you're looking for obstacles on the side of the car.
The powerplant in the MDX is a 300 horsepower 3.7-liter V-6, which makes for some underwhelming, though adequate, acceleration. This engine gets the MDX around all right, but it won't throw you back into the seat. The engine's power is channeled through a five-speed automatic. Considering Honda/Acura's tech leadership, not to mention the company's focus on fuel economy, we're surprised the MDX isn't fitted with a six speed.
The powertrain behaved as we would expect, giving us a good boost (as much as the engine could handle) when we wanted to pass someone. The car takes off without hesitation, rolls along well at 70mph on the freeway, and has a fairly responsive throttle for around-town driving. The MDX gets an EPA fuel economy rating of 17mpg city and 22mpg highway. The latter number could probably have been improved with a sixth gear. In our freeway-biased driving, we saw 17.8mpg. This is a very clean engine for an SUV, getting an Ultra Low Emissions II rating from the California Air Resources Board.
A small engine for an SUV, this V-6 doesn't provide much punch, but it is economical.
While we think the powertrain could use some improvement, the combination of Acura's SH-AWD system and traction control worked very well. In fairly hard cornering, the MDX didn't feel top-heavy at all, but its understeer meant our arms were twisted around on particularly tight corners. The ride quality felt a bit lighter than a typical SUV, and the road is smoothed over by Acura's Active Damper System. The system, which can be turned on with a button labeled Comfort on the console, adjusts the suspension response in milliseconds depending on the current road conditions. It's designed to keep the ride smooth during performance driving, something we felt and appreciated. While jamming down a twisty highway, the ride felt as comfortable as if we were on a flat road.
Our 2007 Acura MDX came with the Entertainment and Sport packages, putting its price at $48,465 with its $670 destination charge. These packages included just about everything you can get in the MDX, including all the dashboard technology.
The only technology in the MDX that we thought really made it over the bar was the SH-AWD. The handling on the MDX felt very good, although the steering could have been tightened up. The voice-command system for the navigation, audio, and climate control is also impressive. We didn't feel the stereo quality came up to the same level as the ELS system in the RDX, although it still is very good. With a similar level of technology, the Lexus RX 350 is a worthwhile competitor to the MDX. On the high side, the Infiniti FX45 also is a solid choice compared to the Acura MDX.


text:
Het Huis Meheus is een beschermd monument en voormalige brouwerij en stokerij gelegen te Olsene, een deelgemeente van Zulte (gemeente) in de Belgische provincie Oost-Vlaanderen.

Meer dan 200 jaar geschiedenis gaan schuil achter de gevels van dit gebouw. In 1763 werd melding gemaakt in 18de-eeuwse landboeken van de familie Meheus, die in het bezit is van het perceel waarop later een behuisde hofstede werd gebouwd.

Geschiedenis

Behuysde Hofstede (17de eeuw - 1818)
De familie Meheus woonde Olsene sedert de 17e eeuw. Als belangrijkste grootgrondbezitter werd Joannes Ferdinandus Meheus, baljuw van Olsene, aangeduid. Het perceel waarop de behuisde hofstede werd gebouwd, kwam daarna in handen van zijn zoon Arnoldus Aernout Meheus (6 december 1698 – 4 mei 1759). Diens zoon Benedictus 'Benoit' (19 februari 1715 – circa 1801) erfde zijn bezittingen, maar het was pas in de 19e eeuw dat melding wordt gemaakt van perceel 46 als zijnde "une grande maison" en distillerie. Deze was in het bezit van de weduwe van Benoit, Christine Vanmelle, op dat moment eigenares van een 40-tal percelen.

Brouwerij-Stokerij (1818-1873)
Ludovicus 'Louis' (18 oktober 1786 – 29 december 1858) bouwde naar verluidt de brouwerij-stokerij uit en bewoonde samen met zijn vrouw, Henriette Minne, het huis. Als burgemeester van Olsene (1818 - 1825) breidde hij zijn grondbezit stevig uit tot het totaal van 200 percelen land te Olsene. Hij was vooral de protagonist geweest bij het vergaren van het familiebezit en het uitbouwen van de brouwerij-stokerij. Deze was zodanig succesvol dat zijn zoon Adolphe in 1886 de activiteiten stopzette en kon rentenieren.

Onder zijn gezag werd de behuisde hofstede of boerderijwoning omgebouwd tot een statige herenwoning en uitgebreid met een brouwerij. In de tweede helft van de 19de eeuw werd het bedrijf omgebouwd tot een stokerij à vapeur of stoomstokerij. Zodoende was in 1860 de brouwerij bekend onder zijn naam Brouwerij Louis Meheus.

Woning-magazijn (1885-1968)
Na het overlijden van Henriette in 1873 kocht haar zoon Adolphe Meheus (18 december 1823 – 29 september 1907) zowel huis als stokerij over van zijn broer Henri Ferdinand Ghislain.

Diens zoon Ernest Marie Joseph Meheus (6 januari 1855 – 5 mei 1935), schepen van Olsene, erft met zijn vrouw Rachel van de Genachte de stokerijwoning in 1907, maar hebben er niet in gewoond.

Het was pas in 1925 dat Adolphe Meheus (5 juni 1892 – 1968) er met zijn echtgenote Isabella De Schietere zijn intrek nam. Het koppel bleef kinderloos nadat Isabella aan een bronchitis overleed tijdens haar zwangerschap in 1942. Tot aan zijn dood op 13 maart 1968 bleef Adolphe uitermate betrokken in het verenigingsleven.

Op dat moment werd het domein met woonhuis bij legaat nagelaten aan de gemeente Olsene. Uitvoering van het legaat vond plaats op 16 november 1973. Zodoende werd de tuin een publiek park met eeuwenoude bomen.

Verbouwingen en nieuwe  functie (1980-heden)
In de jaren die volgden op de dood van Adolphe vonden diverse verbouwingen plaats. Onder andere ter hoogte van de keuken en bijgebouw, is een uitbouw uitgevoerd met een veranda en sanitaire voorziening.

In 1987 werden het huis en de aanbouw opnieuw van elkaar gescheiden. Het huidige ontmoetingscentrum kwam in de plaats van het stokerijgebouw, magazijn en autostaanplaats.

In de tijdsspanne tussen 1997 en 2007 werd vooral onderhoud uitgevoerd aan het dak en bevloering van onder andere de badkamer.

In 2017 werd het huis opnieuw fysiek verbonden met het ontmoetingscentrum.

In 2021 werden opnieuw grondige renovatiewerken gepland door de gemeente die geraamd werden op 582.000 euro. De werken werden grotendeels voltooid in 2022. De heemkundige kring zal tot nader order een nieuw onderdak vinden in het gerenoveerde eigendom.

Exterieur
Wat opvalt aan de facade is dat de plaatsing van de voordeur afwijkt van het centrum van de gevel. Vermoedelijk is dit het gevolg van het destijds uitbreiden van de behuisde hofstede.

De gevel kan geclassificeerd worden als zijnde 19de-eeuws neoclassicistisch. Tegenwoordig zijn er zeven traveeën en twee bouwlagen onder zadeldak. Zowel de voor- als achtergevel zijn na de recentste renovatiewerken in gebroken wit geschilderd met taupe accenten rond de ramen en deuren. Zowel ramen als voordeur zijn dan weer in een grijsblauwe kleur afgewerkt. Het is duidelijk dat de opdrachtgever het huis zijn sobere elan wou behouden.

Interieur
Na het huis binnen te treden, komt men direct in de, typisch voor de 19de eeuw, centrale hal die zijn aansluiting maakt met de traphal. Beide vertrekken vormen een geheel, maar door middel van een rondboog worden beide ruimtes als het ware gescheiden. Ook deze vertrekken kregen na de renovatie in 2022 een nieuwe kleur aangemeten.

Vanuit de centrale hal kan men links naar het groene salon (straatzijde) gaan die destijds het karakter van het 19de-eeuwse interieur uitademde. Ook deze ruimte werd onder handen genomen bij de werken in 2022. Aan de rechterzijde van de centrale hal bevinden zich de ruimtes die vroeger functioneerden als bureau met aanpalend de eetkamer die uitgeeft op het park aan de achterkant van het gebouw.

Tot omstreeks 2010 was Huis Meheus qua interieur een mix van diverse stijlen (Frans, Lodewijk, neo-Vlaamse renaissance ...), die het geheel een eclectisch karakter gaven. De vertrekken op de verdieping zijn in tegenstelling tot de gewezen grandeur van het gelijkvloers veel bescheidener ingericht geweest.

Na de onderhoudswerken in 2022 zijn het groene salon, centrale hal en traphal, eetkamer en voormalige bureauruimte in ere hersteld en ademen opnieuw de sfeer van weleer uit. Ook de vertrekken op de eerste verdieping kregen een grondige opsmukbeurt.

Ligging
Het pand met publiek toegankelijk park en aangebouwd ontmoetingscentrum zijn gelegen aan de Kerkstraat 36, 9870 Olsene

Galerij

Beschermd monument in Vlaanderen

redpajama_set_name: RedPajamaWikipedia


text:
Wide Open Country premieres The Tillers' "Dear Mother" from their upcoming NEW album OUT 3/23!
"When I wrote this song I was personally seeing issues of environmental destruction in my neighborhood, city, country and all over the world," says singer and guitarist Sean Geil. "As a father I am very concerned with what the future of our planet looks like for my young son. I find singing a song is the best way I can speak out about these things. I am lucky to know a lot of passionate folks, organizations, festivals, community gardens and musicians who are fighting for Dear ol' Mother. This song is for them."

redpajama_set_name: RedPajamaCommonCrawl


Southeast Minnesota is a great place to work and live. But despite new and more clearly marked crosswalks, many people still believe that our streets are unsafe for pedestrians.
Pedestrian responsibility is also important. Pedestrian accidents often happen in urban areas during rush hours. To avoid serious injury, pedestrians should always cross at crosswalks — no jaywalking — and always follow traffic signals. For further discussion, see, Minnesota Department of Public Safety Crosswalk Safety Tips.
See our generic Jury Special Verdict Form.
If the pedestrian accident involves a car or truck, the Minnesota No-Fault Law should apply. See: Minnesota No-Fault: How No-Fault Works.
If you or a loved one have been injured in a pedestrian accident, you need to concentrate on one thing — getting on with your life. Let our experienced team handle the insurance paperwork including claim forms, reports, authorizations, requests for recorded statements and Defense Medical Examinations (DMEs).


text:
The atmosphere's electric as EV competition hots up
This year's Frankfurt motor show was dominated by electric cars, and not just expensive concept ideas but production-ready cars with on-sale dates in 2010 and 2011. This is the time when the car industry announces that the alternative to the combustion engine is here. Manufacturers have certainly dipped into alternative power during the last thirty years but have never been under the pressure they are now, as the governments of the world set ever more demanding targets for CO2 reductions.
As a response, developed countries will reduce CO2 emissions by up to 85% by 2050 whilst US President Obama is about to steer a climate change bill through the Senate. With government incentives to blunt the high costs of new technology along with local governments and energy companies' collaborating on the vital refuelling infrastructure, the reality of electric powered cars in the showrooms is less than a year away.
To cover the surge, London Mayor, Boris Johnson, has pledged to install 25,000 electric sockets in the city, while the Government has earmarked £20m for the recharging infrastructure. Across the globe, Israel will have 500,000 recharging points by 2011 whilst EDF Energy will develop France's network with Denmark, Portugal, Switzerland, Ireland, Monaco, China and some key US states forging electric vehicle partnerships with Renault-Nissan.
On August 2, Nissan unveiled the Leaf, a battery electric hatchback that goes on sale in the US and Japan next year. At Frankfurt, Renault showed four purely electric vehicles: the Fluence saloon and Kangoo van, both on sale in 2011 – plus a tandem-seat city car and a supermini to follow in 2012.
"We are preparing cars that will be neutral to the environment – transportation without guilt" says Renault-Nissan president, Carlos Ghosn.
By 2015, Renault predicts electric vehicles (EV's) will account for 30% of its sales and by 2020; Ghosn estimates 10% of all car sales could be purely electric.
"We have responded to global demands not only with our products but are infrastructure such as our factories and manufacturing processes" Ghosn told MTI at the Frankfurt motorshow.
"The technology to power our EV's has put us in a position much greater than our nearest competitors and as a result, we are securing the patent and intellectual property around the battery. We want to make sure that Renault and Nissan will become the first and be leaders in a very promising technology" he went on to tell us.
Although the combustion engine hardly had a look-in at Frankfurt, Toyota showed its plug-in hybrid Prius with an extended electric range, and two 2010 models and the Auris hatch with the Prius's drivetrain and Lexus's hybrid hatch to rival BMW's 1-series.
With their internal combustion engine back-up, hybrids will remain the choice for inter-city travel, along with increasingly frugal petrol and diesel cars, and the EV, therefore, must overcome consumers' fear of being stranded. With an average of a 100-mile range on most EV's a new terminology seemed to be buzzing around Frankfurt – 'range anxiety'. Petrol-gauge-lottery seems to becoming a thing of the past. Nevertheless, Renault has developed a mechanism for switching battery packs in fuel stations.
Lexus on the other hand, pioneer of hybrid executive cars, has quietly dropped petrol-only versions of the GS, LS and RX from its regular price list. You'll now have to specifically ask for petrol-power otherwise you'll get the regular hybrid. The same applies to its new LF-Ch, the companies first take on a concept premium hatch pitched squarely against the BMW 1-series and the Audi A3.
Lexus LF-Ch
Similar to its Prius cousin, the LF-Ch will seamlessly switch between battery power and its 1.8-litre combustion engine. Both Audi and BMW have been slow to respond, although its Bavarian rival has been forging ahead with 'Efficient Dynamics' and Stop-Start technology for over a year but in no way is it a serious, greener contender to Lexus's cleaner hybrid powertrain.
Ford also showed off its battery-powered Focus boasting a 75-mile range. It's powered by a 23kWh lithium ion battery pack and a 100kW electric motor co-developed with Magna. Ford is expected to build 15 prototypes for a trial in London to gauge public reaction. But with Ford still three years away with a full hybrid, Vauxhall will launch its Ampera – the American Chevrolet Volt – in 2012.
Vauxhall Ampera
Driven by its 150bhp electric motor, it can run electrically for up 40 miles once its lithium-ion battery has had a full three-hour charge. After that a 1.4-litre petrol engine cuts in purely to charge the battery, operating at constant revs and allowing it to drive on for up to 300 miles before its 15-litre tank needs filling. GM says that 80% of European drivers do less than 30 miles each day, so they'll drive on electric power at a fifth of the cost of petrol. But with an estimated price of £35,000 the Toyota Prius seems almost sensible at over £12,000 less.
Other eco manufacturers such as Smart are already planning ahead. Due to co-develop the next generation of Smarts with Renault-Nissan, different versions will be marketed under the French and Japanese monikers by 2014. This will give Renault-Nissan a platform sharing opportunity that will strengthen its global domination for hybrid and all-electric cars.
Twenty years ago it was inconceivable that almost every Westerner would own a mobile phone and technology powered by lithium ion batteries could be charged overnight providing greater convenience.
Twenty years from now electric cars will be common place.
On that note I need to stop writing as my laptop is about to run out of power.
Oct 9, 2009 Steve Bell
Sponsored video: Free range Chevrolet Volt
Will more drivers go electric as fuel sales fall?
Electric cars will always be "the next big thing"
Rolls-Royce unveil electric test vehicle
UK government may abolish tax on company electric cars
Nissan banking on electric
Government demands over Vauxhall jobs 'dishonest'GM agrees Chinese sale of Hummer
Steve Bell
12 years ago	Blog, Consumer, Environmental, Manufacturerscar sales, electric cars, Featured, new car production, toyota66


text:
http://PEOPLE.com is the No. 1 site for celebrity news—and now you can subscribe to our Snapchat Discover channel!
https://people.com/
Kim Kardashian Shares Glimpse of Family Christmas Prep: 'North Got Creative With The Elves'
By Marisa Sullivan
Jennifer Lopez Just Wore the Micro Mini Version of Blake Lively's Glam Gold Pregnancy Reveal Look
The two A-listers (and fans of all things sparkly) both wore the same glittery Valentino mini with sky-high white platforms Jennifer Lopez and Blake Lively are two of the most fashionable women in Hollywood, and they know how to command a room with one well-chosen dress. So it's no surprise they both reached for the same show-stopping glittery mini, made their own with some smart styling choices. On Saturday, Lopez, 53, attended the Anastasia Beverly Hills 25th Anniversary Celebration in a Valentino sequin mini dress from the brand's Resort...
Kim Kardashian, Jennifer Lopez and Oprah Winfrey Pose Together at Anastasia Beverly Hills Event
The event, attended by stars like Sofia Vergara, Jessica Alba, Sharon Stone and Heidi Klum, also served as a 69th birthday celebration for Oprah Winfrey The stars aligned over the weekend to celebrate Anastasia Beverly Hills' 25th anniversary. On Saturday, A-listers among the likes of Kim Kardashian, Jennifer Lopez and Oprah Winfrey celebrated Anastasia Soare's famed beauty brand during an event in Los Angeles. Other stars also in attendance included Sofia Vergara, Priyanka Chopra Jonas, Jessica Alba, Sharon Stone, Heidi Klum and Rita Wilson. Lopez, 53, shared a series of photographs on Instagram from...
LOS ANGELES, CA・ 1 DAY AGO
Kim Kardashian Keeps These $6 Makeup Wipes in Her Beauty Bag, and Shoppers Say They Don't Bother 'Sensitive Skin'
More than 4,400 Amazon customers have given them a five-star rating Just like the rest of us, Kim Kardashian needs to remove her makeup at the end of the day. And we discovered she uses a surprisingly affordable product to do so. In a recent Instagram Story, she gave her followers a peek into what products she keeps in her beauty bag. Along with what appears to be a blue tube of Secret deodorant and a travel-size CeraVe product, we immediately recognized the familiar purple packaging of her...
Gisele Bündchen Makes Sexy Return to Set in Plunging Look as She Focuses on Career Post-Tom Brady Divorce
Bündchen has made a return to modeling after finalizing her divorce from Brady, having also kicked off 2023 with a new campaign for Louis Vuitton Gisele Bündchen is getting back to work and showing off her supermodel posing skills in the process. The fashion industry star and entrepreneur, 42, was spotted near Miami doing a photo shoot wearing a plunging, metallic purple Versace one-piece with a hood. In several shots, Bündchen can be seen posing in a sexy stance while looking up and over at the camera and...
FLORIDA STATE・ 3 DAYS AGO
Drake Celebrates Mom Sandi Graham's Birthday with Sweet Post Featuring 5-Year-Old Son Adonis
Drake celebrated his mom's birthday alongside his little one and father Dennis Graham over the weekend Drake's mom started from the bottom (as a baby) and now she's here (as a grandma)! The hip-hop titan, 36, celebrated his mother Sandi Graham's birthday over the weekend alongside his 5-year-old son Adonis — and it was full of memorable family moments. In a heartfelt Instagram post, Drizzy saluted his mom for raising him, and shared a collection of photos from the celebration. RELATED: Drake Creates Necklace with 42 Engagement Ring...
Jennifer Garner Smiles and Holds Hands on Walk with CEO Boyfriend John Miller
Jennifer Garner and John Miller first became romantically linked back in 2018 after her divorce from Ben Affleck was finalized Jennifer Garner is spending quality time with boyfriend John Miller. On Saturday, the couple was photographed holding hands and smiling while on a walk together in Santa Barbara, Calif. They both sported blue flannels for the sunny outing. The couple first began dating back in 2018, with a source telling PEOPLE at the time it was "not serious, but she enjoys his company." Miller, who is chairman and CEO of Cali Group, owner of the CaliBurger...
SANTA BARBARA, CA・ 21 HOURS AGO
Joe Jonas Sends Message to Daughters at Hollywood Walk of Fame Star Ceremony: 'Daddy Loves You'
Joe Jonas celebrated wife Sophie Turner, who was in the audience, and sent a special message to his two daughters, who weren't in attendance Joe Jonas made sure to shout out his family as he celebrated a special milestone in his career. On Monday, Joe and his brothers, Nick Jonas and Kevin Jonas, were honored with a Jonas Brothers star on the Hollywood Walk of Fame, surrounded by loved ones and fans. Wife Sophie Turner looked proud of her husband, who shouted out the Game of Thrones alum and their two children during his...
Kelly Ripa and Mark Consuelos Say Daughter Lola Has Moved Home — And Warn Her It's 'Freaky Week'
Kelly Ripa and Mark Consuelos were co-hosting Live! With Kelly and Ryan when they issued their warning to their 21-year-old daughter Kelly Ripa and Mark Consuelos have had one of their baby birds return to the nest. The enthusiastic empty nesters discussed an update to their living situation on Live! With Kelly and Ryan Monday, where they revealed daughter Lola, 21, is back to living at home after spending a semester abroad. "We got away this week, which was great. But Lola Consuelos, our daughter, came home — what was it last week?...
Marc Anthony Marries Nadia Ferreira During Star-Studded Miami Wedding Celebration: Report
David and Victoria Beckham, Salma Hayek, Lin Manuel Miranda and Luis Fonsi were some of the stars in attendance at Marc Anthony's weekend wedding to Nadia Ferreira Marc Anthony and Nadia Ferreira are married! The couple said "I do" during a ceremony held at the Pérez Art Museum in Miami, Florida, on Saturday evening, Hola! reported. Anthony, 54, and Ferreira, 23, were joined by various celebrity friends, including David and Victoria Beckham, Salma Hayek, Lin Manuel Miranda and Luis Fonsi, according to the outlet. Miami mayor Francis X. Suarez officiated. Romeo Santos, Maluma, Marco Antonio Solis and Anthony's brother, Bigram Zayas, also attended the...
MIAMI, FL・ 2 DAYS AGO
Shemar Moore Shares Sweet Photo Snuggling with Daughter Frankie as He Wears 'Baby Girl' Beanie
Shemar Moore and girlfriend Jesiree Dizon welcomed their first baby together earlier this month Shemar Moore is soaking up every moment with his baby girl! On Sunday, the new dad, 52, shared a sweet photo on Instagram with his newborn daughter Frankie, whom he welcomed with girlfriend Jesiree Dizon on Jan. 24. In the cute shot, baby Frankie sleeps on Moore's chest as he looks up at the camera to snap the selfie. The S.W.A.T. actor fittingly wears a black beanie that reads "Baby Girl" in yellow lettering. "Baby Girl Frankie n Daddy!!! 🥰😎💕," he...
Brittany Mahomes Shares Photo of Shoes Big Sis Sterling Wants Baby Bro Bronze to Wear 'Every Day'
Brittany and Patrick Mahomes welcomed their second child, Patrick "Bronze" Lavon III, in November 2022 Sterling Skye Mahomes is looking to style her baby brother for life! On her Instagram Story Saturday, mom Brittany Mahomes shared a photo of her 2-month-old son, Patrick "Bronze" Lavon Mahomes III, wearing an adorable pair of brown loafers of which his 23-month-old sister apparently highly approves. "Sterling wants him to wear these shoes every day," Brittany, 27, captioned the photo, along with two laughing emojis. RELATED: All About Patrick...
KANSAS CITY, MO・ 2 DAYS AGO
Loni Love Undergoes Surgery to Have Her Gallbladder Removed, Tells Fans 'Check Your Health'
"Go to the doctor. Check your numbers. Get your blood work done," Loni Love told fans as she revealed that she had her gallbladder removed Loni Love is recovering after having her gallbladder removed. The Real alumna, 51, shared a candid Instagram video while laying in a hospital bed on Monday. She began by asking fans a question, revealing that she was "fresh from surgery." "I'm fine by the way," she said, adding, "I had a quick question. Whenever y'all got o the O.R., do y'all ever make the...
Michael B. Jordan Speaks About Lori Harvey Split on SNL: It Was 'My Very First Public Breakup'
Michael B. Jordan said during his Saturday Night Live opening monologue that he is on the dating app Raya following his split from Lori Harvey Live from Studio 8H, it's Michael B. Jordan! The actor, 35, hosted Saturday Night Live for the first time over the weekend, where he was joined by Lil Baby, who served as the evening's musical guest. During his opening monologue, Jordan detailed how he "went through my very first public breakup," referring to his split from Lori Harvey in June 2022 after more than a year of dating. "Most people...
CALIFORNIA STATE・ 2 DAYS AGO
Nick Jonas and Priyanka Chopra Make First Public Appearance with Daughter Malti at Star Ceremony
Nick Jonas was supported by his family — wife Priyanka Chopra Jonas and daughter Malti, 12 months, at the special event Priyanka Chopra Jonas and Nick Jonas have officially introduced their little girl to the world on a very special occasion. The Quantico star, 40, sat in the row behind the musician on Monday, celebrating as the Jonas Brothers were honored with a star on the Hollywood Walk of Fame. Perched on her lap was daughter Malti Marie, who celebrated her first birthday earlier this month. The infant was dressed in a tan two-piece tweed...
Naomi Campbell Shares Rare Photos of Her Daughter During a Visit to a Mosque in Abu Dhabi
Since announcing the arrival of her daughter in May 2021, Campbell has only shared a handful of images of her child on social media Naomi Campbell is enjoying mother-daughter time with her little one. On Monday, the 52-year-old supermodel shared a series of images on Instagram of her and her daughter at the Sheikh Zayed Grand Mosque in Abu Dhabi. Campbell served a modelesque pose for the first couple of photos before showing sweet snaps of her and her daughter holding hands while standing outside of the landmark. She...
Ireland Baldwin looked ahead to her parenting journey during her appearance on the Girlboss podcast Ireland Baldwin is sharing the inspiration behind her baby girl's name. The mom-to-be, 27, appeared on the Girlboss Radio podcast this week, where she chatted about what she's looking forward to about being a parent. "What I'm most excited about is really more centered around a lot of things I really wanted in terms of stability as a child myself that I didn't have," Baldwin shared. "What's kind of exciting is I get to...
Gabrielle Union and Dwyane Wade shared a behind-the-scenes look at winter formal prep for Zaya, 15, with her family all there to support her Gabrielle Union and Dwyane Wade were all smiles on Zaya Wade's special night. The Bring It On alum, 50, and the former NBA pro, 41, shared photos on Instagram Sunday showing Zaya beautifully dressed up in a cream-colored sequined spaghetti-strap dress, with her hair in soft curls and natural but defining makeup. The Instagram carousel shows Zaya posing with stepmom Union, dad Wade, and little sister Kaavia James, 4, who...
Evan Ross Praises His Mom Diana Ross' Big Heart: 'Her Whole Thing Is Love'
The actor and musician was in attendance — along with his wife Ashlee Simpson, their children and his siblings — as his iconic mother took the stage at the weekend charity event in Aspen For Diana Ross, life is endless love — at least according to her son, Evan Ross. "Her whole thing is love," the musician, 34, told PEOPLE of his mother while at the Aspen Snow Ball over the weekend. "My mom doesn't do things for any other reason other than love." He continued, "And I would...
ASPEN, CO・ 1 DAY AGO
Pamela Anderson Names Hugh Hefner as Someone Who Treated Her with Complete Respect in Her Life
After Playboy founder Hugh Hefner died in 2017, Pamela Anderson paid tribute to him and said he "taught me everything important about freedom and respect" Pamela Anderson felt total respect from Hugh Hefner. The model/actress was asked at one point in her interview with the U.K.'s The Sunday Times "if anyone has ever treated her with complete and utter respect" over the course of her life and career. After thinking a moment, she replied, "Hugh Hefner." Anderson, who was 22 when she first posed on the cover of Playboy...
Adam Levine and Behati Prinsloo Welcome Their Third Baby Together
Adam Levine and Behati Prinsloo's new arrival joins daughters Gio, 4, and Dusty, 6 Adam Levine and Behati Prinsloo are officially parents of three! The Maroon 5 frontman, 43, and the former Victoria's Secret model, 34, have welcomed their third baby, a source confirms exclusively to PEOPLE. The couple, who are already parents to daughters Gio Grace, 4, and Dusty Rose, 6, have not shared any further details about their new addition at this time. The pair had long discussed expanding their family, Prinsloo told Entertainment Tonight last winter. "We always knew we wanted a second one....


Two-row cylindrical roller bearing NNU49800MAW33 has additional radial load-carrying capability compared to single row cylindrical roller bearing.It designed to ISO Specified interchangeable dimensions. Sold as complete assembly.
NNU49/800MAW33 Bearing 800x1060x258 Mm for Industrial Machinery Spherical Roller Bearings developed by integrating NSK's materials, design and manufacturing technologies.
NNU49/800MAW33 Bearing 800x1060x258 Mm will continue to develop highly reliable bearings that will lead to further productivity improvements in the papermaking industry, and it will continue to contribute to the development of the industry.
The rollers in an NNU49/800MAW33 Bearing 800x1060x258 Mm are manufactured to extremely tight tolerances for dimension and form. Each roller is virtually identical in size and shape to the other rollers in the set. This optimizes load distribution over the rollers to maximize bearing service life.
Self-guiding rollers and a floating guide ring between the two rows of rollers Self-guiding rollers reduce friction and frictional heat . NNU49/800MAW33 Bearing 800x1060x258 Mm floating guide ring guides unloaded rollers so that they enter the load zone in the optimal position.
Metal cages All NNU49/800MAW33 Bearing 800x1060x258 Mm contain strong metal cages. This enables them to tolerate high temperatures and all lubricants.


text:
Bulimanu este un sat în comuna Vitomirești din județul Olt, Muntenia, România. Populația satului este de aproximativ 300 de locuitori.

Bulimanu, Vitomirești


text:
«Метро 2033: Крестовый поход детей» () — роман итальянского писателя  в жанре постапокалиптики. Пятьдесят четвёртая книга российской серии «Вселенная Метро 2033». Первое издание романа было выпущено на итальянском языке издательством  в марте 2014 года, на русском — издательством «АСТ» в ноябре 2014.

«Крестовый поход детей» является сюжетным продолжением другого романа серии — «Метро 2033: Корни небес». Действие романа происходит в разрушенной заснеженной Италии через двадцать лет после ядерной войны. На обратном пути из Венеции в Рим главный герой «Корней небес» Джон Дэниэлс попадает в постъядерный Милан, разделённый на враждующие фракции-поселения. Сыны Гнева — самая сильная группировка региона — отбирает у Дэниэлса его атомную бомбу, и Милану грозит повторение ядерного апокалипсиса. Главный герой собирает и ведёт крестовый поход из местных жителей нескольких поселений против Сынов Гнева.

Роман получил смешанные отзывы профильных СМИ. В качестве достоинств романа рецензентами было отмечено развитие философской, религиозной темы. Затрагивая недостатки произведения, критики сходятся во мнении об излишней предсказуемости сюжета.

Сюжет
Действие романа происходит в 2033 году в постъядерном Милане, население которого разделено на несколько фракций-поселений. Разведчики поселения с названием «Город» находят главного героя, священника Джона Дэниэлса — необычайно старого для них. Он избит и без сознания. Мать Милосердия — духовный лидер Города — помогает ему очнуться. Дэниэлс лишён зрения, однако может различать окружающие предметы и читать мысли людей сверхъестественным образом. Из мыслей Управляющего Города Джон понимает, что все жители этого города молоды. Управляющий выясняет, что на Джона напали Сыны Гнева — наиболее сильная группировка Милана, в последнее время терроризирующая слабые поселения. Они отобрали у Дэниэлса сани с атомной бомбой, которые он тащил.

Джону удаётся войти в доверие Управляющему, рассказывая «Приключения Тома Сойера» детям Города, у которых серьёзный дефицит рассказов и большой спрос на них. Военачальнику города Ваганту Дэниэлс рассказывает истинную причину, по которой оказался в Городе: Джон хочет собрать крестовый поход против Сынов Гнева, чтобы вернуть атомную бомбу. Управляющий возражает, поскольку Сыны Гнева гораздо сильнее и многочисленнее, чем Город. Однако Вагант напоминает ему, что Управляющий заключил секретный договор с Сынами Гнева и отдаёт им часть продовольствия в качестве дани; Сыны Гнева безжалостно повышают «квоту», и вечно так продолжаться не может. Последним аргументом на стороне Дэниэлса выступает мутант Монах, с которым герои встречаются снаружи Города. Монах утверждает, что жители соседнего Города Железных Врат готовят нападение на них самих, и убеждает Ваганта в том, чтобы его Город первым атаковал их. Монах даёт известную ему информацию о том, как безопасным образом добраться до соседей, — через метрополитен. Управляющий отказывается рисковать безопасностью своих людей, и Вагант смещает его с должности, взяв управление на себя.

Малочисленное войско Города, состоящее в том числе из детей, вместе с Джоном и под командованием Ваганта отправляется в поход. Достигнув Города Железных Врат, герои одерживают верх над немногочисленными противниками в помещениях и выходят наружу, где наблюдают полчища Созданий Ночи — мутантов, которые истребляют сражающихся с ними горожан, не трогая при этом людей Ваганта. У оставшихся в живых пленников герои узнают, что основное войско ушло на захват их Города. Это произошло потому, что Сыны Гнева, взяв в заложники детей, заставили горожан захватить соседнее поселение и передать им. Джон отправляется обратно в качестве переговорщика. В Городе он узнаёт, что Управляющий, в течение длительного времени оборонявший Город вместе с несколькими оставшимися разведчиками, погиб, а убежище, в котором прятались дети, внезапно вспыхнуло и сгорело от нескольких выстрелов нападающих. Джону приходится использовать все свои и не свои сверхъестественные способности убеждения, чтобы помирить и объединить жителей двух городов и, используя большие запасы оружия Города Железных Врат, пойти войной на Сынов Гнева.

Объединённое войско двух городов идёт по туннелю метро через заброшенные станции к станции , где обитает группировка Лос Чинос, и уговаривает короля этой группировки присоединиться к армии. Вновь решающую роль играют сверхспособности Джона и Монаха: последний показывает всем присутствующим то, что происходит в то время в Риме. Правивший клан Мори свергнут, и сумасшедший новоиспечённый кардинал сжигает на костре сначала Создание Ночи, а потом последнюю представительницу клана Мори. Герои догадываются, зачем Сынам Гнева атомная бомба и зачем они в последнее время перемещаются от центра Милана к периферии: они хотят взорвать улей Созданий Ночи, с которыми до сих пор им приходится делить пространство. В итоге, король Лос Чинос, усмотревший в этой авантюре возможность забрать атомную бомбу по завершении операции себе, соглашается присоединиться. Также к армии присоединяется группировка Альберти, которая имеет амбиции захватить себе весь Милан и имеет возможность организовать передвижение бойцов по поверхности. Джон вместе с раввином Города Железных Врат Самуэлем идёт в улей Созданий Ночи, одним из которых является Монах, чтобы попросить их вновь помочь им. Однако Создания Ночи не дают однозначного ответа, и людям приходится полагаться лишь на свои силы. За время путешествия, общаясь с Джоном, который пытается сопоставить свою веру и происходящее вокруг, Самуэль объясняет ему идею цимцума.

Армия объединённых сил отправляется в центр Милана. На подходе к центральному вокзалу бойцов встречает снайперский огонь, внося панику и прекращая их движение. Однако после речи раввина Самуэля стены вокзала и его защитников охватывает пламя из огнемётов. После бойцы проникают внутрь станции, но из-за хорошо продуманной защиты Сынов Гнева оказываются в ловушке, и Вагант принимает решение сдаться. С бойцами разговаривает главарь Сынов Гнева Диакон. Получив от Ваганта сведения о цели нападения, Диакон приказывает своему помощнику убить Ваганта. Однако помощником Диакона оказывается Васко — бывший гражданин Города, который ранее был захвачен Сынами Гнева. Сняв противогаз с Ваганта, Васко узнаёт его и переходит на сторону захватчиков. Он берёт в заложники главаря, и благодаря замешательству Сынов Гнева захватчики возвращают себе инициативу. Терроризируя находящихся на станции местных жителей, крестоносцы пытаются узнать, где их дети, после чего обнаруживают, что дети были убиты и приготовлены для применения в пищу. Военачальник Города Железных Врат Серджио жестоко пытает Диакона, пытаясь получить информацию о том, где находится бомба. В конце концов, умирающий Диакон предоставляет ему такую информацию.

Серджио поднимается в башню с бомбой и, раздираемый моральными противоречиями, застреливается. В это время на станции захватчики убивают всех местных жителей, кроме маленьких детей. Раввин настаивает на убийстве в том числе и детей, однако другие крестоносцы эту идею не разделяют: матери, потерявшие детей из-за рук Сынов Гнева, называют местных детей своими. Между тем, Маркос, сын короля Лос Чинос, говорит, что убиты не все Сыны Гнева, имея в виду Васко, после чего убивает его. Затем он объявляет, что Лос Чинос забирают бомбу себе, собираясь уничтожить улей Созданий Ночи, так как они так и не помогли крестоносцам в бою. В ответ Джон Дэниэлс искусно описывает, почему Маркос не прав. Маркос пытается убить Джона, однако не успевает: Вагант из снайперской винтовки убивает Маркоса.

Через месяц Джон Дэниэлс, забрав бомбу и взяв с собой нескольких помощников, покидает Милан. Осмотрев бумаги Диакона, главный герой пришёл к выводу, что зло, с которым связаны как Сыны Гнева, так и новый римский кардинал, исходит из Флоренции. Именно туда Джон и направляется, попрощавшись с местными.

Создание и выход романа
Первый роман Туллио Аволедо для «Вселенной Метро 2033» — «Корни небес» — был написан и издан в 2011 году, после того как писатель познакомился с основателем серии Дмитрием Глуховским, прочёл его роман «Метро 2033» и получил приглашение от Глуховского принять участие в серии. «Корни небес» описывают путешествие Джона Дэниэлса в сопровождении ватиканской швейцарской гвардии из постъядерного Рима в Венецию, совершаемое для того, чтобы доставить в Рим второго из двух оставшихся в живых кардиналов и провести конклав, который изберёт нового Папу Римского. Во время написания этого романа Аволедо хотел ограничиться единичным произведением. Однако позже писатель понял, что одной книги недостаточно, чтобы ответить на все вопросы, поднятые для него романом «Метро 2033». Кроме того, писатель получал отзывы российских и польских читателей «Корней небес», которые хотели продолжения. Своими замечаниями они помогли Аволедо написать второй роман.

В «Крестовом походе детей» Туллио Аволедо пытался совместить приключенческий роман с богословием ещё в большей степени, чем в «Корнях небес». По его словам, центральной философской идеей романа является цимцум — в каббалистическом учении процесс «сжатия» Бога, которым можно оправдать как присутствие зла в мире, так и легитимность веры человека. Также автору было интересно представить, как развивалось бы сообщество, пережившее ядерную войну в детстве и с тех пор в условиях постапокалипсиса воспитывающееся без помощи взрослых.

В первую очередь «Крестовый поход детей» был издан в Италии. Затем роман был переведён на несколько других языков и выпущен в других странах, став в том числе пятьдесят четвёртой книгой российской «Вселенной Метро 2033».

Критика
Кристина Донати от итальянского журнала Fantasy Magazine оценила роман на 4 балла из 5. Она называет данное произведение «примером того, как хороший постапокалиптический научно-фантастический рассказ может сочетаться с местным окружением», имея в виду Милан, в котором происходит действие романа. По мнению рецензента, чтение о хорошо знакомых местах, представленных в романе в «искажённом» виде, вызывает «странные чувства». Кристина Донати считает, что «Крестовый поход детей» выходит за рамки обычного постапокалиптического приключенческого романа и «способен показать читателю калейдоскоп реальности, своего рода разбитое зеркало, фрагменты которого отражают воспоминания, неполные, искажённые, острые, но хорошо узнаваемые». В качестве примеров она упоминает довоенные предметы и явления, пережившие апокалипсис и показанные в романе.

Рецензент итальянского портала Sugarpulp сравнивает главного героя, ведущего своих людей к спасению, с библейским Моисеем и отмечает в романе дилемму, через которую проходит главный герой: будучи исполнителем высшей воли, священник испытывает тревогу, так как эта высшая воля достигается посредством насилия, зависящего от выбора таких людей, как он. Также автор обзора выделяет «увлекательную» беседу Дэниэлса с раввином Самуэлем, который рассказывает о концепции цимцума. По свидетельству рецензента, сюжет романа сосредотачивается на нескольких днях, идущих один за другим и полных действия и сражений. В обзоре отмечается, что наличие у Джона сверхъестественных навыков и союза с высшими существами придаёт сюжету некоторую предсказуемость, поскольку с их помощью главный герой почти всегда выходит победителем из опасных ситуаций. По этой причине, по мнению критика, если бы не характер миссии и не изобретательность Аволедо, роман был бы хуже воспринят читателем. Рецензент выразил мнение, что перед чтением данного романа необязательно читать предыдущий роман «Корни небес», «но надо будет обязательно прочитать следующую главу саги, чтобы узнать, чем закончится это эпическое приключение».

Мариуш Войтечек от польского портала Paradoks отрицательно оценил роман, назвав его самым слабым романом «Вселенной Метро 2033» из изданных в Польше. Положительного отзыва удостоилось развитие философской темы в произведении. По мнению рецензента, именно за это Аволедо заслуживает признания, поскольку роман представляет собой интересный взгляд на тему веры и религии, которыми в наше время пренебрегают. Также Войтечек отметил «интригующую» идею новой постгуманистической расы мутантов, которая, правда, по его мнению, не получила должного развития, хотя могла бы улучшить общее восприятие произведения читателем. Рецензент считает, что хотя эта раса мутантов занимает в романе важное положение, Аволедо недостаточно раскрывает её происхождение и сущность, что оставляет читателю значительную неудовлетворённость и делает сам роман «несколько неразвитым». Автор обзора раскритиковал «Крестовый поход детей» за уход от канона книжной серии в целом и добавление фантастических элементов в частности: по мнению Войтечка, фантастические «нити» романа не согласуются с постапокалиптическим реализмом, а польский писатель , который также выпустил ряд романов в серии, справился с задачей внедрения элементов фантастики лучше. Войтечек отмечает, что порой роман «начинает наскучивать, подавая читателю слегка инфантильные послания и сцены, которые не вписываются в используемые декорации» и называет некоторые этапы сюжета весьма предсказуемыми. По мнению рецензента, роман может понравиться тем читателям, которым по душе произведения Павла Майки, но не придётся по вкусу поклонникам таких писателей серии, как Шимун Врочек, Андрей Дьяков и .

Продолжение
В 2019 году издательством «АСТ» в российской книжной серии «Вселенная Метро 2035» был выпущен третий роман писателя, продолжающий историю Дэниэлса, — «Метро 2035: Конклав тьмы». По сюжету этого романа, Джон отправляется во Флоренцию, где обосновались Сыны Гнева, которые уже почти полностью захватили итальянский полуостров. Целью главного героя является возвращение в Рим, уничтожение Сынов Гнева и проведение конклава.

Примечания

Вселенная Метро 2033 (серия книг)
Романы 2014 года
Постапокалиптические романы
Литературные фантастические произведения Италии


text:
/ 30 Seconds To Mars
/ This Is War
Preview This Is War
Night of the Hunter
100 Suns
Closer To The Edge
Search and Destroy
℗ (C) 2009 Virgin Records America, Inc.. All rights reserved. Unauthorized reproduction is a violation of applicable laws. Manufactured by Virgin Records America, Inc., Capitol Records, LLC, 150 Fifth Avenue, New York, NY 10011.
© 2009 Virgin Records America, Inc.
Also by 30 Seconds To Mars
Preview Love Is Madness
Love Is Madness Thirty Seconds To Mars 2019 From $1.29
Preview AMERICA
AMERICA Thirty Seconds To Mars 2018 From $9.99
AMERICA Thirty Seconds To Mars 2018
Preview Dangerous Night (Cheat Codes Remix)
Dangerous Night (Cheat Codes Remix) Thirty Seconds To Mars 2018 From $1.29
Preview Walk On Water (R3hab Remix)
Walk On Water (R3hab Remix) Thirty Seconds To Mars 2017 From $1.29
Preview Walk On Water (Acoustic)
Walk On Water (Acoustic) Thirty Seconds To Mars 2017 From $1.29
Preview The Fragile
The Fragile Nine Inch Nails 1999 From $13.99
Preview Stone Temple Pilots
Stone Temple Pilots Stone Temple Pilots 2010 From $10.99
Preview No Name Face
No Name Face Lifehouse 2009 From $7.49
Preview Gift (Explicit Version)
Gift (Explicit Version) Taproot 2000
Preview The Great Escape Artist
The Great Escape Artist Jane's Addiction 2011


In the explosive third episode of Twinning, tensions got real high and the twins did whatever they could hang on (that's a pun from the challenge, if you missed it) while Roxanne and Nicole ultimately went home after The Maries were victorious in the Twin-Off for the second week in a row. Like always, the craziest moments in the house were commentated by the stars from the show along with some of the most loyal fans.
45+ sets watching @vh1 #twinning tonight!! Thank you all for the love and support. We love our Twins Days Family!!
Aren't they just too adorable?


text:
Xinhua Headlines: China-Pakistan Economic Corridor promises better future for Pakistan's women workers
A Pakistani woman works at the construction site of Multan-Sukkur Motorway under the China-Pakistan Economic Corridor in Pakistan on March 12, 2019. (Xinhua/Luo Xiangjun)
by Misbah Saba Malik, Liu Tian
ISLAMABAD, March 21 (Xinhua) -- Ambreen Shah was confident of a better future when she joined the Chinese company working on a power project under the China-Pakistan Economic Corridor (CPEC) in Southwest Pakistan's Balochistan province.
Shah joined the China Power Hub Generation Company (CPHGC) as head of the legal department and was later promoted to vice president for Legal and Corporate Affairs for her hard work and expertise.
Shah told Xinhua that working in the Chinese company not only enabled her to excel, but also allowed her, a mother, to strike a better balance between her work and personal life than in a transnational company where she was previously employed.
"Their differences are from the Chinese culture. So, this is what makes it easy to work with them because they want to understand others and they want to adjust to that too," Shah added.
The power plant project with an estimated cost of 2 billion U.S. dollars and cutting-edge environmentally-friendly technology is expected to generate enough electricity to meet the needs of some 4 million households.
WOMEN LEARN SKILLS THROUGH CPEC PROJECTS
Shah said over 30 percent of the employees at CPHGC are women, some of them in important positions.
"There is absolutely no gender discrimination by (the) Chinese when they hire workers. They'd rather look at qualifications and competence levels," said Shah.
For her and many other Pakistani women, the CPEC provides an opportunity for them to learn skills and values which will not only help them excel in work, but also help them become stronger in facing challenges in life.
CPEC, a corridor linking Pakistan's Karachi and northwestern Peshawar and running through the populous provinces of Punjab and Sindh, highlights energy, transport, industrial cooperation and Gwadar port construction. Seeking to expand cooperation to such sectors as finance, science and technology, education, poverty alleviation and urban planning, the corridor is a major pilot project under the China-proposed Belt and Road Initiative (BRI).
"The women who are working here, have not just gained knowledge and expertise on the technical side of the project management, but they have also learned teamwork, ... about how to get more support from each other and to provide more support. I think this is something that I really like about CPEC projects. They make you strong," Shah said.
According to Pakistan's official data, CPEC has provided over 70,000 direct jobs for Pakistanis since it was launched in 2013.
Addressing a seminar earlier, Pakistan's Minister for Human Rights Shireen Mazari said job opportunities for women will increase tremendously in the forthcoming industrial cooperation under CPEC.
CPEC is also a boon to Pakistan's blue-collar women workers, who can enjoy health care, education and a better work environment in Chinese companies.
The Thar region of South Pakistan's Sindh province is considered as one of the most underdeveloped areas in Pakistan, which is hard hit by droughts and people there are largely engaged in animal husbandry and agriculture.
Krishna Kumari, a senator from the Thar Desert area, said hope has increased for women in her district when Chinese companies under CPEC brought them jobs.
The senator said locals who have been trained under CPEC projects could take home a handsome amount of money every month. In many households, women can now earn more than men, thus reducing their financial dependence on men and enabling them to pursue their dreams through hard work, she said.
EMPOWERMENT OF RURAL WOMEN
In Pakistan, rural women usually do not actively take part in political affairs. Unlike in the rest of the country, women voters outnumbered men in Thar during the last general elections -- an evidence of the empowerment of women, said Kumari.
According to a UN Women report, women account for only 22 percent of the labor force aged 15-64 in Pakistan, and about 73 percent of the women workers are associated with agriculture, forestry, hunting and fishing sectors.
Musarrat Amen, an assistant professor for Defense and Diplomatic Studies in Fatima Jinnah Women University Rawalpindi, said CPEC gave more women employment opportunities in non-agriculture fields, broadening the Pakistani women's vocational scope.
Amen obtained her PhD in international relations from a reputable Chinese university. After returning to Pakistan, Amen published several research papers on the CPEC. She is currently writing a book on the mega project to address the frequently asked questions from students and researchers about the CPEC.
"Being associated with China for a long time, I was asked questions about CPEC. To address queries of my students I started research on CPEC, and the deeper I dug into it, the more I learnt how it is going to be a game changer for Pakistani economy," Amen said.
She said that the CPEC is a "hot topic" for Pakistani scholars and seminars, and she is often invited as a guest speaker at conferences.
"I am teaching women and I know that Pakistani women have a lot of potential and their potential can be tapped by the CPEC. As Chinese women were equal agents of China's economic change, through CPEC Pakistani women will also get chance to contribute to the Pakistani economy," said the scholar.
(Video reporters: Liu Tian, Jiang Chao; Video editor: Lin Lin)


To this group of products belongs just a small number of tools of our company. Basically, these are unusualy shaped bottles, in most cases coated with thermo foil in full color because it is a finished product of very high prices in the market. The volumes of these packages are between 50 ml and to 300 ml. For some of them it is possible to incorporate the trigger spray or sprinkler because it is a standard size bottle neck.


text:
 /*!
 * \file
 * \brief
 */ /*-------------------------------------------------------------------*/

#include "esextcTessellationShaderBarrier.hpp"
#include "gluContextInfo.hpp"
#include "gluDefs.hpp"
#include "glwEnums.hpp"
#include "glwFunctions.hpp"
#include "tcuTestLog.hpp"

namespace glcts
{

/** Constructor
 *
 * @param context       Test context
 * @param name          Test case's name
 * @param description   Test case's description
 **/
TessellationShaderBarrierTests::TessellationShaderBarrierTests(Context& context, const ExtParameters& extParams)
	: TestCaseGroupBase(context, extParams, "tessellation_shader_tc_barriers",
						"Verifies memory barrier work correctly when used in"
						"tessellation control shaders")
{
	/* Left blank on purpose */
}

/* Instantiates all tests and adds them as children to the node */
void TessellationShaderBarrierTests::init(void)
{
	addChild(new glcts::TessellationShaderBarrier1(m_context, m_extParams));
	addChild(new glcts::TessellationShaderBarrier2(m_context, m_extParams));
	addChild(new glcts::TessellationShaderBarrier3(m_context, m_extParams));
}

/** Constructor
 *
 * @param context       Test context
 * @param name          Test case's name
 * @param description   Test case's desricption
 **/
TessellationShaderBarrierTestCase::TessellationShaderBarrierTestCase(Context& context, const ExtParameters& extParams,
																	 const char* name, const char* description)
	: TestCaseBase(context, extParams, name, description)
	, m_bo_id(0)
	, m_fs_id(0)
	, m_po_id(0)
	, m_tcs_id(0)
	, m_tes_id(0)
	, m_vao_id(0)
	, m_vs_id(0)
{
	/* Left blank on purpose */
}

/** Deinitializes all ES objects created for the test. */
void TessellationShaderBarrierTestCase::deinit()
{
	/** Call base class' deinit() function */
	TestCaseBase::deinit();

	if (!m_is_tessellation_shader_supported)
	{
		return;
	}

	const glw::Functions& gl = m_context.getRenderContext().getFunctions();

	/* Disable GL_RASTERIZER_DISCARD mode the test has enabled */
	gl.disable(GL_RASTERIZER_DISCARD);

	/* Bring back the original GL_PATCH_VERTICES_EXT setting */
	gl.patchParameteri(m_glExtTokens.PATCH_VERTICES, 3);

	/* Revert buffer object bindings */
	gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 0 /* buffer */);
	gl.bindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0 /* index */, 0 /* buffer */);

	/* Unbind vertex array object */
	gl.bindVertexArray(0);

	/* Free all the objects that might have been initialized */
	if (m_bo_id != 0)
	{
		gl.deleteBuffers(1, &m_bo_id);

		m_bo_id = 0;
	}

	if (m_fs_id != 0)
	{
		gl.deleteShader(m_fs_id);

		m_fs_id = 0;
	}

	if (m_po_id != 0)
	{
		gl.deleteProgram(m_po_id);

		m_po_id = 0;
	}

	if (m_tcs_id != 0)
	{
		gl.deleteShader(m_tcs_id);

		m_tcs_id = 0;
	}

	if (m_tes_id != 0)
	{
		gl.deleteShader(m_tes_id);

		m_tes_id = 0;
	}

	if (m_vs_id != 0)
	{
		gl.deleteShader(m_vs_id);

		m_vs_id = 0;
	}

	if (m_vao_id != 0)
	{
		gl.deleteVertexArrays(1, &m_vao_id);

		m_vao_id = 0;
	}
}

/** Initializes all ES objects that will be used for the test. */
void TessellationShaderBarrierTestCase::initTest()
{
	/* The test requires EXT_tessellation_shader */
	const glw::Functions& gl = m_context.getRenderContext().getFunctions();

	if (!m_is_tessellation_shader_supported)
	{
		return;
	}

	gl.genVertexArrays(1, &m_vao_id);
	GLU_EXPECT_NO_ERROR(gl.getError(), "Could not generate vertex array object");

	gl.bindVertexArray(m_vao_id);
	GLU_EXPECT_NO_ERROR(gl.getError(), "Error binding vertex array object!");

	/* Set up storage for XFB data. Also configure the BO binding points */
	const unsigned int xfb_data_size = getXFBBufferSize();

	gl.genBuffers(1, &m_bo_id);
	gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, m_bo_id);
	gl.bindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0 /* index */, m_bo_id);
	gl.bufferData(GL_TRANSFORM_FEEDBACK_BUFFER, xfb_data_size, NULL /* data */, GL_STATIC_DRAW);

	GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up storage for XFB data");

	/* Set up shader objects */
	m_fs_id  = gl.createShader(GL_FRAGMENT_SHADER);
	m_tcs_id = gl.createShader(m_glExtTokens.TESS_CONTROL_SHADER);
	m_tes_id = gl.createShader(m_glExtTokens.TESS_EVALUATION_SHADER);
	m_vs_id  = gl.createShader(GL_VERTEX_SHADER);

	GLU_EXPECT_NO_ERROR(gl.getError(), "Could not create shader objects");

	/* Set up fragment shader body */
	const char* fs_body = "${VERSION}\n"
						  "\n"
						  "void main()\n"
						  "{\n"
						  "}\n";

	/* Set up tessellation control shader body */
	const char* tcs_body = getTCSCode();

	/* Set up tessellation evaluation shader body */
	const char* tes_body = getTESCode();

	/* Set up vertex shader body */
	const char* vs_body = getVSCode();

	/* Set up a program object */
	m_po_id = gl.createProgram();

	GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() failed");

	/* Set up XFB */
	const char** names   = NULL;
	int			 n_names = 0;

	getXFBProperties(&n_names, &names);

	gl.transformFeedbackVaryings(m_po_id, n_names, names, GL_INTERLEAVED_ATTRIBS);
	GLU_EXPECT_NO_ERROR(gl.getError(), "glTransformFeedbackVaryings() failed");

	/* Try to compile and link all the shader objects */
	if (!buildProgram(m_po_id, m_fs_id, 1, &fs_body, m_tcs_id, 1, &tcs_body, m_tes_id, 1, &tes_body, m_vs_id, 1,
					  &vs_body))
	{
		TCU_FAIL("Program linking failed");
	}

	/* All set! */
}

/** Executes the test.
 *
 *  Sets the test result to QP_TEST_RESULT_FAIL if the test failed, QP_TEST_RESULT_PASS otherwise.
 *
 *  Note the function throws exception should an error occur!
 *
 *  @return STOP if the test has finished, CONTINUE to indicate iterate() should be called once again.
 **/
tcu::TestNode::IterateResult TessellationShaderBarrierTestCase::iterate(void)
{
	initTest();

	/* Do not execute if required extensions are not supported. */
	if (!m_is_tessellation_shader_supported)
	{
		throw tcu::NotSupportedError(TESSELLATION_SHADER_EXTENSION_NOT_SUPPORTED);
	}

	/* Prepare for the draw call */
	const glw::Functions& gl = m_context.getRenderContext().getFunctions();

	glw::GLint  drawcall_count		 = 0;
	glw::GLenum drawcall_mode		 = GL_NONE;
	glw::GLint  drawcall_n_instances = 1;
	glw::GLint  n_patch_vertices	 = 0;
	glw::GLenum tf_mode				 = GL_NONE;

	getDrawCallArgs(&drawcall_mode, &drawcall_count, &tf_mode, &n_patch_vertices, &drawcall_n_instances);

	gl.enable(GL_RASTERIZER_DISCARD);
	GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_RASTERIZER_DISCARD) failed");

	gl.patchParameteri(m_glExtTokens.PATCH_VERTICES, n_patch_vertices);
	GLU_EXPECT_NO_ERROR(gl.getError(), "glPatchParameteriEXT() failed");

	gl.useProgram(m_po_id);
	GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() failed");

	gl.beginTransformFeedback(tf_mode);
	GLU_EXPECT_NO_ERROR(gl.getError(), "glBeginTransformFeedback() failed");
	{
		if (drawcall_n_instances == 1)
		{
			gl.drawArrays(drawcall_mode, 0 /* first */, drawcall_count);
		}
		else
		{
			DE_ASSERT(drawcall_n_instances > 1);

			gl.drawArraysInstanced(drawcall_mode, 0 /* first */, drawcall_count, drawcall_n_instances);
		}
		GLU_EXPECT_NO_ERROR(gl.getError(), "glDrawArrays() or glDrawArraysInstanced() failed");
	}
	gl.endTransformFeedback();
	GLU_EXPECT_NO_ERROR(gl.getError(), "glEndTransformFeedback() failed");

	/* Retrieve the data generated by XFB */
	int			bo_size  = getXFBBufferSize();
	const void* xfb_data = NULL;

	xfb_data = gl.mapBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0 /* offset */, bo_size, GL_MAP_READ_BIT);

	GLU_EXPECT_NO_ERROR(gl.getError(), "glMapBufferRange() failed");

	/* Verify the data */
	bool is_xfb_data_valid = verifyXFBBuffer(xfb_data);

	/* Unmap the buffer object */
	gl.unmapBuffer(GL_TRANSFORM_FEEDBACK_BUFFER);

	GLU_EXPECT_NO_ERROR(gl.getError(), "glUnmapBuffer() failed");

	/* Set the test result, depending on the verification outcome */
	if (is_xfb_data_valid)
	{
		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
	}
	else
	{
		m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
	}

	return STOP;
}

/** Constructor
 *
 * @param context Test context
 **/
TessellationShaderBarrier1::TessellationShaderBarrier1(Context& context, const ExtParameters& extParams)
	: TessellationShaderBarrierTestCase(context, extParams, "barrier_guarded_read_calls",
										"Verifies invocation A can correctly read a per-vertex and"
										" per-patch attribute modified by invocation B after a barrier() call")
	, m_n_result_vertices(2048)
{
	m_n_input_vertices = (m_n_result_vertices / 2 /* result points per isoline */) * 4 /* vertices per patch */;
}

/** Retrieves arguments to be used for the rendering process.
 *
 *  @param out_mode             Deref will be used to store draw call mode. Must not be NULL.
 *  @param out_count            Deref will be used to store count argument to be used for the draw call.
 *                              Must not be NULL.
 *  @param out_tf_mode          Deref will be used to store transform feed-back mode to be used for
 *                              glBeginTransformFeedback() call, prior to issuing the draw call. Must
 *                              not be NULL.
 *  @param out_n_patch_vertices Deref will be used to store GL_PATCH_VERTICES_EXT pname value, to be set with
 *                              glPatchParameteriEXT() call prior to issuing the draw call. Must not be NULL.
 *  @param out_n_instances      Deref will be used to store amount of instances to use for the draw call.
 *                              Using a value of 1 will result in a glDrawArrays() call. Using values larger
 *                              than 1 will trigger glDrawArraysInstanced() call. Values smaller than 1 are
 *                              forbidden.
 **/
void TessellationShaderBarrier1::getDrawCallArgs(glw::GLenum* out_mode, glw::GLint* out_count, glw::GLenum* out_tf_mode,
												 glw::GLint* out_n_patch_vertices, glw::GLint* out_n_instances)
{
	*out_count			  = m_n_input_vertices;
	*out_mode			  = GL_PATCHES_EXT;
	*out_n_instances	  = 1;
	*out_n_patch_vertices = 4;
	*out_tf_mode		  = GL_POINTS;
}

/** Retrieves tessellation control shader body.
 *
 *  @return TC stage shader body.
 **/
const char* TessellationShaderBarrier1::getTCSCode()
{
	static const char* tcs_code =
		"${VERSION}\n"
		"\n"
		"${TESSELLATION_SHADER_REQUIRE}\n"
		"\n"
		"layout (vertices = 4) out;\n"
		"\n"
		"flat  in  int   vertex_id[];\n"
		"\n"
		"patch out int   test_patch_value;\n"
		"      out ivec4 test_vector [];\n"
		"      out ivec4 test_vector2[];\n"
		"\n"
		"void main()\n"
		"{\n"
		"    if (gl_InvocationID == 0)\n"
		"    {\n"
		"        test_patch_value = vertex_id[0];\n"
		"    }\n"
		"\n"
		"    test_vector[gl_InvocationID] = ivec4(vertex_id[gl_InvocationID],\n"
		"                                         vertex_id[gl_InvocationID] + 1,\n"
		"                                         vertex_id[gl_InvocationID] + 2,\n"
		"                                         vertex_id[gl_InvocationID] + 3);\n"
		"\n"
		"    barrier();\n"
		"\n"
		"    int next_invocation = (gl_InvocationID + 1) % 4;\n"
		"\n"
		"    test_vector2[gl_InvocationID] = ivec4(test_vector[next_invocation].xyz, test_patch_value);\n"
		"\n"
		"    gl_TessLevelOuter[0] = 1.0;\n"
		"    gl_TessLevelOuter[1] = 1.0;\n"
		"}\n";

	return tcs_code;
}

/** Retrieves tessellation evaluation shader body.
 *
 *  @return TE stage shader body.
 **/
const char* TessellationShaderBarrier1::getTESCode()
{
	static const char* tes_code = "${VERSION}\n"
								  "\n"
								  "${TESSELLATION_SHADER_REQUIRE}\n"
								  "\n"
								  "layout(isolines, point_mode) in;\n"
								  "\n"
								  "in ivec4 test_vector2[];\n"
								  "\n"
								  "out ivec4 result_vector2;\n"
								  "\n"
								  "void main()\n"
								  "{\n"
								  "    int base = gl_PrimitiveID * 4;\n"
								  "\n"
								  "    if (test_vector2[0].x == (base + 1) && test_vector2[0].y == (base + 2) && "
								  "test_vector2[0].z == (base + 3) && test_vector2[0].w == (base + 0)  &&\n"
								  "        test_vector2[1].x == (base + 2) && test_vector2[1].y == (base + 3) && "
								  "test_vector2[1].z == (base + 4) && test_vector2[1].w == (base + 0)  &&\n"
								  "        test_vector2[2].x == (base + 3) && test_vector2[2].y == (base + 4) && "
								  "test_vector2[2].z == (base + 5) && test_vector2[2].w == (base + 0)  &&\n"
								  "        test_vector2[3].x == (base + 0) && test_vector2[3].y == (base + 1) && "
								  "test_vector2[3].z == (base + 2) && test_vector2[3].w == (base + 0) )\n"
								  "    {\n"
								  "        result_vector2 = ivec4(1);\n"
								  "    }\n"
								  "    else\n"
								  "    {\n"
								  "        result_vector2 = ivec4(0);\n"
								  "    }\n"
								  "}\n";

	return tes_code;
}

/** Retrieves vertex shader body.
 *
 *  @return Vertex shader body.
 **/
const char* TessellationShaderBarrier1::getVSCode()
{
	static const char* vs_code = "${VERSION}\n"
								 "\n"
								 "flat out int vertex_id;\n"
								 "\n"
								 "void main()\n"
								 "{\n"
								 "    vertex_id = gl_VertexID;\n"
								 "}\n";

	return vs_code;
}

/** Retrieves amount of bytes that should be used for allocating storage space for
 *  a buffer object that will later be used to hold XFB result data.
 *
 *  @return Amount of bytes required by the test.
 */
int TessellationShaderBarrier1::getXFBBufferSize()
{
	return static_cast<int>(m_n_result_vertices * sizeof(int) * 4 /* components */ * 2 /* points per isoline */);
}

/** Retrieves names of transform feedback varyings and amount of those. These should be used
 *  prior to link the test program object.
 *
 *  @param out_n_names Deref will be used to store the number of names that @param out_names array
 *                     holds. Must not be NULL.
 *  @param out_names   Deref will be used to store a pointer to an array holding TF varying names;
 *                     Must not be NULL.
 **/
void TessellationShaderBarrier1::getXFBProperties(int* out_n_names, const char*** out_names)
{
	static const char* names[1] = { "result_vector2" };

	*out_n_names = 1;
	*out_names   = names;
}

/** Verifies data captured by XFB is correct.
 *
 *  @param data Buffer holding the result XFB data. Must not be NULL.
 *
 *  @return true if the result data is confirmed to be valid, false otherwise.
 **/
bool TessellationShaderBarrier1::verifyXFBBuffer(const void* data)
{
	int* data_int = (int*)data;

	/* Run through all vertices */
	for (unsigned int n_vertex = 0; n_vertex < m_n_result_vertices; ++n_vertex)
	{
		int retrieved_x = data_int[n_vertex * 4];
		int retrieved_y = data_int[n_vertex * 4 + 1];
		int retrieved_z = data_int[n_vertex * 4 + 2];
		int retrieved_w = data_int[n_vertex * 4 + 3];

		if (retrieved_x != 1 || retrieved_y != 1 || retrieved_z != 1 || retrieved_w != 1)
		{
			m_testCtx.getLog() << tcu::TestLog::Message << "Invalid value returned: expected:[1, 1, 1, 1]"
							   << " retrieved: "
							   << "[" << retrieved_x << ", " << retrieved_y << ", " << retrieved_z << ", "
							   << retrieved_w << tcu::TestLog::EndMessage;

			TCU_FAIL("Invalid rendering result");
		}
	}

	return true;
}

/** Constructor
 *
 * @param context Test context
 **/
TessellationShaderBarrier2::TessellationShaderBarrier2(Context& context, const ExtParameters& extParams)
	: TessellationShaderBarrierTestCase(context, extParams, "barrier_guarded_write_calls",
										"Verifies it is safe to write to the same per-patch output "
										"from multiple TC invocations, as long as each write happens "
										"in a separate phase.")
	, m_n_result_vertices(2048)
{
	m_n_input_vertices = (m_n_result_vertices / 2 /* result points per isoline */) * 4 /* vertices per patch */;
}

/** Retrieves arguments to be used for the rendering process.
 *
 *  @param out_mode             Deref will be used to store draw call mode. Must not be NULL.
 *  @param out_count            Deref will be used to store count argument to be used for the draw call.
 *                              Must not be NULL.
 *  @param out_tf_mode          Deref will be used to store transform feed-back mode to be used for
 *                              glBeginTransformFeedback() call, prior to issuing the draw call. Must
 *                              not be NULL.
 *  @param out_n_patch_vertices Deref will be used to store GL_PATCH_VERTICES_EXT pname value, to be set with
 *                              glPatchParameteriEXT() call prior to issuing the draw call. Must not be NULL.
 *  @param out_n_instances      Deref will be used to store amount of instances to use for the draw call.
 *                              Using a value of 1 will result in a glDrawArrays() call. Using values larger
 *                              than 1 will trigger glDrawArraysInstanced() call. Values smaller than 1 are
 *                              forbidden.
 **/
void TessellationShaderBarrier2::getDrawCallArgs(glw::GLenum* out_mode, glw::GLint* out_count, glw::GLenum* out_tf_mode,
												 glw::GLint* out_n_patch_vertices, glw::GLint* out_n_instances)
{
	*out_count			  = m_n_input_vertices;
	*out_mode			  = GL_PATCHES_EXT;
	*out_n_instances	  = 1;
	*out_n_patch_vertices = 4;
	*out_tf_mode		  = GL_POINTS;
}

/** Retrieves tessellation control shader body.
 *
 *  @return TC stage shader body.
 **/
const char* TessellationShaderBarrier2::getTCSCode()
{
	static const char* tcs_code = "${VERSION}\n"
								  "\n"
								  "${TESSELLATION_SHADER_REQUIRE}\n"
								  "\n"
								  "layout (vertices = 4) out;\n"
								  "\n"
								  "      out float tcs_result[];\n"
								  "patch out int   test_patch_value;\n"
								  "\n"
								  "void main()\n"
								  "{\n"
								  /* Four invocations per input patch will be executed. Have the first one write its
		 * secret value to the output per-patch attribute.
		 */
								  "    if (gl_InvocationID == 0)\n"
								  "    {\n"
								  "        test_patch_value = 123;\n"
								  "    }\n"
								  "\n"
								  "    barrier();\n"
								  "\n"
								  /* Let's have the second invocation update the value at this point */
								  "    if (gl_InvocationID == 1)\n"
								  "    {\n"
								  "        test_patch_value = 234;\n"
								  "    }\n"
								  "\n"
								  "    barrier();\n"
								  "\n"
								  /* Finally, if this is invocation number one, check if test_patch_value
		 * stores a correct value.
		 */
								  "    tcs_result[gl_InvocationID] = 2.0;\n"
								  "\n"
								  "    if (gl_InvocationID == 0)\n"
								  "    {\n"
								  "        if (test_patch_value == 234)\n"
								  "        {\n"
								  "            tcs_result[gl_InvocationID] = 1.0;\n"
								  "        }\n"
								  "    }\n"
								  "\n"
								  "    gl_TessLevelOuter[0] = 1.0;\n"
								  "    gl_TessLevelOuter[1] = 1.0;\n"
								  "}\n";

	return tcs_code;
}

/** Retrieves tessellation evaluation shader body.
 *
 *  @return TE stage shader body.
 **/
const char* TessellationShaderBarrier2::getTESCode()
{
	static const char* tes_code = "${VERSION}\n"
								  "\n"
								  "${TESSELLATION_SHADER_REQUIRE}\n"
								  "\n"
								  "layout(isolines, point_mode) in;\n"
								  "\n"
								  "      in float tcs_result[];\n"
								  "\n"
								  "out float tes_result;\n"
								  "\n"
								  "void main()\n"
								  "{\n"
								  /* TCS invocation order is undefined so take a maximum of all values we received */
								  "    if (tcs_result[0] == 1.0 &&\n"
								  "        tcs_result[1] == 2.0 &&\n"
								  "        tcs_result[2] == 2.0 &&\n"
								  "        tcs_result[3] == 2.0)\n"
								  "    {\n"
								  "        tes_result = 1.0;\n"
								  "    }\n"
								  "    else\n"
								  "    {\n"
								  "        tes_result = 0.0;\n"
								  "    }\n"
								  "}\n";

	return tes_code;
}

/** Retrieves vertex shader body.
 *
 *  @return Vertex shader body.
 **/
const char* TessellationShaderBarrier2::getVSCode()
{
	static const char* vs_code = "${VERSION}\n"
								 "\n"
								 "void main()\n"
								 "{\n"
								 "}\n";

	return vs_code;
}

/** Retrieves amount of bytes that should be used for allocating storage space for
 *  a buffer object that will later be used to hold XFB result data.
 *
 *  @return Amount of bytes required by the test.
 */
int TessellationShaderBarrier2::getXFBBufferSize()
{
	return static_cast<int>(m_n_result_vertices * sizeof(float) * 2 /* points per isoline */);
}

/** Retrieves names of transform feedback varyings and amount of those. These should be used
 *  prior to link the test program object.
 *
 *  @param out_n_names Deref will be used to store the number of names that @param out_names array
 *                     holds. Must not be NULL.
 *  @param out_names   Deref will be used to store a pointer to an array holding TF varying names;
 *                     Must not be NULL.
 **/
void TessellationShaderBarrier2::getXFBProperties(int* out_n_names, const char*** out_names)
{
	static const char* names[1] = { "tes_result" };

	*out_n_names = 1;
	*out_names   = names;
}

/** Verifies data captured by XFB is correct.
 *
 *  @param data Buffer holding the result XFB data. Must not be NULL.
 *
 *  @return true if the result data is confirmed to be valid, false otherwise.
 **/
bool TessellationShaderBarrier2::verifyXFBBuffer(const void* data)
{
	float*		data_float = (float*)data;
	const float epsilon	= (float)1e-5;

	/* Run through all vertices */
	for (unsigned int n_vertex = 0; n_vertex < m_n_result_vertices; ++n_vertex)
	{
		if (de::abs(data_float[n_vertex] - 1.0f /* valid result value */) > epsilon)
		{
			TCU_FAIL("Invalid data retrieved");
		}
	}

	return true;
}

/** Constructor
 *
 * @param context Test context
 **/
TessellationShaderBarrier3::TessellationShaderBarrier3(Context& context, const ExtParameters& extParams)
	: TessellationShaderBarrierTestCase(context, extParams, "barrier_guarded_read_write_calls",
										"Verifies it is safe to write to the same per-patch output "
										"from multiple TC invocations, as long as each write happens "
										"in a separate phase.")
	, m_n_instances(10)				/* as per test spec */
	, m_n_invocations(16)			/* as per test spec */
	, m_n_patch_vertices(8)			/* as per test spec */
	, m_n_patches_per_invocation(2) /* as per test spec */
	, m_n_result_vertices(2 /* result points per isoline */ * m_n_patches_per_invocation * m_n_invocations *
						  m_n_instances)
{
	m_n_input_vertices = (m_n_result_vertices / 2 /* result points per isoline */) * 4 /* vertices per patch */;
}

/** Retrieves arguments to be used for the rendering process.
 *
 *  @param out_mode             Deref will be used to store draw call mode. Must not be NULL.
 *  @param out_count            Deref will be used to store count argument to be used for the draw call.
 *                              Must not be NULL.
 *  @param out_tf_mode          Deref will be used to store transform feed-back mode to be used for
 *                              glBeginTransformFeedback() call, prior to issuing the draw call. Must
 *                              not be NULL.
 *  @param out_n_patch_vertices Deref will be used to store GL_PATCH_VERTICES_EXT pname value, to be set with
 *                              glPatchParameteriEXT() call prior to issuing the draw call. Must not be NULL.
 *  @param out_n_instances      Deref will be used to store amount of instances to use for the draw call.
 *                              Using a value of 1 will result in a glDrawArrays() call. Using values larger
 *                              than 1 will trigger glDrawArraysInstanced() call. Values smaller than 1 are
 *                              forbidden.
 **/
void TessellationShaderBarrier3::getDrawCallArgs(glw::GLenum* out_mode, glw::GLint* out_count, glw::GLenum* out_tf_mode,
												 glw::GLint* out_n_patch_vertices, glw::GLint* out_n_instances)
{
	*out_count			  = m_n_patches_per_invocation * m_n_patch_vertices * m_n_instances;
	*out_mode			  = GL_PATCHES_EXT;
	*out_n_instances	  = m_n_instances;
	*out_n_patch_vertices = m_n_patch_vertices;
	*out_tf_mode		  = GL_POINTS;
}

/** Retrieves tessellation control shader body.
 *
 *  @return TC stage shader body.
 **/
const char* TessellationShaderBarrier3::getTCSCode()
{
	static const char* tcs_code =
		"${VERSION}\n"
		"\n"
		"${TESSELLATION_SHADER_REQUIRE}\n"
		"\n"
		"layout (vertices = 16) out;\n"
		"\n"
		"      out int tcs_data        [];\n"
		"patch out int tcs_patch_result[16];\n"
		"\n"
		"void main()\n"
		"{\n"
		/* Even invocations should write their gl_InvocationID value to their per-vertex output. */
		"    if ((gl_InvocationID % 2) == 0)\n"
		"    {\n"
		"        tcs_data[gl_InvocationID] = gl_InvocationID;\n"
		"    }\n"
		"\n"
		"    barrier();\n"
		"\n"
		/* Odd invocations should read values stored by preceding even invocation,
		 * add current invocation's ID to that value, and then write it to its per-vertex
		 * output.
		 */
		"    if ((gl_InvocationID % 2) == 1)\n"
		"    {\n"
		"        tcs_data[gl_InvocationID] = tcs_data[gl_InvocationID - 1] + gl_InvocationID;\n"
		"    }\n"
		"\n"
		"    barrier();\n"
		"\n"
		/* Every fourth invocation should now read & sum up per-vertex outputs for four invocations
		 * following it (including the one discussed), and store it in a per-patch variable */
		"    tcs_patch_result[gl_InvocationID] = 0;\n"
		"\n"
		"    if ((gl_InvocationID % 4) == 0)\n"
		"    {\n"
		"        tcs_patch_result[gl_InvocationID] += tcs_data[gl_InvocationID];\n"
		"        tcs_patch_result[gl_InvocationID] += tcs_data[gl_InvocationID+1];\n"
		"        tcs_patch_result[gl_InvocationID] += tcs_data[gl_InvocationID+2];\n"
		"        tcs_patch_result[gl_InvocationID] += tcs_data[gl_InvocationID+3];\n"
		"    }\n"
		"\n"
		"    gl_TessLevelOuter[0] = 1.0;\n"
		"    gl_TessLevelOuter[1] = 1.0;\n"
		"}\n";

	return tcs_code;
}

/** Retrieves tessellation evaluation shader body.
 *
 *  @return TC stage shader body.
 **/
const char* TessellationShaderBarrier3::getTESCode()
{
	static const char* tes_code = "${VERSION}\n"
								  "\n"
								  "${TESSELLATION_SHADER_REQUIRE}\n"
								  "\n"
								  "layout(isolines, point_mode) in;\n"
								  "\n"
								  "patch in int tcs_patch_result[16];\n"
								  "\n"
								  "flat out ivec4 tes_result1;\n"
								  "flat out ivec4 tes_result2;\n"
								  "flat out ivec4 tes_result3;\n"
								  "flat out ivec4 tes_result4;\n"
								  "\n"
								  "void main()\n"
								  "{\n"
								  "    tes_result1 = ivec4(tcs_patch_result[0],  tcs_patch_result[1],  "
								  "tcs_patch_result[2],  tcs_patch_result[3]);\n"
								  "    tes_result2 = ivec4(tcs_patch_result[4],  tcs_patch_result[5],  "
								  "tcs_patch_result[6],  tcs_patch_result[7]);\n"
								  "    tes_result3 = ivec4(tcs_patch_result[8],  tcs_patch_result[9],  "
								  "tcs_patch_result[10], tcs_patch_result[11]);\n"
								  "    tes_result4 = ivec4(tcs_patch_result[12], tcs_patch_result[13], "
								  "tcs_patch_result[14], tcs_patch_result[15]);\n"
								  "}\n";

	return tes_code;
}

/** Retrieves vertex shader body.
 *
 *  @return Vertex shader body.
 **/
const char* TessellationShaderBarrier3::getVSCode()
{
	static const char* vs_code = "${VERSION}\n"
								 "\n"
								 "void main()\n"
								 "{\n"
								 "}\n";

	return vs_code;
}

/** Retrieves amount of bytes that should be used for allocating storage space for
 *  a buffer object that will later be used to hold XFB result data.
 *
 *  @return Amount of bytes required by the test.
 */
int TessellationShaderBarrier3::getXFBBufferSize()
{
	return static_cast<int>(m_n_instances * m_n_result_vertices * sizeof(int) * 4 /* ivec4 */ *
							2 /* points per isoline */);
}

/** Retrieves names of transform feedback varyings and amount of those. These should be used
 *  prior to link the test program object.
 *
 *  @param out_n_names Deref will be used to store the number of names that @param out_names array
 *                     holds. Must not be NULL.
 *  @param out_names   Deref will be used to store a pointer to an array holding TF varying names;
 *                     Must not be NULL.
 **/
void TessellationShaderBarrier3::getXFBProperties(int* out_n_names, const char*** out_names)
{
	static const char* names[] = { "tes_result1", "tes_result2", "tes_result3", "tes_result4" };

	*out_n_names = 4;
	*out_names   = names;
}

/** Verifies data captured by XFB is correct.
 *
 *  @param data Buffer holding the result XFB data. Must not be NULL.
 *
 *  @return true if the result data is confirmed to be valid, false otherwise.
 **/
bool TessellationShaderBarrier3::verifyXFBBuffer(const void* data)
{
	const int*		 data_int = (const int*)data;
	std::vector<int> tcs_data(m_n_invocations, 0);
	std::vector<int> tcs_patch_result(m_n_invocations, 0);

	/* This is a simple C++ port of the TCS used for the test.
	 *
	 * Note: We only need to consider a single set of values stored by TES
	 *       for a single result point, as the same set of values will be
	 *       reported for the other point. Owing to the fact gl_InvocationID
	 *       in TCS will iterate from 0 to 15 for all input patches and instances,
	 *       we can re-use the data for all subsequent input patches. */
	/* Phase 1 */
	for (unsigned int n = 0; n < m_n_invocations; n += 2)
	{
		tcs_data[n] = n;
	}

	/* Phase 2 */
	for (unsigned int n = 1; n < m_n_invocations; n += 2)
	{
		tcs_data[n] = tcs_data[n - 1] + n;
	}

	/* Phase 3 */
	for (unsigned int n_patch_vertex = 0; n_patch_vertex < m_n_invocations; ++n_patch_vertex)
	{
		const unsigned int invocation_id = n_patch_vertex;

		tcs_patch_result[invocation_id] = 0;

		if ((invocation_id % 4) == 0)
		{
			tcs_patch_result[invocation_id] += tcs_data[invocation_id];
			tcs_patch_result[invocation_id] += tcs_data[invocation_id + 1];
			tcs_patch_result[invocation_id] += tcs_data[invocation_id + 2];
			tcs_patch_result[invocation_id] += tcs_data[invocation_id + 3];
		}
	} /* for (all patch vertices) */

	/* Time to do the actual comparison. */
	for (unsigned int n_patch = 0; n_patch < m_n_result_vertices / m_n_invocations; ++n_patch)
	{
		bool	   are_equal				 = true;
		const int  n_points_per_line_segment = 2;
		const int* patch_data_int			 = data_int + n_patch * m_n_invocations * n_points_per_line_segment;

		for (unsigned int n_invocation = 0; n_invocation < m_n_invocations; ++n_invocation)
		{
			if (patch_data_int[n_invocation] != tcs_patch_result[n_invocation])
			{
				are_equal = false;

				break;
			}
		} /* for (all patch vertices which have contributed for given input patch being considered) */

		if (!are_equal)
		{
			std::stringstream logMessage;

			logMessage << "Result data for patch [" << n_patch << "]: (";

			for (unsigned int n_patch_vertex = 0; n_patch_vertex < m_n_patch_vertices; ++n_patch_vertex)
			{
				logMessage << patch_data_int[n_patch_vertex];

				if (n_patch_vertex == (m_n_patch_vertices - 1))
				{
					logMessage << "), ";
				}
				else
				{
					logMessage << ", ";
				}
			} /* for (all patch vertices) */

			logMessage << "expected: ";

			for (unsigned int n_patch_vertex = 0; n_patch_vertex < m_n_patch_vertices; ++n_patch_vertex)
			{
				logMessage << tcs_patch_result[n_patch_vertex];

				if (n_patch_vertex == (m_n_patch_vertices - 1))
				{
					logMessage << "). ";
				}
				else
				{
					logMessage << ", ";
				}
			} /* for (all patch vertices) */

			/* Log the message */
			m_testCtx.getLog() << tcu::TestLog::Message << logMessage.str().c_str() << tcu::TestLog::EndMessage;

			/* Bail out */
			TCU_FAIL("Invalid data captured");
		} /* if (!are_equal) */
	}	 /* for (all patches) */

	return true;
}

} /* namespace glcts */

redpajama_set_name: RedPajamaGithub


Accidentally Ever After by USA Today bestselling romantic comedy author Dakota Cassidy is a fairytale romp complete with fairy godmothers, an evil queen, woodland creatures, a Jersey salesclerk on a mission to find Shamalot, and of course a handsome hero. This laugh-out-loud addition to the Accidentally Paranormal series will get you in the holiday spirit as the girls from OOPS strut their stuff in a land far, far, far away.
Antonia Vitali's on the run and in hiding, working as a salesclerk in a designer outlet mall in Jersey. Toni's life has been on a steady downward decline for three years now, the ghosts of her past always nipping at her heels.
Little does she know, her life's about to change when the OOPS girls whisk in for a day of Christmas shopping and fall through a wormhole in the store's dressing room, taking Toni with them!
Now Toni's got a pair of sparkly purple heels gifted to her by the Good Witch of the South–gorgeous heels she can't take off until she returns them to the king. With a trio of reluctant fairy godmothers and an ogre named Dannan, Toni's on a mission to get to the castle to receive a happily-ever-after she never asked for. Along the way, she meets an amazingly handsome, utterly chiseled stable boy named Jon Doe, who offers to help them navigate the Not So Sherwood Forest and get them all to Castle Beckett before Christmas Eve.
But if her happily-ever-after is at the castle, why would she rather make time with the stable boy? And why does the evil Queen Angria want Toni's head on a platter? And how in the world has she developed her newfound, peculiar…um…talents?
This hilarious romantic comedy is a wonderful addition to your romance library. Accidentally Ever After is a paranormal holiday fairytale.


A woman was bitten by a small shark at a Boca Raton beach. She was transported to the hospital with the shark still attached.
BOCA ROTAN — Beachgoers in Florida witnessed a shark that became very, very attached to a woman's arm — so much so that it wouldn't let go. Others are saying the woman got what she deserved — and a shark unnecessarily lost its life.
The nurse shark bit the woman and would not let go, not even when she ran out of the water or when another beachgoer rushed to help her and killed it. And also not when the woman was loaded on a stretcher with a splint board supporting her arm.
Witnesses say one or more people were agitating the shark in the water, with one person say he and a cousin saw a group "holding the shark by its tail. They were messing with it," 11-year-old Nate Patcher told the Sun Sentinel.
It happened at a Boca Raton beach on Sunday.
The good news is that the 23-year-old woman was taken to a hospital where doctors removed the shark and she's fine. And it was a nurse shark — not a menacing Great White. Pretty sure she wouldn't have been able to run out of the water, were that the case.
The bad news is the two-foot shark chomped down on the woman's right arm, and died holding on.
Nurse sharks are common in offshore Florida waters and can grow up to 14 feet in length, so this one was fairly small.
That makes a bunch of us.


text:
Laois Offaly Green Party representatives welcome the Connecting Ireland Plan
Plan to bring public transport to rural villages is welcomed by Laois Offaly Greens.
Laois Offaly Green Party representatives have welcomed the news that rural villages will have access to viable public transport for the first time under the Connecting Ireland Plan published today (29th October) for public consultation.
This plan from the National Transport Authority (NTA) proposes an overall increase of 25% in rural bus services, significantly increasing public transport connectivity for people living outside major cities and towns.
I see this plan as transformational for Laois and Offaly, feeding into the Town Centres First agenda of revitalising our rural towns and improving connectivity. This is high on the Green Party as well as my personal agenda. This is another positive example of climate action, ahead of COP26 in Glasgow next week
said Minister of State, Senator Pippa Hackett following the launch of the Plan.
In developing the Connecting Ireland Plan, the NTA engaged with a range of stakeholders including public bodies and state agencies. The next step will involve broader public consultation including information sessions with local authorities and the Oireachtas and public information webinars.
Cllr Mark Hackett, Green Party Councillor in the Edenderry LEA of County Offaly welcomed the news as
a positive step towards lessoning our car dependency through improved connectivity. For Edenderry, the proposed new bus route links Portarlington to Mullingar via Clonbullogue and Kinnegad. We will know more about the public consultation shortly and I encourage people to get involved as inclusion of all voices will be key to the success of this plan.
John Holland, Green Party Local Area Representative for Graiguecullen Portarlington welcomed the plan
This plan addresses the inconsistency of connectivity between different parts of the country. Sustainable transport is the future and I welcome that this plan, once implemented, will mean that 70% of those living outside of cities will have access to a public transport service that provides at least three return trips each weekday to a nearby town. This is very welcome progress.
More info https://www.nationaltransport.ie/connecting-ireland/