You are here
News Feeds
PRESS RELEASE: XR activists disrupt Schiphol departures lounge demanding end to KLM’s Frequent Flyer Programme
5th October 2026 – From midday a group of 36 activists disrupted Schiphol Airport’s departures lounge, holding a demonstration behind airport security, 50 meters from KLM’s frequent flyer lounge. The demonstration in Lounge 1 demanded an end to KLM’s Frequent Flyer Programme because of the climate impact and inequality it causes. The demonstration took place under the ‘People’s Clock’…
October 5 Green Energy News
Headline News:
- “Ireland’s Heat Study Adds More Evidence Against The Fabric First Trap” • Insulation, draught-proofing, building repair, and ventilation can all be valuable, sometimes very valuable, but that does not mean that every household should complete extensive renovation before replacing fossil heating with a heat pump. The distinction matters. [CleanTechnica]
Irish home (Greg Lauver, Unsplash, cropped)
- “Major Oil Exporters Agree To Keep Production Steady In November” • Seven major oil-exporting countries agreed to keep production steady in November at a time when the Iran war has driven the price of benchmark Brent crude oil to over $100 per barrel. The so-called OPEC+ subgroup will meet again to review oil market conditions on November 1. [ABC News]
- “Gas Build‑Out In Southeast Asia Risks Committing to Less Competitive Infrastructure” • Southeast Asia has nearly 49 GW of new gas capacity planned in five countries. That could expose power systems to less competitive gas infrastructure just as solar becomes increasingly cost-competitive with gas and companies increasingly buy renewable electricity. [Asian Power]
- “Over 35 Million People Under Alert As October Heat Wave Bakes California” • More than 35 million people are under heat alerts as a dangerous multi-day October heat wave continues in nearly all of California. Temperatures are expected to be up to 20°F above normal for this time of year, into the 90s and 100s, from Northern California to Mexico. [ABC News]
- “Pentagon Backs Ambitious Plan To Beam Solar Power From Space” • Space-based solar power just got another powerful vote of confidence. The US Department of Defense signed a contract with Overview Energy to “design, build, and test a homing beacon that will … accurately beam power from orbit to receiving solar arrays on Earth.” [OilPrice.com]
For more news, please visit geoharvey – Daily News about Energy and Climate Change.
Hidden capacity: The overlooked opportunity in North America’s race for power
The fastest megawatt may already be on the grid. Here’s how utilities can unlock it.
Maximizing efficiency: How commissioning and retro-commissioning facilities can strengthen grid resiliency
Utilities turn to onsite power as demand outpaces grid capacity.
How consumers are paying utility bills: 5 trends to watch
Customer payment behavior is shifting. Utilities that aren't paying attention will pay the price. Five trends reshaping the bill pay landscape in 2026 and beyond.
Extreme heat left this student athlete on life support. He won’t be the last.
Matthew Mayich stepped onto the field of Sun Angel Stadium in Tempe, Arizona, at about 7 a.m. on August 20. It was the standout hockey player’s first official practice with his new team, and temperatures were already in the mid-80s.
He and his Arizona State University teammates spent at least 45 minutes doing push-ups, planks, flutter kicks, bear crawls, squats, sprints, and buddy-carries, led by guest trainer and former Green Beret Tim Ziesel. Before leaving the field, Ziesel gave instructions for one final exercise: a medicine ball run.
As temperatures approached 90 degrees Fahrenheit, the players set off in small groups, according to the university’s timeline of events. Mayich appeared to struggle, then stumbled, dropped the ball, and fell. He tried to rise and fell again.
Athletic staff treated him with iced towels and cool water, then sprayed him with a garden hose. Initially responsive, his condition deteriorated, and the trainer called 911. Paramedics rushed him to the hospital, where he remains in critical condition after experiencing what his family’s lawyer, Robert Carey, called exertional heat stroke. Carey did not respond to requests for additional information about the diagnosis, which could not be independently corroborated. He has told journalists the family’s hope for a meaningful recovery hovers near a miracle.
“We want accountability for what happened to our son,” Mayich’s parents, John and Christina, said in a written statement. “We want the truth.”
University officials declined to be interviewed, and Ziesel’s attorney, Larry Kazan, downplayed the intensity of the training session. “The workout was not difficult as some media outlets have attempted to color it,” he wrote in an email to Grist. Head coach Greg Powers insisted during a September 23 press conference that he was still the “right guy’” to lead the team but did not address specifics of the workout. ASU put him on paid leave Wednesday, more than a month after the workout and two days after seven of Mayich’s teammates impugned the school’s report and response in an anonymous letter sent via an attorney. Among other things, they said the workout lasted 75 minutes, not 45, and alleged that the university did not follow its own guidelines.
“The precautions required by ASU’s heat policy were not in place: no immersion tub, no ice chests, no on-field heat measurement, no scheduled breaks in shade,” they wrote, noting that the session “continued after some of us showed signs of distress, including dropping to a knee, vomiting and, in Matthew’s case, visible disorientation well before the final task.”
The St. Louis Blues hockey team selected Matthew Mayich during the 2023 NHL draft. He later transferred to Arizona State University to continue his college career. Jeff Vinnick/NHLI via Getty ImagesA St. Louis Blues prospect, Mayich, 21, had transferred to Arizona State to continue his college career. Instead, he is the latest in a long line of heat-related athletic tragedies that includes NFL player Korey Stringer, who died of heat stroke 25 years to the month before Mayich’s hospitalization. His death propelled heat safety into the national consciousness.
“We have made tremendous progress since then,” said Doug Casa, an exercise physiologist and certified athletic trainer. He is the CEO of the Korey Stringer Institute at the University of Connecticut, which was established in 2010 to focus on safety and injury prevention for athletes, laborers, and warfighters. But he said Mayich illustrates that more can be done to protect players.
Exertional heat stroke is a life-threatening condition that occurs when the body overheats and cannot cool down. It’s a leading cause of preventable sports deaths, and the risk is rising as climate change has made extreme heat more frequent, intense, and prolonged. Between 1994 and 2026 — the two times the United States hosted soccer’s World Cup — World Weather Attribution found that the chance of extreme temperatures “at least doubled” in multiple cities. Grass fields have also increasingly given way to synthetic turf, which absorbs enormous amounts of heat. The surface temperatures at a recent Tennessee Titans football game in Nashville hit 157 degrees. One player rolled his ankle after the heat effectively melted his cleats, ESPN reported. “It was hot as s—,” said another. “I didn’t play a snap, and I had to get an IV.”
Whether it’s an NFL star or a t-ball tot, athletes nationwide are facing this new reality. Some organizations have responded remarkably effectively — Georgia high schools instituted policies that moved them from the deadliest state for football players to among the safest. Others rely on vague recommendations and limited mandates that leave athletes at risk. And many policies don’t address non-athletes who are exposed to the same conditions. Just a week after Mayich’s hospitalization, University of Iowa band member Derek Phillips collapsed during a football game played in temperatures that topped 90 degrees. He later died.
The policy landscape is full of holes, Casa said. Although best practices for preventing and treating heat-related illnesses in athletes are now largely established, consistent adoption and implementation is another matter. “A lot of times they know the right thing to do, but then they don’t do it in the time of crisis,” he said. “Heat stroke can happen at any time.”
The Minnesota Vikings picked Korey Stringer in the first round of the 1995 draft and by 2000 he was selected to the Pro Bowl. The following summer he reported to training camp as one of the best offensive linemen in the NFL. By Minnesota standards, though, the temperatures were scorching and Stringer struggled.
He vomited three times on the first day and left practice early to cool down in an air-conditioned trailer. The next day the heat index — a measure of temperature and humidity — hit nearly 100 degrees, but Stringer, despite vomiting again, completed the session. During a post-practice workout, he slipped, fell on his back, and was brought back to the air-conditioned trailer. He lost consciousness and was taken to the hospital, where doctors recorded an internal temperature of 108.8 degrees. He died of multiple organ failure thirteen hours later. He was 27 years old.
The Minnesota Vikings football team drafted Korey Stringer in the first round of the 1995 NFL draft. Minnesota Star Tribune via Getty Images“It was a catastrophic failure in treating Korey,” said Casa, who was an expert witness in the litigation that followed Stringer’s death, and in numerous other cases. “If they had treated him properly, he probably would have had dinner with his teammates that night, or at least been back to normal the next day. That’s how simple it is.”
Research by Casa and others has found that cold-water immersion is the most effective treatment for heat stroke, and is faster at cooling than air conditioning, which the Vikings relied on. Casa said that reducing Stringer’s temperature enough to save his life would have taken well over an hour with AC, compared to about 25 minutes in an ice bath. “The cooling rates are astronomical,” said Casa. “We get their temps down so fast.”
The NFL would not provide a copy of its heat policy, but it did highlight the strengths of its protocol. Immersion tubs, for example, are required when hot weather is a possibility, as are rectal thermometers, which are necessary for diagnosing heat stroke. It also requires teams to adhere to best practices outlined by the Korey Stringer Institute, submit a plan for third-party review, and rehearse how they respond to emergencies. Exact interpretation is often left to each team or facility to allow flexibility, the league said, and clubs are encouraged to implement additional precautions whenever they feel there is a risk of heat issues.
“I don’t think we have ever had a case where a team didn’t comply,” said Allen Sillis, the league’s chief medical officer. “The NFL has really taken a leadership role since Korey Stringer’s death.”
Professional sports have largely standardized how they measure heat risk. Weather reports typically include temperature and heat index, which accounts for humidity. But the gold standard for measuring heat stress is wet bulb globe temperature, or WBGT, which also considers wind, sunlight, and radiant heat. “WBGT is a much better indicator,” explained Jordan Clark, the co-founder and chief climatologist at Klimo Insights, a heat safety and weather app.
Leagues still differ on their use of the metric. The NFL, for instance, requires teams to use WBGT but doesn’t specify exactly how. On the other hand, the National Women’s Soccer League mandates hydration breaks starting at a wet bulb globe temperature of 82.3 degrees and game delays when it tops 91.1 degrees. Teams that don’t comply can be disciplined or sanctioned. The NFL doesn’t enforce strict WBGT thresholds, so teams have the flexibility to invoke heat precautions more often.
Not everyone’s attempt to address heat has been well received. FIFA required water breaks during this summer’s World Cup, even in air-conditioned stadiums, prompting accusations that it was creating commercial breaks rather than protecting players. “We had FIFA basically make a mockery of heat rules for commercial value,” said Nicholas Watanabe, a professor of sport and entertainment management at the University of South Carolina. “Heat rules should exist specifically to protect people from heat.”
Policy differences aside, experts say professional leagues generally take heat seriously. The larger gaps emerge at lower levels. No federal regulations exist on heat safety in sports. Organizations like the National Federation of State High School Associations can and do provide guidance, for example, but states and even school districts can choose what to adopt. The Korey Stringer Institute has scored each state on its heat policies, awarding a maximum of 20 points for mandating things like requiring heat acclimatization, assessing wet bulb globe temperature, and making cold water immersion tubs available.
.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74{--gv-text:#3C3830;--gv-text-2:#747473;--gv-grid:#E0E0E0;--gv-halo:#FFFFFF;--gv-axis:#3C3830;box-sizing:border-box;position:relative;width:100%;text-align:left;font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-weight:500;font-size:16px;line-height:1.3;color:var(--gv-text);margin-top:1.5rem!important;margin-bottom:1.5rem!important;padding:0;letter-spacing:normal;word-break:normal} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 *{box-sizing:border-box} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 div,.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 span{margin:0;padding:0;font-size:inherit;line-height:inherit} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark{--gv-text:#F0EDE6;--gv-text-2:#B3ADA3;--gv-grid:#4A4640;--gv-halo:#1C1B19;--gv-axis:#B3ADA3} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__header{margin:0 0 12px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__title{font-family:"PolySans", Arial, sans-serif;font-weight:500;font-size:24px;line-height:1.2;margin:10px 0 6px;padding:0;color:var(--gv-text);text-transform:none;letter-spacing:normal} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__subtitle{font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-weight:500;font-size:18px;line-height:1.35;margin:0;padding:0;color:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__hl{font-weight:700} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark .gv-pasted-data-ec2u-9qnw74__hl--dk-primary{color:#F0EDE6!important} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark .gv-pasted-data-ec2u-9qnw74__hl--dk-muted{color:#6B665E!important} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 8px;padding:0;font-size:14px;line-height:1.2;color:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-item,.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-item:hover,.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-item:focus,.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-item:active{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:6px;font:inherit;color:inherit;background:none;border:0;padding:2px 0;margin:0;line-height:1.2;text-align:left;cursor:default;box-shadow:none;text-transform:none;letter-spacing:normal;border-radius:0;min-height:0;min-width:0;height:auto;width:auto;text-decoration:none} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 button.gv-pasted-data-ec2u-9qnw74__legend-item,.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 button.gv-pasted-data-ec2u-9qnw74__legend-item:hover{cursor:pointer} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 button.gv-pasted-data-ec2u-9qnw74__legend-item:hover{text-decoration:underline;text-underline-offset:3px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 button.gv-pasted-data-ec2u-9qnw74__legend-item:focus-visible{outline:2px solid #3977F3;outline-offset:2px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-item--off{opacity:0.35} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__map-label{font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-size:11px;font-weight:500;letter-spacing:0.02em} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-label{font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-size:12px;fill:var(--gv-text-2)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-key{font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-size:14px;fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__place{cursor:default} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend-axis{font-size:11px;color:var(--gv-text-2);margin-left:2px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__swatch{display:block;flex:none;overflow:visible} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__chart{position:relative;width:100%;margin:0;padding:0} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 svg.gv-pasted-data-ec2u-9qnw74__svg{display:block;overflow:visible;max-width:none;height:auto} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 svg text{font-family:"Basis Grotesque", "Basis Grotesque Pro", Arial, sans-serif;font-weight:500;font-size:14px;fill:var(--gv-text);letter-spacing:normal} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__ticks text{font-size:14px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__cat-labels text{fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__grid line{stroke:var(--gv-grid);stroke-opacity:0.7;shape-rendering:crispEdges} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__baseline{stroke:var(--gv-axis);stroke-width:1;shape-rendering:crispEdges} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__zero{stroke:#888888;stroke-width:1;stroke-dasharray:4 4} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__line{fill:none;stroke-linecap:round;stroke-linejoin:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__line-halo{fill:none;stroke:var(--gv-halo);stroke-width:7;stroke-linecap:round;stroke-linejoin:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__segment{stroke:var(--gv-halo);stroke-width:1} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__point{fill-opacity:0.85;stroke:var(--gv-halo);stroke-width:1} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__ring{fill:none;stroke:var(--gv-text);stroke-width:1.5} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__dot{stroke:var(--gv-halo);stroke-width:1.7} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__dot--pulse{transform-box:fill-box;transform-origin:center;animation:gv-pasted-data-ec2u-9qnw74-pulse 1.6s ease-in-out infinite} @keyframes gv-pasted-data-ec2u-9qnw74-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}} @media (prefers-reduced-motion:reduce){.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__dot--pulse{animation:none}} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__value-label{font-size:12px;paint-order:stroke fill;stroke:var(--gv-halo);stroke-width:3px;stroke-linejoin:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__axis-title{font-size:12px;fill:var(--gv-text-2)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__direct-label{font-size:13px;font-weight:700;paint-order:stroke fill;stroke:var(--gv-halo);stroke-width:3px;stroke-linejoin:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__donut-title{font-size:16px;font-weight:700;fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slice{stroke:var(--gv-halo);stroke-width:1.5} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slice-label{font-size:14px;font-weight:700;fill:#FFFFFF;paint-order:stroke fill;stroke:rgba(0,0,0,0.25);stroke-width:2px;pointer-events:none} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slope-head{font-size:14px;font-weight:700;fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slope-axis{stroke:var(--gv-grid);stroke-width:1} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slope-line{stroke-linecap:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__slope-label{fill:var(--gv-text);paint-order:stroke fill;stroke:var(--gv-halo);stroke-width:3px;stroke-linejoin:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__dumbbell{stroke:#C9C5BD;stroke-width:3;stroke-linecap:round} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark .gv-pasted-data-ec2u-9qnw74__dumbbell{stroke:#6B665E} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__cat-label{fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__overlay{fill:transparent;pointer-events:all} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__rule{stroke:var(--gv-text-2);stroke-width:1;stroke-dasharray:2 3} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tooltip{position:absolute;display:none;pointer-events:none;z-index:5;min-width:120px;max-width:260px;padding:6px 9px;background:rgba(255,255,255,0.9);border:2px solid #888888;border-radius:4px;font-size:13px;line-height:1.35;color:#3C3830} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark .gv-pasted-data-ec2u-9qnw74__tooltip{background:rgba(28,27,25,0.94);color:#F0EDE6} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-title{font-weight:700;margin:0 0 3px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-row{display:flex;align-items:center;gap:6px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-row i{display:block;flex:none;width:10px;height:10px;border-radius:2px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-row span{flex:1} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-row b{font-weight:700;white-space:nowrap} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__tip-more{color:var(--gv-text-2);font-size:12px;margin-top:2px} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__note{color:var(--gv-text-2);font-size:12px;font-style:italic;line-height:1.35;margin:8px 0 0;padding:0} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__footer{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:8px 0 0} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__credits{display:flex;flex-direction:column} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__source{color:var(--gv-text-2);font-size:12px;line-height:1.35;display:inline-block} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__credit{color:var(--gv-text-2);font-size:12px;line-height:1.35;margin-top:3px;font-style:italic;font-weight:700;display:inline-block} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__credit .gv-pasted-data-ec2u-9qnw74__credit-link{color:inherit;font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border:0;box-shadow:none;background:none} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__logo{display:block;height:auto;max-width:62px;min-width:50px;width:62px;margin:0 0 0 auto;padding:0;transform:translateY(-2px);overflow:visible} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__logo path{fill:var(--gv-text)} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__logos{display:flex;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__logos .gv-pasted-data-ec2u-9qnw74__logo{margin:0} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__partner{display:block;margin:0;padding:0;border:0;line-height:0} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__partner img{display:block;height:22px;width:auto;max-width:110px;margin:0;padding:0;border:0;box-shadow:none;object-fit:contain} .gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74.gv-pasted-data-ec2u-9qnw74--dark .gv-pasted-data-ec2u-9qnw74__partner--invert img{filter:brightness(0) invert(1)} @media (max-width:600px){.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__title{font-size:21px}.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__subtitle{font-size:16px}.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__legend{font-size:13px}.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__ticks text{font-size:12px}.gv-pasted-data-ec2u-9qnw74#gv-pasted-data-ec2u-9qnw74 .gv-pasted-data-ec2u-9qnw74__logo{width:50px}} Beating the heat High school heat safety policy score, U.S. states Points are awarded for mandates such as heat acclimatization, use of wet bulb globe temperature, and cold water immersion tub availability. Higher is better. Source: Korey Stringer Institute, University of Connecticut Clayton Aldern / Grist (function(){ var K="__gv_pasted_data_ec2u_9qnw74_initialized__";if(window[K])return;window[K]=true; var ID="gv-pasted-data-ec2u-9qnw74"; var SPEC={"version":1,"slug":"pasted-data-ec2u-9qnw74","type":"map-states","data":{"xKind":"category","x":["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming","District of Columbia"],"series":[{"key":"EHS","label":"Policy score","color":"#12A07F","values":[7.125,2,15,9.75,11,1,10,13.375,20,20,7,2,15,2,13.375,11.375,18.375,20,0,5,13,2,0,6,8.125,2,7,15,20,20,11.75,4.75,20,2,2,8.5,5.5,2,8.375,14,8,18.75,11.375,15,18,3,3.125,8.75,5,1,15]}],"map":{"geo":"us-states","ids":["01","02","04","05","06","08","09","10","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","11"],"matched":51,"rows":51,"pr":false}},"text":{"title":"Beating the heat","subtitle":"High school heat safety policy score, U.S. states","note":"Points are awarded for mandates such as heat acclimatization, use of wet bulb globe temperature, and cold water immersion tub availability. Higher is better.","source":"Korey Stringer Institute, University of Connecticut","credit":"Clayton Aldern","altText":"Choropleth map of U.S. states shaded by high school heat safety policy score, from orange (lowest) to blue (highest). Southeastern states, including Florida, Georgia, Louisiana, Tennessee, Kentucky, and North Carolina, score highest, along with Vermont, New Hampshire, and New Jersey. Most northern and Mountain West states, such as Washington, Montana, Colorado, Minnesota, Michigan, Pennsylvania, and Ohio, score lowest."},"style":{"paletteId":"single-fuchsia","political":false,"background":"white","yFormat":{"prefix":"","suffix":"","decimals":null,"multiply":1},"xFormat":{"prefix":"","suffix":"","decimals":null},"yFromZero":true,"yMin":null,"yMax":null,"valueLabels":false,"endDots":true,"imageFill":null,"width":"column","height":400,"yLabel":"","xLabel":"","highlight":null,"legend":"top","xFromZero":false,"xMin":null,"xMax":null,"rightAxis":[],"rightFormat":{"prefix":"","suffix":"","decimals":null},"rightLabel":"","rightFromZero":true,"donutHole":true,"partners":[],"map":{"method":"rounded","classes":5,"breaks":[],"palette":"div-azure-orange","reverse":true,"midpoint":10,"continuous":false,"labels":true,"symbolMax":18,"noDataLabel":"No data","thresholds":[5,10,15],"stops":[],"colors":["#F79945","#F6C390","#97B2E7","#3977F3"],"domain":[0,20],"categories":[],"sizeTicks":[],"projection":"equal-earth","sphere":false,"graticule":false,"center":[-30,20]}},"meta":{"toolVersion":"0.2.0","createdAt":"","updatedAt":"","fallbackPngUrl":"","review":null}}; var GEO={"id":"us-states","w":975,"h":610,"ids":["53","16","30","38","27","26","39","42","36","50","33","23","04","06","35","48","02","22","28","01","12","13","45","37","51","11","24","10","34","09","44","25","41","15","49","56","32","08","46","31","20","40","19","29","55","17","21","05","47","54","18","72"],"names":["Washington","Idaho","Montana","North Dakota","Minnesota","Michigan","Ohio","Pennsylvania","New York","Vermont","New Hampshire","Maine","Arizona","California","New Mexico","Texas","Alaska","Louisiana","Mississippi","Alabama","Florida","Georgia","South Carolina","North Carolina","Virginia","District of Columbia","Maryland","Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","Oregon","Hawaii","Utah","Wyoming","Nevada","Colorado","South Dakota","Nebraska","Kansas","Oklahoma","Iowa","Missouri","Wisconsin","Illinois","Kentucky","Arkansas","Tennessee","West Virginia","Indiana","Puerto Rico"],"codes":["WA","ID","MT","ND","MN","MI","OH","PA","NY","VT","NH","ME","AZ","CA","NM","TX","AK","LA","MS","AL","FL","GA","SC","NC","VA","DC","MD","DE","NJ","CT","RI","MA","OR","HI","UT","WY","NV","CO","SD","NE","KS","OK","IA","MO","WI","IL","KY","AR","TN","WV","IN","PR"],"arcs":"W2yDwW9B2IfmEvB0GvD6PFUS6BEkBHSPOO0B0CAAnGtB1IhCtFpBhBQrCRvCHZQ3CF_BGlBOVFXEdFrBTRIpBAjBIrBPdELFBZRP5ChBtBDVLXEnBQhDIVPZHdXnBNPVK1BBRIZEtBJRFtBxBzBVDkOAAnBCVfPlBnBDPJDRZILJZONJJdJFLQLBQjBoBhECqBLgBJwBQIQXUaEHVfWbHnBQOGjBWAMMXlBVDDQfbIhCKHCgBOKAbuCHdTZHCVXNLGHiBNGQxBOzCDjBJdOzCChCEZLTCPNNBRPVClBIxBDhBUNAPWZJjBqBWqBwBeaOEccOYoCgBcEeWuBWyBQkBRSgBBcMMGVWEMiBKAJVIRgBACMPMQoCIYNGdaZqBNBUlBGb3BqCpBcVaVOXmBYM4BFQP9BOPPsBvBeZgCPSbqBhBUIAzBUYDiBCkBVAVQLVAgCJIJlBHQMURQsBLGed0BCMRKDgBdZabhBILSAaVYAtBMHGdFJPabKRehBciBHZeQHCYOdeHSqBaLiBbYrBUeQBFNgBJKRFZGRBpBMHGSCbNLUfAZOXSLObkBJMPNDVjBBPGnBNNNQDWQYGWhBrBDTGjBgBGGMMRANhBnBFdXIFNIPHJYFIcILQWGDEbNdaUKHJ3BORFNRHTSCRT_BKTNDWT-EsB-F2BgImCiKyCgEgBiIgCiGuBkFkBIl3BnOQERECHKlSofEQLYDXMPUiSrIOYjBMQZNGJSHLUpBQNCiBOEzCLMLPIdMRKMFoBKHnHICDqBLTIX4B-C0CAMPQNFAfRAJLDpBKXBPPCNdCTuBxBUBBUOWDMTNXUXCiBWCoBJuBGEMfeqBCUQzCnIMSJQRHJTUjBMDFiBI-BbFSFXMGQpDKKWTDbjBElBSFgB0BPKYkDvBhBKBjBLQGcVBHXJQBTkBVWGacKkBIJDJbGBOiBKxG8TKGPUHLONMjBxBDiBLIFdIROGIrJ8MWiBPJFXIqlCvW-CWiEciCOwGAA7CyNY4BScEcYsBBQGcTQUmBbSkBeQmBuBeOmBUaIa4B8CDiBmBmBFYaHSQHUUSaEoBFGWNsBTIGQV4BVeAkBVOKUNWCaQOHSEULOXCXYMmBFSPOFacKgBoBWBSRiBFYVUJCPOEQcUOGQJUOQHeKeDiBc0BEiBOGQ8BVaQqBWeaFUKUgBMsBLQSmBFiBqBuBMDDPcXaDkCaOKQBSdeHuBWmCCUSoBJmBGgBMLPGbQHEXaLUOWkCaoBSKIAA7DmYVsEhB0GKAA7DTzJzBxLhC3FjBKAAxJ7BzHxBvJhC5DZkCAAyF7YATaXa5BFZSJQfPRAXXAJPTGNRErBMlBmBhBGRsB1BiBPmBtBOzBsBrBiB1BIbuBtBQdSNGbJzBpBrBTJRlBDpBe6QvnBiI2BiGoBkIyBkGkBkGiBmK2BoK0BoKwBmIiBoIgBmGYoKiBoIawFQIAAH0ClDwlBF2CIAAb4KFyCFAWAAtHVxHXxHX1IfvGZzIjBrFXvGdnL1BjBgHSwrCz2BgLaqISmGMmGMqIKqKMoGGyHEoCAAAKkBwEP0BIuBFYIqBDyBGiBWiCKMDWGcMQSsBIsBEqBFgBIOB6BGqBBqCIcOKHWDqBEaDkBMUOqCiByBAmBKeCgBFmBGiBUAAlJBlJFlJJlJLzEFlJP7GNtLb9EL-E4jC1nB6EAqICmGBGHB_ESGkBAmBQIMG4BgBwDAwBIMcYiBK0BFYcsDEMIKiBQMwCNMZ6BP0CEeQoCQGQXKCQ2BBUWCeaqBcHFbONgBFiBGMgBQOgBOaCYWASkBGCOaDSIULaD8BxBsBbaCU0BaGiBJSIqDViBGemBYKeN0BCfiBjD8BnE2BrCuBtByBTKvEuFVMVebUNUdS7B0BDQkDAAZaBSZIKkIVaVBJSRCNQpBWTkBFcbcDuBGQqBIMeQUCQLkBNOD0BGkBNOKeGmBFQCgBLecUiBkBQK-BKUUUe4BKyBsBoBmC8BuBmBCWQSCWiBWKGsBMYAuBI8BBQOAAzGK_JM_JK_JE_JEzGBWAAEvZLXXTlBHZtBdpBGRiC1BSpBInBiCs5CmIRFXZDbUxBNNXObEHJCbQVFhBIPLZGPlBdbJXCRPKTJXXNvBDhCRfMZJjBC7CrB_JhCd_BJJxBPHR-IAA4D3B2B3BMH6DXyBjBchBWCcJWtB6B3BQDCmBgBIKMDWWMGSH8BKWUZsBrBcPbePkBclBqBLyBAiBGWUgBIMcYYakBUIGaMMoBCiBHILWHOEeiBWHONiBYUNepB8BlBoBjBSG6BV2DBOD0BhBcNyBDaJNeA2BGOJUQSUJkBSQBmBXgBgBWNSfWHOIgBXcGJsBWkBDIhBFGaOSVUOQgBHEKaCDaSSkBMBUjBG_BDpBGfFXMDPlBHFeLUEqBdFJPTFlBjBxBNbAZL_BMf2BnBEhBIDWTJfD1BOLOT4BrBabuBGYZLHNWzBUAEnBJJfahBHAORyBdOJFBdHPIdJHNqBH2BXQb-BP4B5BuDNKEeIuvBirB1IwBvDQ3BKKAADbxFU1JgB_FUuKAAmBhBUZOdc5CgB7BUjCGhBGtDLzDX9BXzBWXfI9B5DPlBEhBWpBAPNxBCLZjBARelBkBlDETHhBGpBPtBELaTUAAtCcFObeMIHOtBUZMhBePDWLMMkBRmBOAL6BUcG3BKLCdOMDqBNsBKEcpCGlBApBN3BCPQZuBf8BJWVjBBRNNXBfENabMZRN4BBMRiCYqBWqBFgBKcaUewBDkBWoBEQO2BGsBeDUUcMEIoBQMVAPNPKDeKUiBYOYO6BDmBMgDFmBLCRWXMDQA6BDUZMDSnBGLIN0BCmCQUgCWOCWXQjBSIU1BCRQXXFcHUdYDYNQTiBLmBOaSUYYwBmB8DOiBSuCcsCakBCQHeDuBGSD-BPkBVJDjBZFfcQWZWBcGWDWLShBQVmBFQJwDNGGWPCFYLGLgBCWLOmB98BvzCPMrCoBPQcBhCkBZLSXTAcVoBb6BdsBlBUAaVGInBmBEOLOOwVoUVAJhBQHKOFQMM4B_LpMPKnBAnBOcKhBafoBTSEQNGNUXyBTZQbElBPSKOPKLLfFAlBYVapBsBhBkCZoCFYKKQMmY-WXWRHOrCSKK0BIErCRADPWQIlDiGRXQKCOgBkWjLFaNGlBFJIbCTTDPUMgBZCPLLcDWMIUUOK3I0BNDEPYSNCQQyCLUXBhBbGFqBGCLUWI7PsMHQDXMIMkBbJGVbMNQOEWMsQvSHGTVCRWOEUIuRk5BHECpBGmBIsbpCsBwIYuEgB-FqDAATQVEHOiByBBoBICEqBLQN8CE-BPEGUHqBJKOQDyBVShBkBRmBdebOJOPBNRTGVcDiBhBGPmBCqBTQSQKsBXBBSPUJHETJRdPRMTyBFsBLMMeMuBdMFOH6BdKbQdBkCAAPXbVvBRNPRzBLAjBUVYHUlBITMZXbAfNXMLaVCpBbRTnBHlBKnBJLLLjBNLRhBfJNRXCbQNCfbhBaIAAtDnfFhBRzEqC-NpCeKWFiBasBGeacGSDOZSSYDGMnBQNBdKFKbIkBBMIeVoBDgBCqBWWFWVkBJYRqBT4BCaLSCWN-CvDiDjCqBTIJsD7BoBkHpFU4D6IvBsIxB6J9ByFjBsI3BwEfeQMeWDmBOFQUGAYMwBgBqBsBUuBDYgBwBAAXSNeFsBXqBHcfkBkBkBFuBRGFQMgCKUgBBSuBWSMHOWWMoC8BJSVMbaXgBOAAbaBiBdYRAbWHSMAAZHjBGXQPSLgBMAAhGqBxI4BrHuBjGmB_KgCIAAlEW9GmBjChNQjD7SsBZyBnBiBrBLYkBXmBjBmBX0Bo4BtzBIUA0BSQEmCKiBiBoBAyBKaEeJODsCOSMmBKOEaOgBFwBGaOCETSFYckCuJAkBOWIAAAEF2JKIKAA-B4KccjCmCmBoBgBAAFYLCLYLkBKKpBOFpDL1BLTZTDXHOMcWWWsCIAArCZvDlBvDlBqEz2BrCmBnBWLabapBgC1BchCiBbMTDVf3BKhBLJjBCNFAdLvBUHoBXiBNSNiDhByBBmBN4DAuBacA0Bb-DTMKCTgBNWVOEIdUZeXSZcAaNOZJNJzBVjBTJUXIQQdARWTNDLMTESlBdFTabTBPuB1BkBbqChDLVUrBsD5EmBlBqC3B2BF6H7BqFpBMkI47BFoBLKBZM7BIkBMyHQVGtCwBCHkCpBeDShJoCOJOSJYpBkBDRKLBfUFOyMvEYNlC2B9BmBDBiCnBuBjBmF4IjHUHTUtBmB5CyCRICNRGIMNQhBUZCJOhBaFHPQVCrBiBZBJQdS7BaZYHJLSsBFrCUlBcAFsBfGJXHRUIMhBQXbGbUvBSCaNIVMKJZSAKOBjBkBPHOaAJdUCGMUDHN0BAOHEVSHoDX4BZkBnBgBvBQNSCLUHHboBMMlBgBZqBqBDOJUtBMDFNYIIVUMEXWUSLYdMBItBrCLJgBNTYK9CkDUAIUdCCVIgCdUEBWRZMzrCzKNLBZQFSOReI0Z5YkBNVeNPKbgBOPOCPSLDIG0DNcDNSNIkZ7TsDb4G3B4HhCgCAAHISuBRwBBesB4BJQEYPkBdeLWpBULeO-BCgBHkBIMNsBAwBVkBEoBLyBYmDDUEqBIcC2BJKAuBOcaSEMIAAvEebI1CUWuJ3jBDPIdEtBPFQJMZMFgBKUDMbOAA2H0XQwCuBoBUKGiBkBcKAAOEAaJgBBiBSAAjBGbWNWVKFcdgBnFmBvGuBmOsE_mBQVWAYiBOhBJlBOTeMIVZLHPGfUpBuBzBJZWnBKbDPVNAZHFMjBTbGjBILBXajBALNhDATiE9LKLyBBGGImBSiBuBOmBhBiBNYfsBNEbOHiBC4CoBoBgBUEIU0EwOMMDaOSDeMccBWQmBCeJSgBPWiBoBAyB0BoBOCQbYEQYWQCOeWBURBAaVAkBSIPQONZaMKQJaLEFaPmBXEIKZFHVJOGcDORXGWTGPNBUIeTKHNLiBPLDVHYDTPIHUQYLCIoBRbGaLJJbBSOeLMFYNNVtBPDFOHTBaRTRASQEObCLgBNhBPCUgBFOHTHQPCQUAUOGCajBPPEZJROBXOBFNULLNPeHVGtBVDAyBLDbgBciBPWFsCOkBLKBUJBAaTSEnBTmBBRTKJlBLiBA2BFYPZGcLLHfBhBDgBOoBRKZlCP-BWQAeFKrB9CCjBLOLmBUDY6BOYHiBPVDhBJPLIOQJKPoBIzBDHFoBLQM1BPOCRdkBRcJeGQNOYDKgBTIHQNEImBKJb6BTMLiBKSLkCVHDUI-H1MLNMHAWIVnCCoBLFKhBK8J5EIcNKFXMNKnCHLSXDSXSKKiErBBOhBBKPaEIvFQFTKJDeK4D3CGOPDAVKMK5DUGKHUHTKJKoM7EBKRXIHMWIiC_CGGNEIJIgB7EBNWQTBM9NyQYAFaTBRZUCUqB5CQSLKOKPMNDHTKDDRODYmDrDcYCWXOLDMYFOdFLPEzBOTYAwC_wPo6FSNmBQQAKdWLINExBRbtBRHRSxBCZJVOZDXkBBYhBUPSzBOPBPGzBKHFXwBnBSfOBsBTyBdEVpCtCEdNfCVN1BPJFrBLLG3ByBAAAVMJBdUBIPIpCNvCMTGdFpBGvBOTP3BQtBkBPeDoBYgBASwBMMqBBYvBUXkC_KQAA8GqBsK8BkFc0IuBmFauK0B0ImBIAA3CkU5CiUvFkoBcAA7EVlKvBrIpBVF7E5CjJnFhJnF9IpFpJ1FOVCTYVQX-PAAzGXhGV5Hd9HhBElBFZTLKLMKIsBKDFfXVTGIlBDZQRCxBD3BJbjB3CZfPbZZJVflBfbdzBZVPINPTanBbBPUXH3BHXRXrCNXILRdLxBnBNDXdJfARjBnBRdzBjBjBEZRhBDLPbTdFNJ5BNhCHFhBTVPDFPevBFbUpBNbczBIvBPTXAXZLZUfOAN3BfPXvBNrBlBXB7BhB3BErBXXJvBXtBfhBNdI1BBvBMNLLWXMWWJOTYzBJ7BTdPIZDhBXXtBZ9BJLEZUtBFhCNVGbUbG1BoBBKoBPGHkBESiBWKaWQGWUIBXJDHlBEnBXrBSBjBVGPMBBlBTFFbIGSTYGeNWYaFcEmBSOOwBUFNWRYAESTEGOSRacALRNDPlBHLQPGNJsBbvBQLHdBXXIPRDlBgBrBZDRbdHIfACSPYQURCHSQaRSVCJVZfLETfHZXXbAEMVHUTalBArBS4BOUZ3CLZNEErBFdhBnBVfLzBb5BNTd_BGRUZC9BFRE9BBLQpBclBKjCDNE1BNTBTT3BLNBjBTPFThB3BMXCbDfQbqBzBmBpBNYQEanBSCSNVLjBmBBDedahBUrBHLEjBUPYrBc7BKtCDdEhBNDNVYbUvBCREAAAAMAA4KoD8HoCyK-CoFuBgIiCWAA3KypB4F4I8D4F-F2IkGwJqGwJmEwG2FyIgDyEkFsHQlxBgVbGVbJhBJ3BQIS0BkB0BOtLnJQUPEXNDTOBOMY0LSTLFTYG2BuBOkBJQPNfHDLGfJFUnP5MBWUGBUJBtBKTRRpB6BGUBKpDhBIQvBRkBJEMekJ2CPKjBDXGvBPHVGJPPIHkBWSEWWSIeLKQI4NoHLSANMDUgwDhaqGcqGasIgBsGYsIeuIasGUyKcqGQIAAD4BHyDD6BYAAPG7CmkBlC2bxKbzKd9HXnFRtIbI0BKceeMAADB1KnBxJnBZsG9JpB-FguC_hC0HQ6FM-LWsIMjBwbYBUK8BgCMQcGWLmBQQBGdQAGOWGIWSUBoB8BQeBaS6BSaJeEekBcASZ6BEoBHGGAyBwBQBuBcQgBLuBpBcCMkBmBEEagBCcTKKWXMSJmBOWUGMlBCXWCMlBaFKGMeWCSMWDQbSGGeaMGMgBAgBoBObgBASbSHaBmBXcUiBDAPWAqBZUMBOqBMeAKLYDETOHYKoBeaGoBwBsBKSSiCSSCSAAWamBOKRaKOJkBGUMI4HoCAAIuOaecUaqBKkBD4BSWWKHOQOGUQSHSSYQmBQABsBSYXQQeNUCkBNaBWRSHiBPQK0BRcCcOUBYIoBDefsByWAAVAZ2BBqBYWAWpCA7BetBS9D8BhBkBPJgBdeNUPgBDbRRK5BOBJQdKnBFXPNXAZ2BREHNdNNNDSeQJWKKNcQOeGVOIUKHMSaMZAPeHDtB0BTORLGyBDUnBetBuBPEnCyBjBMxBC1BUBYKC2BfeFtBeZOpBKXS9BeYVmChBANPDzBYbGkBVhBBOXlBGZURXETNAJPKkBAUSIdMAPPKDPVANhBZDCUSeBSiBOMSZKEIeJaQAKjD0BNDHfflBGkBTLHGamBHYGQlBqBZKOdFfNWESJSTBCfVSZKfgBSKQQKXiBLBa_B8CJGXZjBIDF9BAOQoBEDMQckBQAMZ6BjBiDrBYHFgBVLDCV5BsBDLdtBXTOiBcmBNMbFWOYBMMsBIgBRB-BVMGmBbGBiBcaDIVTDiBSEKUYsDJ0BQSWMDeSKCgCOKaENKFSKUUPGVIBGyB1BCRQREEchBBHRdHdZLRVLjBDNJ5BCdDVIFLbCdFfPNVPBEN1ChBZKnBdCHXVnBAbPRCfFHNIPJXTHFnBX5ChBtBPLHbXTOjCDPPZNFKLKnBAXLJCfjBhBTEVLNbvBnBJfGLlBpBjBrCvBZDPNDPVEPRZHxBMFXLDZjB1BHrBRdVZAbN7BLDXXCPTbRJTVlBZHfjBPjBfEXNFVIGVXNPjBCLVFXKHZNSVA9BLDHfBRGPJ1BEjBXTDXTVUPepBFpBOZAhB-BHEdkCAiBRIJeQWlBUHFTclBcJcJEjBJXBNRNGnBdVfxBPnBdDT1BLvBXxB1BFRTTfHhBZDLbbJ1BRXDXNZDpBOnCXjBV1BLPH_BRdPDHbbPPXjBbxBXRXvBzBLfZbjBbfzBVTbjB5BdPNXxBFfNhBZVbHmBuuD20CMsBCeJRJ_BNrBDhBPlBZ9CEFPbGdFjCAhBIbC0DMuCqBuEOsCa8B1VIDzBuCfmCZ-BN2BREM1BuBtDCdUMWvBgBhBUwCtEOEDYhBmBfqBFDahBBPYnBONc2F1DIADepBSjBalBUzBsBMTBZoBJWT4BjBYAMZIWFYVgBL3BiBOqTtNkBIhCyB3C-BMV4BlByB7BioB7yHvbgJqtBmBKGNkBKYdoBJEsBsBUMSgD-BcwBkBxBSFGXHZOHJNeTcdwBcBUUUUAgBUYcgBI2BmBGSYQyCyCoBkBBWcBCcWEScQHyBOYBkBKOOYFUcDaOeciBFKF6BReJHNMRbKbNQJPEPaJVAV3BnBdIZTgBHDTcEkBDcVFPXOLFVGLJVYRTGNRRCXRARNKLTVHTPMBvBTAOZFGnBPFAPNEDVoBKlBPJbDarBhBLzBHiBbNXBdjBlB_BRRO0BeoBDGakBBWNBVbfWAXjBvBDWXHFTHQnBTOQDKiBAwBgBQaXURDDWVTTEzBZbTHRdRxCT5BXOHKZRXIRSQCYMMHlBfVAQPYfaXEjCLIXJBXQTFjCB9BUVMdVZBRPLCIZHBGfd2BbJdCUlBPMFLZKORbOTFsBTLHTOVTGRcFXFXiBHJjBUDnBBwBRGPPSnBANTqBHNJwBRIHSYTBaMTGSFWOTOajBsBICDiBhBGZJHUHPRSHLCwBNHhBqBInBRoBHBZaDQTLGQVFZQTXabOAQLUjBHBbaVHLPMnBSXM3BJbaLuBpBgBQQJ2BKlBNjBXcpBYLHFXMPiBhBAHRNUXOFSfMVmBjBuBIMbcVDYaJenBGSGDUTKLXAWTEAahBOD4BOHYCgBWEOhBkBPAPUIQPENSCaJHLSlBABUVIFSRJBULCCQXFDYJHhBaSAAWReVJBWJBXURPASPGKMREHLhBWWDAOXFfYaMlBkBMXTMCWRHFOpBINFCULUFFIVRHRGJSVIRSDRJWTLJOXKVHQbTJLiBTaNDGSXMTBILPfFUTiBHALbLHDOKUZQIbBViCbuBvBmBZqBFcESmBEZYEUSEJbZYrB6BrBaFwBdYOAnBiBrBiBbWJAJMpCORJPIXmBnBKjBJMpBUvBSNFRdQhBDFpBuBKqBFSRFX1BNZLDPYJRPDFdpBgBFFhBMHUhBMGHlBJoBLBrBORVIHfgBhBjBlDBrBPIIUJgBPBdSrBEjBLFTIFTRPhBXLHPMRPGPLmBRALeRBQeKGWSPKIDUOEUXfTYFPLNQvBFBLlBFDHUDZjBDWRNEVRVOPJJPIDPiBJTZkBCFRIX0B3BUAILBjBUbaIRVkBPYKakBSBoBdgBnBMMJImCDgBjBCLFjBAfbhBANYGWTDZPXTYTDZIlBePYAZXZLGWQHQXbRHnBBtBMpChBPbMXRRLdcIORQAxBZdHjBlBUPWABLQJSGINyBVgBQQDVRKLgBLQIYTeDiBGPeASXMUAKWkBGYBGMeBSSapBkBGHPVNdIIVTnBJBJdUFQgBFQakBcJYeiBBETnBZPCXQVdOlBOBRPnBGKXPSjCVBlBNtBhCxCZPdpBYbIvBiBIsCCuBXiBlBS7BaXqBzBeOaJqBlBMELqBSbNVaXaFPMaCyBFuBhBWjBMFIOqBOCQZQIWSBUpBUCMQBaaIOReD0BKGGToBwBANQsBAUJYABMcPUDuBOSOMHUSmBGOD2BDiBYoBDaTqBJoBIWWkBIQOYDIslBiiCPHODCMK0D5BDORHQPGKItEcHTUQLEQcyBLGzBzBAZYYGSWOMQM6CxCNCFnBQEMWHMIpFOHMFPOEK4DhCUMAcVfCHIrEwBFeFbMBILHMCNECFISAJJIHCSIXALKCRKIKM1BLSRDCLcBIDRKULHCLIn9B-IEUJBGRI86BlIBQLLODIWHEFCQFJiBqIhBKeHkBVDCfRZOgBLYfPKRPrBQDLHWRKEkBgBAMO3HCYTGUPEHUPAKXUuC_BKLGSgBKHGMQLOTRXBEfoC8DuGEULEXJGHTVNMAXbDFLjBMBRcDZJEdVQLDIrBHCRpBZGLXmBHWUCSeAiBagBiBNCoBcLIaBBcKBCYIIOlE5GCSPMTJGTSHKIO2BHOSHQfPLfcQKBIv7B-IQFHKHDIlINVGEHSCImHEbeETYJIeGVGGLQGOs4BjKMFgBWPYNAATNTqB9BmCBWOUHSHbCqBFATrBGPOIDPbFTnBMEFVYCUWDPOCIaHWcf5CwBAWHOGUsBDGnBXkBmBBMpBOT5BDIfXENKnyB2HlBaFLMTgBGQ6tB5GEaPICdNFGRUKBKoBkDqBY4CZRXbGJHTBUNHBXTGFROTTBDZPGPNQlBwBYcqBWoBIhyBmCTPSCCOgDiDgBNe3BLeSBQPGDNVGQKXEjBkBFSTYNAGPUTLCOfZeMXhBDBQWLJkBXPAbHPNAGZSXYNUIIiBIAJ_BWNKgBGVWIBROKRbuBcKPWUHGCYYBK6oB3HAUPXCNOSIlsB0FKNiBYrBJIiEhBGCJIEJ4BoqBlCXXGHvBVCbNNWDDTQEITgBKFiBOfqBGKgBZK3BPIImBKSMWPUoBRInCbYYISJSLBIgC9EERYQbCsBoCoFRUJhBKPdnBhBpCNLLZOESWoBDoBqBASnBxBDGKeIDgBcOuBXFOQNiBiB5uBwBLePPBWZILMdRBRWIPPeAJTSNWUCJYWIJI3BbWTJaLFMpV_BWHTkBPCEXKFIoWAFHOCHGI6DvCEMHBEJIhHQKLEGNGIgIbCEHBGBI0OjEIFViBObIhJYDOFAKNIOBPOKPGCIJBNIMVCOIPGJHSPHYOuCtBOFlBgCEKhBQMhBqBxBIjCHBMJDMHI6GZEMLDIHOvCIbcGTRBELWDOKK5DMINDkBLGIbI_JINWGZIEI4O7BXaPDoBVInEKGJIKNAIhBFAIFJGCIRKDPICDOIGVCVKULCIxgBvOVGBJYEGoCzdDUETI8lBvBJFRFcMIxlBSEFMLPSIYdEFGDJKIQVKJLMCBI0BRNDBBQGI0VJLBLHYKI9rB8uCBEFFICIsTtBFEBHIEI9EvCDEFFKCITLAILBMFIqECAEFDGAIoClCAIDDEDIsHVBEDDGAIHXAGBBCDI5CdBEFDIAI-KtFDIAPEII8DlCBGJLMGIhBHBKFHIBIFvBHDAFIKIjT1CFBCFEIIJJFGEHCCIsZzLCCFGEHI1gBhLCCDCCDI_0B6tBGGHCCHIULGIJEELIsB5BBMFHIDIoH6CJKBVMMIaGTFGHOOIEHCGLJKEOrFvBHObDUJRZaCIYKmCEPgBxBRqBCYPIkEmBEEHCEFUrCGrBOERPQMdQIEXYCPOQSI-BLBCFBIAIXJMNEQPBOgJqClBCfLRTyBMOOYEIuCVGMfAaLe_EXPAGSfJCKvBNCLcMIJUGQJRNcHOWJKIyIeAMHBIJKkCHBMVGKTOCIyBBCILBKFIqBDHMXNgBCIhBPIEHGAJIoBJFMALGAY4FPtBOZc5BQiBZERSLQIMfmBHQKHUIsFlBFOJBQLyBRObMVYJH7BOFKdPOHWGgBJQdgBCbNHRQLaDOGFYQDMRKSLCZWYFCIIqDnBAGTFUAKpBLPMTRQLUSKYDLIDTSFBSImSvBGEHGCJIHNEIJEGLILHLAKLCMMhBNDKdUQRHLaAI9IrCDBEDAGO_2BmFPEPpBVXUMYwBKCItCpDIIDEDLIkBLFODJKDKwD0BRIHTQDKQK1FrDRUjBBiBDUNIrErDIGFCBHKrFtDNSZTaFOIIqBPEBCGFDSzBvBZNRELNMJZVWBmBYKiBIu-ByOBIVFYBIyHJDGDFIAIPHFMNXUMIetCMIHMDTiBlCiBNBJNbWtBJbaXERHFbaJUdeCeRgBCMsBUGEOIkE5BDQLNQBIiERDQPNUBMRYRDLMAhBcBCcIiBbNLMCCKImE7BPHKBGKI_crIBMNRQGIfpDDKJLOCgByO5KvBKFKLRPBnBjBNdMDgBKILiBBWJAQeMJkBIUMzPzFVBblBMAWcQMIiJzLAGBJCEIkBnBBBBAECI_BGHTEIEMIlBpBFBCAECGBbCABAIAADDCACE0B2E4CHQhBJTMDOPAGNHNRLBPjBlBPBdMRNBXUnBESqBeYLYEMQFUgBSAK4BWBEIm6C6kBCIBBAFI8FvDCIFAEHIlGMGCFEAFI30BZCCDECFIspBtKELCIFEIeVKHEGNCI7pBsDCCFEEFIcdCCDECFISBAGDDEBIfBEEHAEDI6NtCBGABCDI3PtCAIFJGCI4MvBHMBFKFI79BvHBBEDBGI8-B2EIBDIDFIVHBINBQFIjsBnHFACDEEI1BpPDEADEAIdlEAEBDCAIoCQEAHEEDIIBCEFEEHI8BbJIRGcNIoBRGAnBOiBNIOFEAHEEDIQHHIADIDIaJNGABODGAAEADAIKBBCBAEBGAACABAIoBLLGZGmBLmNo_K5CNQ3BBPJDRbEXLhBCNZVPhBHfAPQVmBbaJkBKQeQcCoBOyBLqBZQbmBWQjBDccNALSMZiBFUdJLaMWoBHHQSSaAQZAZaTIXkBIEMPCLYcCGIXMqBURWKOTSTbfmBPAFQcYhBDfNiBkBnBDASYiB8BUHcMGgBFoBCROQIYHQSQRUaSMLOYKWDXgBeBPeNPRiBIYVNZfASVIXwBNKARWdBLQHITTTEUVQHXJFdtBAOtBHFNtCHWNCVJLNGJLGRNBBQTNZErBZZCPRHSaaeGUOJGGiBHaLCGaMDJaRUlBYTjBGjBNGddLcBXNXTevBFKKPUDuBNHLUnBBOJfNNYRPpBVRORLpBFnBVenBOQUADcKMQJFdnBbVnBSjBDPTYFiBzBRGNvBMPxBbCClBVJjBEdOJRMfXBJITDFOhBORSBNXCMeMEQegBDPSbC1BaNA7CN3BLnE1BlCP3BGrBBnBEnCOjBSRXDZaHONIvBPJK5D_qBwKJwIJqGH0INkDAAAQmBYVgBHoBaMEYbGAYaeBiBGOiBUESgBKASRSV2BTADQMMFiBZOjBwBbOX2BHsCjBkBQoBHuBHMnBISeHcWmBdcuLT6LVAWhB8DOWDKMUaOYgBEUOYEaeyBQDItQkRYCNCJDIsHLKJOBXMKyEpDEGdUCJYPIyJ9DCIVIUPUtgBiCNEfTpBPFLoBZcEeSaEdsBI0c9FLaBROHI6BJIQTPMAIYhCAIVGWNIPNJWDBOTS6EtBYgBEeAmBNUMfBfNtBJJI9GXEADGAFUiDWLWNPdMFFaNBHcRPUaIIjRwPlBOOLYBI-CARATHmBIIRvCCLECFKIuGlBEAFGCFMfpCHGpBTOHYKMMIuLnCJODGOTGchBGFFGIUZFGYjBReuB0FtKBMVSjBHPTXUfEpBbfHVMyBCHGjBEPI1CgBFJbNLOOCDUhBWJkBbDyChW9mBBtBYPF1BdVQdCrBjBXHNYFGZbXqBtBWNJfKVTTAHoBRaDKLBRbLALgBXOlBSCITFZcCgBZEjCHfMtBcAIJFfoBRcbATNPIAA-LXwHRgFLQAASeSIH0KHuLN0OF0G2CoVGrG-CLEMDIqFNABeAdCI5GBHePPYNMkFDgBCCGvCFKFkBEkCyOzEMMbsBVSNCRPGYODHSXMxBMvBEvBKkBVYKqBVFNVVCPVGPNLZKfRvBZJHPJ2BHOF6BC0BZEBPtBLlBKM1C3hCDF4HRiJT-Id8DJiCAAcoD-B2GmC6HgD2KOiBEWQQaoCkBmBSmBAcHKMOeSFWhBYJWBoBEWRwBDkBU6BYgBKmBF0BA0BFSIoBOIWeOeDKWAAzHcvLmBhMkBAcHe4BgCiBQGQJuBKeEDsCCGIAAfMMLSFIvHyB9COuCXQKKwHxBGbebFPZDwBucrKeuBQ6BWQ4LT6GNsGNiHPCSQQCeQWmBDMHBbClCRZBlBWlBWFQGkCQ4BGaDyVAAYAMwCJJHZLBIkBUKUaKaEmBa4BS0BoB8CQsBiBgC6B8CwC8D4CqD6B-BemBWiBVkBQ4CQsBWkBoBsBCShC3CZzBJtCC5BPtBVAFMhBBJdGdpBNS4BQWYkCkBgCuFmIYgC0CkExBLOMaAiBWqBmCNSWKSoBBUMWK6BFOK6DAkCFUIMQiEN1BLUAwBTUFiBJOEeHcKYDOOOboBHUGYPRTWFTbIFYVERWZGjBNTWlCWdPPZGtBOCSSoBMCMSFIPfbvBHZPNhBVTKLTBb7BRCRRMPhBZRBVNDG1BRPQLFJOLVUGKTXADPVPJfDULfJ1BNTBfVhBCWnBJJEBRMAWXEXWjBSRbQVgBHkBhBOLLAXPbA_BBTTRoBfnBMXQNRPEgBqBIaTEvBNRjBNBtBhCTfdnBIDTvBfRVBPZgBUFZcLMzBwBpCARPjBNDJUEgBXHBfLPXAIJpBTEeUBbWwBQIWJ8BRCDNNDpBfEMaWSgBJBNfbTPjBIAIlBG_BLXUhCHBSjCApBJ_CTTEHUOFnBrBfBRLDAZVPFdjBIRFhBKVPHXdJFRXbZHjBbTHDTEZJNvBPVTJZnBlBtBZbBlCnBvBQJILNVGHQPCTSMalBJKSkBCAUlBDZEhBeRIbeTKjBaIfHBhBcLStBCrBUbCNITPN7BGFEqBWiBSLDlBZlBVTtBPOBvC3ByBKOOeOSNTHFQLJFjBbOfHfVWbQCMTDRLUbMDITdHMZKISYDKWSONIxBdzCf3DVtBALFoBDaEKTMOSCCRwBUCJrBrBhCUVCITZUnBUDOdAvCO7BO3BUURyBLedTDRPKTNJN8BZrBVHMwBNcXKCOXYrBOImxCwnCDKVIaRIQLYGdOGTMwCfHMpBWeZFbaUIqFvBVFcNFUKxEHSKagBLDflBIuGlBnBccZMBIuBpBCQVGUVcoFzGNiBEKbkBtBmCGbKFmB_BQnBFbSJOVKCVuBIkBtDFeChBEEIB3CLNKNCcQ1a_GYFSGdQjBRNhBWeQGIlCjDUmBLRHTU6BuBALXlBOAOQASSYGeLJPbIlC5CKSFMDdI_FxHALegBdTS0b7IhB3BuB-BSoBiDsFVZ1BxCbhCXrBIjE9FDJIKDAQtBtFSLKMJ8BM0Cf5BR3BUdK74BpHdRyBFFaNBO6E9BRUlBWbYHBuCxBONIqBjBGGVIQNQla3FMFoBElI6B0CdaBYJsCNGujC8qCDCEBIBNEAAGDFI6IpCGABEDDIgCRECHGEHIrCIGOJFEHINCEMRFOFI-BTIMLHEDI2H1DBIJEMLIcdEANSKRInGpEFQFJMFITJCMNHMDK3EjGFOPBAVWKIdEbLQHMUI_CTFQFNMBI4BDEEDMAPI9TzlBDKHDMFINLAJIIHCI9E3EHGCJGE6C6TtsBYKVcJJNOSQRY1BLMORMoBGDSRchBCTJDKeKdqCJMGkBLOWmB1BK4BGYOCSLEXuBNBBZPKIgBPEcOGVBsBlBZceFOPGaGLWHeSkBCcIl4Bh2B2CJ4FXoGVIAAgGbwDPoEToDAABcHEvB8BL0BOQyBWMDyBuBOGqBFQISkBciBSwBkBeWaQiBUEYYoBSyBiBcyBaQkBKsBgBKaAaqBkBIUQAMaiDoBMWCaciBWsBBUIMAWSQUCgBSSQEWSiBOOA6BKWcWWF0BSMnEsSJrBYNAwCFMHhBMmBnKQPMEXiCPJMrBMWvCKLGcHeLdEPkF8YpkBEQdOhBehBoBTiB1ByDDyCLRZFGxBPwBESgBKQYNWTKDQVSBWjBSPTVSJcQQhBgBNejBaXPITZAIeecXeZEKQpCiBBInBmBRRAWLEdJZRISvBEFIqBCODWInBOuBBESbaaLOTHqBbadKFzBPGChBHKM2BlBTVvBEHdRQaAKWqBBSYYODQURgBbYItBPYBUNYCQwBhgBhmBIBmDxBWBWZqBTmBNOTOEcF-FR-HZOKAaKEgBZ8B6BI0BIImHfiFXUA4FoE8IsGI3GmNDaDPIJ0M-bn4BCWsByBGbGiBUW2B6CTDNZlBxBLEOeSSpBDRPdNZDoBiBYOVWRCvBZsBqBPEpBJTLZHOQyBWhBMFSbWXERRBMRDZ1BIzBVLOWJUEwBkB4BHY8BJcTeHGSKHiBCTJkBZiBJUEBgBQJPiBSeVIUEScFIfASMUFGIGlBNlCQVQMMDTPOFCRaSkBoBBeMePEQWHgBTIVbAcNaP4BLHCabWpBKlBXAiBTLQBPjBJcRKFRVFJRcJIRrBETSSKKsBTFAJlBQZJdAjBHMaYHkBOwBKsCGMQDUZAQQPBhBaiBCMKNYvB0BZEtBZTFVVNBiCkC0BGSMQLWdqBQPXQFOIDXGXWkBPMMMmBZNTiBSHSNCGSXcXsBDQPCFTTLGmBLILdNADOOQnCKJKxBaTdBkBTUNcbWZHUftBnBKeSKDSPEKQSEEQzBmBnByBfiCNWHoBCuCJOChBJvBThBAMQqBA2BRgBnBDrBEbMTB7BkBFFwCpkCrFDlDMX8BHQVE5BcVKTqBb6BPSEWHyBxBSDOVYViBViBDWzBDXKFaIKfuBhBQKGcOASPczBgClBYGWOUTarCiBjBmBANPKvBJPQpBWAAOGuEJkGb0GZ0GjBsHrBqK9B6GrB-JjC8DXIsBJIYZETTEAAQDIAAEEEBCDGAAGAGBcUDwByDoBgCuC8CYqBZPPhBfdJVNALjBvBtCHbhBhCGAAEAGBInQkqBESRDONIS_CElBGBJoBM-D3GQDrBedqBKXwBrBIqJrEIOjBLcBO5DM4BVWG1BI9CsBON4BVQ0GvEQRbuBbmBb2CDHcvCsB_BIwB1CQCZeKfQcdICaXcTDMdShBkBGXagElJUwBAkBKsCBkBnCyBSV0BnBJ_DJbf7BKAQgBMrDzCUFWYAQNAbhBIlFhINPCGGMKx-BwK5CKNM7JsBpJmBiBAAOPmBTiBHYRiBRkBJOpBkCjBILBZMPcTChBYb8ChC4DpEkEAAGSJMWSEWsBmBYASOcKiBFQXWJMZOFwBiBeVgCPYbHVKPQAcMcXkBZQBOQyBtBHZWVBNVRS9B6BhDMpBCpBkB1BChBMLIfBbKrBeGYmBsCMGDWzBIxBORAZKhBOZqBUGDcjCMEQLGRSLGZkB_BFzBKZFjBKTgGqDS5CYAAgCCMMYGEQNcoBeeDYGSYgBEMMIAAKKECGBqJAAQQIkCVIPQQQRMHTJGFkBHgCISLCaURGiBC0BbOPOcLGkBSGWeOuBBIKSNYBGQcMGWuDiBGkBbFSiBDSOMNEIiBdDbXDYrBtBRPfFZZXJJPRHNZTPRCPRbBIMSDOSaCQOGgB4BiBiBmBODGQUCWkBWOgBLKMsBChBWkBOILCUOIGmBFWVZNEXVKWLMSKOenBSjBdddNFXbVNASKCWYSMiBoB4BaUNOUkBSNQUDGODcpBaNVbHjBVJhBPNXMvBJHZBYPQfdNUPPPIdALHFSmBGeFIIQRQUkBMgBFSQQCORMiBEcgBAiBcMUNUKASRsBDCLNPWJ2BKSBMNSIUsB4B6CISMJCHXXpBLAEwBIYIKBDDMJEMiCqB3VNcOgBVeNsBhB2CPsBLUMUTIFUB2BGyBJCRXP1BIpBFVCnBONPDAPQLATODGrBJLkBLHRQBJVZBcfIAAGN2BTcHIpBsIPsBKrBGAKCzBGELoBDBKpBIvFtECUDHBJEAAEBIKAAEDBBBEAAGAINCBCBCADEAAEAIqI7CPiCFJQzBEAAGDQtEkOLtBCVOGFUaKRiBFBIhR9UBXDFRLITJUhB4BmBfwBEAAAAkMqR0IxBGTaHHGVNGKZaddKCVONtBKHKBbiBZTCNLK_BVuBBcRRCfRiBKQBSTTNDhBfFUtBzBCNUGARSNNPHOPAIRJJgBDyBMOBKTDXLiBfJCPVIORTGDTFaRPBTJWPRCoBHDC_BOJkBeOJCTTSJZaTXDfTXWGYNODxBGnBOQaCSTJTavBTSNAFkBGQPFHpBLJQvCOJGTaB6BLzBCJBOdSPcAXPMRFPJcZmBDNM5BTeZCHeWGNgBZaJLBhBJKCiBKMJUVnBZMYGDcTBQWjBLSWSKdQAJbLAKYagBQISdMoBKGKROVJTVBSiBSQgBbFSONGGYMFASLSOUCWMUIuBIMyBqBFgBTDJXVDlBVbtCFCUqCKOcSeKaccHAiBgBiBDKMiBtBfFZHYNHFORZxBHRKTHRvBVLYoBEUfJVTf3BFYrBoBTJNrBU3BULCbUPFrBoChJ7FHHDhBVFGbdALTOJFNpBMNDxBdZKReTAfOMMPIKOJKjBIlBAbNEJPLX6BZmBhBHLKToBVWLYPGfqBJEjBlHKknB1HGiB0EsQsCNmEdWAAJKISVDgBYJ2BNHPUF4BNEFuBIoC9GEeDYF1BEAAGAI7IoJBBDACCIHCFPUPEeIhB1CRAIVKWM4IAMpBCdK3BF8CLgByBtHtYNSAUb8BYeDmBsBqBWMYmBAYQ0BiBaIY-BwBcFWoCLZRGSUbUESUNKIKXWmCIFADBFCCC2EoElmBCaNyCAYPgBRARSEcLMBaOOWEYHwBKRfMCOgBGeEkDO8EDDNvDLKIqBFQISHWBeMSTuBTcSOrBFQcAUNBFcWQhBeKbJDFgBVENOUCSJZwBPoCNKAYTadKBfKxBBRVPbIJJfULThBVTCNPHEnCxBAlBVXMRM7BkBnB2BZMRJRMDMfO6IqGSLNiBVIJJWCGVKwBnEIHdoDAZWlCIfliB-GrBoKtCAGIAA8B4GIuBHwByBAANHXIRQTLDWbAZaXFDQVATUhBDXUfAjBWLZV0BZOAUbFVgBhBQhBkBpBemBkWhQAcNAJZRHTbIiBKGCWVEOIAmBKOIgBBeJUhBIvC0BAHO7B1JmElBS0BMAKoBeQOOK-BuCPYJNR9BANIAAWAEaSoBKnCNFCNnBSQCWMhB8FIWPGFNGXIKKYtFEiBFMH1BKIUURCbKLCaO0BLATYGTHPGZISvBO9BPoBPKiFBnRISRKYISgBTJGMcKBMUBQXSWbiBxBiBSObgBFQKUNBDiBODUaUVJPcQQAcQMSeaWeDGTVAaNIYOcFYiBEYMIoBMqBHCIYTwBjBELFrBTHDYRrBJPZFBWTXaHkBKiBgBYmBDeOBO0BNA_Bc9BmBNBPkBbOPSJBEVR_BXFEUJeVOGQZPEqBfcDLVCAQSqLrBICmBqBJUtBI1BNiCJGnBHHIxEoBKTKcTHWbHUCKWzBQPMLUdNWFa3BcPEUKoF5EGIDoBFCExBInH8HGDGGLBIhBrCAIVKWRIoBtBOBpBqBcnBKrhPiEvJlCxH5BzH7BzFvByEtqB9LTbLjBIvBFPElBajCSdGrBJjBHFAzBedcnByB_CCVMJWAaVMADWKDEbbGXU0BnCYrBODYdfYqBzC0BhEQvBYtBKlBe1BCZS5BajBW1BBFanBGbQhBFTiBbJTUpBDYKMKhBPLY_BFVWpBBfWLMtBA3BMCUcKACeGbNNgBAIUkBCiBLUYKasBSWNIxC7BKMJCANiDwhFyjKWKMeXeRIbatBYvBOlBBda7BeRSDYTWHUXWDL5BjBZHJRHdO5CpB7DVZJbIXefSHWjBSLETZlBFxBMV4BIMWaMcWYBuBQmBSmCuBkBmBC8BcHSSBUOWWUOpWtOKMBa5BEJJoBbUDY5D9DSeLWhBMVCHLDnBZLARaFqBGUQyBoLiBKUJgBTQhBMfBpBWrBDTVEJH1BJHTKlBNbhBDPMlBeNYOasBsBJiBLYE0BwByBQkB9JlFSGVcvBSfD1BP1CGLJIVOJDTkBIuCKMNGQWGqBFWEkC3MxCaUTUJHhBMjBTbBJTQLZHIaJKpBIHFHbRPDRRRAVVTSDyBAYVWdWBUcBIiBqBBgBcWGTSCHWOYU9frJYALwBjBULePFFPGTwBjBETqB6K_BCUPaAoBrBoBTFzBDddjBJJRAVWVIRUFiBVSDUKIJiBBaKQcK2GnoGnCkOyGgByGgB-HkBIAAnB8ItD6YlDgXIn3BjJ8F3e2B5I-F1eIirDncb0KhBsMNqFIAANsFnBmOX-IOAApGR9JdzGVpIdxLtB7JpBK00B8FsFOyHSoISboOIAARsJfkQhBsRIAAnFJ3CF3CFkB6pCj6CtBCAYSaAoBNEEecEIsBPiBBkBJQHoBTaDQMYYYO6B8BAApBFNZNLDbdDTZdBhBRXBjBjBVJhCMfHbKzBJRKTepBJHLtBVjCvBJL1JJhHH3INnFHhHN3IT3KbkC-tCsKcKEUFoBUeBsBGSWWCciBgBAgBIYWgBLwBGgCgBIFSaMJ6BeOPUBaYOHEGcFmBOUEqBFcGQPeKSYMCccAAAYYOAQMWMoBHQUAQWcMFQcoBFgBkBUSAApLA3GAnLFhJH3GHnLNhJP_GNyBuoCiCsBqBaSQCWRUAEYSMEgBFKXDFUTUHePICSakBsBeAcYeCUmBUmBIBOOseWAA3HClFC5HApKDlFB5HFrKLpKLrKRhIPImzCiCC6BA4BC0DIAAuB-Ja-FD8YgB8e_tEAMUwBeKKcVoBDQSwDQaEcMWcS6BIeIcwBDQoCAADKmBgBeQSaEgBUSmBSYUMmBFmCHefgBLmBCcfezBSTYNG_CMTYL8BIeeSQgBEqBFQnB6BH6BTWjBMdQHaOQA0BTIaAAhBZDLvBjBRdnCIpEI_HS9EC7EI9EE3EB_IF4DquBgCRgBD-BMsCScAmBWaOqB8CuCUkB0C4BQSSiBAaMUFQIgBSgBaUOJUdSDUIgBGkBSWYXoBEwBTuBP0BNeFgBQqBUQSYUMeemBWeCiBeoBSeuBkBOOmBBYgB2BAkBVaASUKAOkB2BBMaWSELjBOBIQaeUBUAACuBHOI0BT8BPSLBbZJOJ0BIAARWJBETIAAFXXAGaSAAO0BJQXGSmBnBGiBuBVUNwBmBAArHWBJe1BOHKVaNGTSPAlBVVRjBhKSlGKlGIlGInJKlGElGEKulCp5CpHSlJSvFKtHM0B1R17BQUgBO0BJkCdYDqBXwBhBCMcNoBbYJcIMWNmBLIDaESZsBQCmBRMbYWeQkBKOFgDod-SHUAaNOpBQDaTkBPmBDeHSAgBMIYDETSTWLcpCOP0BXceOEH0BTqBLkBDkCHgBWoBDUlBmBLqBHoBCuBMUCgBX8BB2BPsBHwBKoBBaKMFiBWaEmBUcGwBHYIqCI7jBv9BNAMLCMMgEKFSjBFIJcJGIIrCGGLSSXFKuD_BASRQCbQFQxBoDTIHUdSATeZYLEMsBilBoULFFWGURBSSJWLAR2BIIhB4BZHNhBIlBYbM1BQCONGfKTeEBeMmBtCBWhBAGlBaEEMQ7F-pBCiDekCWQMWIoBemCUaoCAA-C2hBVOHSMqBTYASWSMgBQOEYFSWyBJmBVSBYLUIQRUTKESVeFgBLHHQNHNqBYWfeWGZQIiCZGaWPOSEuBAADaXaHcgB0BLW_BSTOhBINgBEiBeqBFiBJMZAbPlDnBRBdMNQd2BCMWYsEiL3MiBIQVNhBOLiBUsBNAcIGSPF1BWaqBRuCgBUESYKHMnBSVUDkBdUgBMIiBBDSUDCXUFApBUTGPJTaGSPRHOHWQGiBkBSaAWUGLYJOZC_BWrBQIkBVK5BINWFejBGPJPNzBuBNWAcSODuBlBiBPcABRIdhBJORAPPPDNQRgBwZuGCUOeCcHGFoBqB0BcYFMcWKciBeKauBUaa4BEgBhR8PVMhKcxFQrDOnHSvECdG3EQzJgBNLnCBO0BCkB5FO3JYEXAXCuBrBoHSYCWPHVUYSVW1BcDOQYNYOYfSBcbgBFSEeOqBFeZBNoBfSCEMsXniDkBeuBIeF4BZ6BpBKyjFk4GHabRIHcAU6hBADDxBMnBCHNSAaPkBFqBITSKcrCXZiBGLGCOkE1ECQWTOLDfMVeHUNGGOZSVIbDrBKlBOHNLKVDPLlBKVT1BOpCJDHTUtBEJIPPhBDTMdHFOHbUHPJIPGvBILRnBRDNfwBVDdcP0CQuBFWIwBFWG0BEkBHiBKUFqBOIHOWWDbTwBOKJ8BMYOKDOOgBIQLA0B","geoms":"eCGACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOCCCCCCtBCCKwBCCC5CCCI8CCCrDCCKuDCCC7DeCE-DCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCMCCCC3F6FCCQCCCCCClHoHaCOCCCCC7H-HCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCICCCpJCCKsJCCC3KeCE6K_KCCiLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCKCCCCCQCKCCCCxNCC0NCCCCCCCCCCCCCCCCCCCCKlOoOCCCOCKrPuPCCCCCCCCCCCCCCCCCCCCCqLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCqBCICzb2bCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCKCKC_oBipBCCCCCCCCCCCCCCGCKC_qBirBCCCECCCCCyCCKC9rBgsBCjsBCCmsBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCICMC9uBM0uBCCCCCCCCCCCECGClyBoyBCCCaCKC1yBMsyBCCICCCCCECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUCWCj0Bm0BCCCCC70B-0B10BCE40B70BCE-0BCCCCCCCCECCCECCCECCCECCCCCCCIC72B-2BCKCSCBj4BmBi3BhgBkgBCx3BCE03BCCKC_3BHq4Bl4BCCo4BCECx4BCCKNwYygBn5Bq5BGCGvgBTmhBCCCCCCCCIlhBohBCCMCGCt6Bw6BCECCCCCCCCCCCCCCQCQCj7BIgZlBHsjBp7BCCs7BCCCCCCCCCCCCCCCCCCECMrepB4fplB8NwXCCCQCCCCCCCCCCCCCCCCCCCCCCCCCCKCC3lB6lBtgBCCM3d6dN8gBCCCCKv-ByYNpXgdCCM_d4-BCChnBxXCCMwdHH2hBC7-BCCMBLs_BCCn_BCCIBL4_BCCCMxnB9XNggCC7nBCCM5XydmiBCC__BCCUBP0gCCCCCC1gCEQCM0gC7gCme4iB9iBgjBCCCCCCCCCCCCCCCCCCCCCCCMzhCEPiiCCCECO7hChBgjC9kBglBp8Bs8BCECniCCCMqLuB-LnYRuiCCCUxjCmBjBoBlBgHmBUkDOCCK-RRpYuB5GCCKkeheEojClkBICCokBCCCCCCCCC","inner":"2DEACKiBCCCCGECCEECGECCCCEECIeCCCEECGECCGECCCEEeCCECEIgBCCCGGCCKgYCxXCCGECCE8LCGsBCCGMCCCCCIG2CCCCKEGCCECECEKYCCCCCKEQHCECIEGCCECCCGEUCCGCECcCaGCCCGCCCECCGCCCECCECCGCCCMCCCCCCCCEWCCCCCCCCCCC","outer":"8FCKCCCECCCECCCGCwBCCCCCCCGCECECCCsBCECECECeCQCCCCCUCCCCCCCECWCCCCCECCCICCCYCCCCCCCCCCCKCCCCCCCCCCCECICECCCECUCGCuCCGCKCOCECECaCECKCGCKCQCsCCYCuCCCC0BCCCCCsBCsBC6BCGCECQCCCCCCCCCCCCCCCgCCGCCCCsD7ekBOMaGIDsYNMPB_Y2YlZiZLOPlBgBFfjBmBpBsBvBgBlBFNxCHENPtB3LHdCyXneeMIG8exe0eQQCCCCCE","group":"A"}; function __gvOr(a,b){return a?a:b()};function __gvAnd(a,b){return a?b():a};function __gvLe(a,b){return b>=a};function __gvLt(a,b){return b>a};var __gvRuntime=(()=>{var te=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var gn=Object.prototype.hasOwnProperty;var bn=(t,n)=>{for(var r in n)te(t,r,{get:n[r],enumerable:!0})},yn=(t,n,r,o)=>{if(((n?typeof n=="object":!1)?!0:typeof n=="function"))for(let e of fn(n))((!gn.call(t,e)?e!==r:!1)?te(t,e,{get:()=>n[e],enumerable:(!(o=hn(n,e))?!0:o.enumerable)}):!1);return t};var xn=t=>yn(te({},"__esModule",{value:!0}),t);var gr={};bn(gr,{MOBILE_BREAKPOINT:()=>mn,mount:()=>fr,primaryAxis:()=>de,visible:()=>pn});var kn=["map-states","map-counties","map-world","map-dots"];function ge(t){return kn.includes(t)}var be=["line","slope"];var wn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Mn=new Map([...wn].map((t,n)=>[t,n])),vn=10;function ee(t){let n=[],r=0,o=1;for(let e of t){let a=Mn.get(e);if(a===void 0)throw new Error("Unreadable map geography");r+=a%32*o,a>=32?o*=32:(n.push(r%2?-(r+1)/2:r/2),r=0,o=1)}return n}function $n(t,n){let r=ee(t),o=[],e=0,a=0,s=0;for(;(r.length)>(e);){let c=r[e++],i=[];for(let m=0;(c)>(m);m++)a+=r[e++],s+=r[e++],i.push([a/n,s/n]);o.push(i)}return o}function ye(t,n){let r=[];return n.forEach((o,e)=>{let a=o>=0?t[o]:[...t[-o-1]].reverse();for(let s=e?1:0;(a.length)>(s);s++)r.push(a[s])}),r}var xe=t=>String(Math.round(t*10)/10),ke=(t,n)=>t.length?`M${t.map(([r,o])=>`${xe(r)} ${xe(o)}`).join("L")}${n?"Z":""}`:"";function Cn(t){var e;let n=0,r=0,o=0;for(let a=0,s=t.length-1;(t.length)>(a);s=a++){let c=t[s][0]*t[a][1]-t[a][0]*t[s][1];n+=c,r+=(t[s][0]+t[a][0])*c,o+=(t[s][1]+t[a][1])*c}return n?{area:n/2,c:[r/(3*n),o/(3*n)]}:{area:0,c:(e=t[0])!=null?e:null}}function we(t){var h;let n=$n(t.arcs,(h=t.q)!=null?h:vn),r=!!t.sphere,o=ee(t.geoms),e=0,a=0,s=t.ids.map((f,b)=>{var F,G,y;let x=o[e++],g="",k=null,P=-1,N=[];for(let R=0;(x)>(R);R++){let _=o[e++],V=[];N.push(V);for(let S=0;(_)>(S);S++){let M=o[e++],I=[];for(let O=0;(M)>(O);O++)a+=o[e++],I.push(a);let B=ye(n,I);if(r){V.push(B);continue}if(g+=ke(B,!0),S===0){let{area:O,c:Y}=Cn(B);(Math.abs(O)>P?(P=Math.abs(O),k=Y):!1)}}}return{id:f,name:(F=t.names[b])!=null?F:f,code:(y=(G=t.codes)==null?void 0:G[b])!=null?y:"",d:g,anchor:k,...r?{polygons:N}:{}}}),c=f=>{var N;let b=ee(f),x=0,g=0,k=[],P=(N=b[x++])!=null?N:0;for(let F=0;(P)>(F);F++){let G=b[x++],y=[];for(let R=0;(G)>(R);R++)g+=b[x++],y.push(g);k.push(ye(n,y))}return k},[i,m,p]=[c(t.inner),c(t.outer),c(t.group)],l=f=>r?"":f.map(b=>ke(b,!1)).join("");return{id:t.id,w:t.w,h:t.h,features:s,inner:l(i),outer:l(m),group:l(p),...r?{sphere:!0,lines:{inner:i,outer:m,group:p}}:{}}}var mt={orange:"#F79945",turquoise:"#12A07F",fuchsia:"#AC00E8",azure:"#3977F3",earth:"#3C3830",red:"#F5515B"},nt={primary:"#3C3830",secondary:"#777777",grid:"#E0E0E0",muted:"#C9C5BD",darkPrimary:"#F0EDE6",darkSecondary:"#B3ADA3",darkGrid:"#4A4640",darkMuted:"#6B665E"},$e={white:"#FFFFFF",smog:"#F0F0F0",lavender:"#D3C8FF",celery:"#E6FFA0",sky:"#C5E0F7",butter:"#FFF1C7",blush:"#FFD6DA"};function Me(t,n,r){let o=t.replace("#",""),e=n.replace("#","");return`#${[0,2,4].map(s=>{let c=parseInt(o.slice(s,s+2),16),i=parseInt(e.slice(s,s+2),16);return Math.round(c+(i-c)*r).toString(16).padStart(2,"0")}).join("")}`.toUpperCase()}var bt=mt;var Dt="#D9D7D2",Pt="#3A3733",Ce="#EDEBE6",Te="#2E2B28",ve="#F5EDDA",Tn="#EF6C4A",Rt=t=>[Me(t,"#FFFFFF",.8),t.toUpperCase(),Me(t,"#000000",.45)],kr=[{id:"seq-orange",label:"Orange",kind:"sequential",stops:Rt(bt.orange)},{id:"seq-turquoise",label:"Turquoise",kind:"sequential",stops:Rt(bt.turquoise)},{id:"seq-azure",label:"Azure",kind:"sequential",stops:Rt(bt.azure)},{id:"seq-fuchsia",label:"Fuchsia",kind:"sequential",stops:Rt(bt.fuchsia)},{id:"div-turquoise-coral",label:"Turquoise to coral",kind:"diverging",stops:[bt.turquoise,ve,Tn]},{id:"div-azure-orange",label:"Azure to orange",kind:"diverging",stops:[bt.azure,ve,bt.orange]}];function re(t){let n=t.parentElement;for(;n;){let o=getComputedStyle(n).backgroundColor.match(/rgba?\(([\d.]+),\s*([\d.]+),\s*([\d.]+)(?:,\s*([\d.]+))?\)/);if((o?((o[4]===void 0?!0:parseFloat(o[4])>.5)):!1)){let e=(.299*+o[1]+.587*+o[2]+.114*+o[3])/255;return{color:`rgb(${o[1]},${o[2]},${o[3]})`,dark:(.5)>(e)}}n=n.parentElement}return{color:null,dark:!1}}function Gt(t,n,r,o,e=1){let a=(i,m)=>`${(0)>(i)?"\u2212":""}${n}${m}${r}`;return{axis:(i,m)=>{let p=i*e>=1e4,l=((m?m:1))*e,h=i*e,f=p?t.formatPrefix(`.${o!=null?o:t.precisionPrefix(l,h)}`,h):t.format(`,.${o!=null?o:t.precisionFixed(l)}f`);return b=>(p?b===0:!1)?a(0,"0"):a(b,f(Math.abs(b*e)).replace("G","B"))},value:i=>{let m=Math.abs(i*e),p=o!=null?o:Sn(m),l=t.format(`,.${p}~f`);return a(i,l(m))}}}function Sn(t){return t>=100?0:t>=10?1:((t>=1?!0:t===0)?!0:!Number.isFinite(t))?2:Math.min(20,Math.max(2,Math.ceil(-Math.log10(t))+1))}function $t(t,n,r,o){let[e,a]=r,s=t.tickStep(e,a,o);return Gt(t,n.prefix,n.suffix,n.decimals,n.multiply).axis(Math.max(Math.abs(e),Math.abs(a)),s)}function Fe(t,n,r){let{xKind:o,x:e}=n.data,a=n.style.xFormat;if(o==="year")return s=>String(s);if(o==="number"){let s=Gt(t,a.prefix,a.suffix,a.decimals,a.multiply);return c=>s.value(Number(c))}if(o==="date"){let s=e.map(l=>String(l)),c=s.every(l=>l.endsWith("-01-01")),i=s.every(l=>l.endsWith("-01")),m=c?"%Y":i?r?"%b \u2019%y":"%b %Y":"%b %-d, %Y",p=t.utcFormat(m);return l=>p(l instanceof Date?l:new Date(String(l)+(String(l).length===10?"T00:00:00Z":"")))}return s=>String(s)}function Le(t){return new Date(String(t)+"T00:00:00Z")}function En(t,n){var r;return n?"#1A1A1A":(r=$e[t.style.background])!=null?r:"#FFFFFF"}function ne(t){let n=t.replace("#",""),r=n.length===3?n.split("").map(o=>o+o).join(""):n.slice(0,6);return[0,2,4].map(o=>__gvOr(parseInt(r.slice(o,o+2),16),()=>(0)))}function Fn([t,n,r]){return`#${[t,n,r].map(o=>Math.round(Math.max(0,Math.min(255,o))).toString(16).padStart(2,"0")).join("")}`.toUpperCase()}function zt(t,n,r){let o=ne(t),e=ne(n);return Fn(o.map((a,s)=>a+(e[s]-a)*r))}function Ht(t){let[n,r,o]=ne(t).map(e=>{let a=e/255;return (.03928)>=(a)?a/12.92:((a+.055)/1.055)**2.4});return .2126*n+.7152*r+.0722*o}function vt(t,n){let[r,o]=[Ht(t),Ht(n)].sort((e,a)=>a-e);return(r+.05)/(o+.05)}function Ln(t,n){if(!n)return t;let r=t.toUpperCase();return r===mt.earth?nt.darkPrimary:r===nt.muted.toUpperCase()?nt.darkMuted:t}var Se=.58,It=.45,An=.7,Ee=new Map;function Dn(t,n){let r=`${t}|${n}`,o=Ee.get(r);if(o)return o;let e=Ht(t),a=0,s=1/0;for(let m=0;(206)>=(m);m++){let p=-It+m/206*(It+Se),l=Math.abs(Ht((0)>(p)?zt(n,"#FFFFFF",-p):zt(n,"#000000",p))-e);((s)>(l)?([a,s]=[p,l]):!1)}let c=(a+It)/(It+Se),i=zt(n,"#FFFFFF",c*An);return Ee.set(r,i),i}function yt(t,n,r){var e;if(!r)return n;let o=(e=t.style.paletteId)!=null?e:"";if(o.startsWith("tonal-")){let a=mt[o.slice(6)];if(a)return Dn(n,a)}return Ln(n,r)}function at(t,n,r){var o,e;return yt(t,(e=(o=t.data.series[n])==null?void 0:o.color)!=null?e:mt.orange,r)}function xt(t,n,r,o=4.5){let e=En(t,r);if(vt(n,e)>=o)return n;let a=r?"#FFFFFF":"#000000";for(let s=.05;(1)>(s);s+=.05){let c=zt(n,a,s);if(vt(c,e)>=o)return c}return a}function Ot(t){return vt("#FFFFFF",t)>=4.5?"#FFFFFF":vt(nt.primary,t)>=4.5?nt.primary:vt("#FFFFFF",t)>=vt("#000000",t)?"#FFFFFF":"#000000"}var ae={w:975,h:610,scale:1300,x:487.5,y:305},Bt=ae.scale,Ae=ae.x,De=ae.y,Pe=[[Ae+.29*Bt,De+.17*Bt],[Ae+.41*Bt,De+.234*Bt]];function Ge(t,n){let r=t.querySelector(`.${n}`);(r?!0:(r=t.ownerDocument.createElement("div"),r.className=n,r.setAttribute("role","presentation"),t.appendChild(r)));let o=r,e=null,a=null,s=()=>{o.style.display="none"},c=m=>{((m===a?!0:!e)?!0:(m.pointerType==="touch"?(e(),e=null):!1))},i=t.ownerDocument;return i.addEventListener("pointerdown",c),{show(m,p,l){o.innerHTML=m,o.style.display="block";let h=o.offsetWidth,f=o.offsetHeight,b=t.clientWidth,x=p+14;(x+h>b?(x=p-h-14):!1),((0)>(x)?(x=Math.max(0,Math.min(b-h,p-h/2))):!1),o.style.left=`${x}px`,o.style.top=`${Math.max(0,l-f-12)}px`},hide:s,bind(m,p,l){let h=()=>{(l==null?!0:l()),s()};m.on("pointermove.gvtip",(f,b)=>p(f,b)).on("pointerdown.gvtip",(f,b)=>{((f.pointerType!=="touch"?f.pointerType!=="pen":!1)?!0:(a=f,e=h,p(f,b)))}).on("pointerleave.gvtip",f=>{(f.pointerType!=="touch"?h():!1)})},destroy(){i.removeEventListener("pointerdown",c)}}}function ct(t){return t.replace(/[\x26\x3c>"]/g,n=>({"\x26":"\x26amp;","\x3c":"\x26lt;",">":"\x26gt;",'"':"\x26quot;"})[n])}function it(t,n,r,o){let e=a=>a.replace(/[\x26\x3c>]/g,s=>({"\x26":"\x26amp;","\x3c":"\x26lt;",">":"\x26gt;"})[s]);return`\x3cdiv class="${t}">\x3ci style="background:${n}">\x3c/i>\x3cspan>${e(r)}\x3c/span>\x3cb>${e(o)}\x3c/b>\x3c/div>`}var Ve=["VT","NH","MA","RI","CT","NJ","DE","MD","DC"],Pn={CA:[80,318],FL:[790,534],ID:[192,163],KY:[703,315],LA:[562,460],MI:[683,199],NC:[816,350]},Gn=560;function Vn(t,n,r){var i,m,p;let o=t.style.map,e=n?Pt:Dt,a=(m=(i=t.data.series[0])==null?void 0:i.values)!=null?m:[],s=(p=t.data.map)==null?void 0:p.categories;if(s){let l=new Map(o.categories.map(h=>[h.name,h.color]));return h=>{var f;return (s[h]!==null?s[h]!==void 0:!1)?(f=l.get(s[h]))!=null?f:nt.muted:e}}if((o.continuous?o.stops.length>=2:!1)){let l=r.scaleLinear().domain(o.stops).range(o.colors).interpolate(r.interpolateLab).clamp(!0);return h=>(a[h]===null?!0:a[h]===void 0)?e:l(a[h])}if(!o.colors.length)return()=>e;let c=r.scaleThreshold().domain(o.thresholds).range(o.colors);return l=>(a[l]===null?!0:a[l]===void 0)?e:c(a[l])}function Ct(t,n){for(let[r,o]of Object.entries(n))t.style.setProperty(r,o,"important")}var _n=t=>{var o,e;let n=["th","st","nd","rd"],r=t%100;return`${t}${(e=(o=n[(r-20)%10])!=null?o:n[r])!=null?e:n[0]}`},_e=new WeakMap;function Nn(t,n){let r=t.width/n.w,o=n.features.map(e=>e.d).join("");return{height:Math.ceil(n.h*r),transform:`scale(${r})`,unit:1/r,d:e=>e.d,anchor:e=>e.anchor?[e.anchor[0]*r,e.anchor[1]*r]:null,land:()=>o,inner:()=>n.inner,outer:()=>n.outer,group:()=>n.group,sphere:()=>"",graticule:()=>""}}function Re(t,n){var i;if((t.sphere?!0:((i=n.data.map)!=null?i.pr:!1)))return t;let[[r,o],[e,a]]=Pe,s=m=>{let[p,l]=m.split("L")[0].split(" ").map(Number);return __gvAnd(__gvAnd((p>=r?(e)>=(p):!1),()=>(l>=o)),()=>((a)>=(l)))},c=m=>m.split("M").filter(p=>(p?!s(p):p)).map(p=>`M${p}`).join("");return{...t,features:t.features.filter(m=>!m.id.startsWith("72")),inner:c(t.inner),outer:c(t.outer),group:c(t.group)}}function Rn(t){let n=0;for(let r=0,o=t.length-1;(t.length)>(r);o=r++)n+=t[o][0]*t[r][1]-t[r][0]*t[o][1];return n}function In(t){let n=r=>(r.length>=4?Math.abs(Rn(r))>1e-6:!1);return t.features.map(r=>{var o;return{type:"MultiPolygon",coordinates:((o=r.polygons)!=null?o:[]).filter(e=>__gvAnd(e.length,()=>(n(e[0])))).map(e=>[e[0],...e.slice(1).filter(n)])}})}function Ne(t,n,r,o=In(n)){let{d3:e,spec:a}=t,s=a.style.map,c=s.projection==="globe",i={type:"GeometryCollection",geometries:o},m={type:"Sphere"},p,l;if(c)l=Math.min(t.width,Gn),p=e.geoOrthographic().rotate([r[0],r[1]]).fitExtent([[4,4],[t.width-4,l-4]],m);else{let x=(s.sphere?!0:s.graticule)?m:i;p=e.geoEqualEarth().fitWidth(t.width,x),l=Math.ceil(e.geoPath(p).bounds(x)[1][1])+1}let h=e.geoPath(p),f=new Map(n.features.map((x,g)=>[x.id,o[g]])),b=x=>{var g;return(g=h({type:"MultiLineString",coordinates:x}))!=null?g:""};return{height:l,transform:null,unit:1,d:x=>{var g;return(g=h(f.get(x.id)))!=null?g:""},anchor:x=>{let g=h.centroid(f.get(x.id));return (Number.isFinite(g[0])?Number.isFinite(g[1]):!1)?g:null},land:()=>{var x;return(x=h(i))!=null?x:""},inner:()=>{var x,g;return b((g=(x=n.lines)==null?void 0:x.inner)!=null?g:[])},outer:()=>{var x,g;return b((g=(x=n.lines)==null?void 0:x.outer)!=null?g:[])},group:()=>{var x,g;return b((g=(x=n.lines)==null?void 0:x.group)!=null?g:[])},sphere:()=>{var x;return(((c?!0:s.sphere))?(x=h(m))!=null:!1)?x:""},graticule:()=>{var x;return (s.graticule?(x=h(e.geoGraticule10()))!=null:!1)?x:""}}}function Ie(t,n){var H,X,E,u;let{d3:r,spec:o,svg:e}=t,a=o.data.map,s=o.style.map,c=(!!n.sphere?s.projection==="globe":!1),i=(H=s.center)!=null?H:[0,20],m=_e.get(t.chartEl),p=((m?m.center[0]===i[0]:!1)?m.center[1]===i[1]:!1)?m:{center:i,rotate:[-i[0],-i[1]]};_e.set(t.chartEl,p);let l=n.sphere?Ne(t,n,p.rotate):Nn(t,n),h=o.type==="map-dots",f=Vn(o,t.dark,r),b=(E=(X=o.data.series[0])==null?void 0:X.values)!=null?E:[],x=new Map(a.ids.map((d,T)=>[d,T]).filter(([d])=>d!==null)),g=b.map((d,T)=>[d,T]).filter(([d])=>d!==null).sort((d,T)=>T[0]-d[0]),k=new Map;g.forEach(([d,T],v)=>k.set(T,(v>0?g[v-1][0]===d:!1)?k.get(g[v-1][1]):v+1));let P=(u=t.page)!=null?u:t.dark?"#1A1A1A":"#FFFFFF",N=(d,T,v)=>Ct(d,{fill:"none",stroke:T,"stroke-width":`${v}px`,"vector-effect":"non-scaling-stroke","stroke-linejoin":"round","pointer-events":"none"}),F=t.id("map-shadow"),G=l.unit;e.append("defs").append("filter").attr("id",F).attr("x","-5%").attr("y","-5%").attr("width","110%").attr("height","110%").append("feGaussianBlur").attr("stdDeviation",2.5*G);let y=e.append("g").attr("class",t.cls("map"));(l.transform?y.attr("transform",l.transform):!1);let R=y.append("path").attr("class",t.cls("shadow")).attr("filter",`url(#${F})`).attr("transform",`translate(${2*G},${2.5*G})`);Ct(R.node(),{fill:t.dark?"#000000":mt.earth,opacity:"0.25",stroke:"none","fill-rule":"evenodd","pointer-events":"none"});let _=y.append("path").attr("class",t.cls("sphere"));Ct(_.node(),{fill:c?t.dark?"#23282C":"#EEF3F6":"none",stroke:t.dark?nt.darkMuted:nt.muted,"stroke-width":"0.75px","pointer-events":"none"});let V=y.append("path").attr("class",t.cls("graticule"));N(V.node(),t.dark?nt.darkGrid:nt.grid,.5);let S=(d,T)=>{var Z,Q;if(d===void 0)return`\x3cdiv class="${t.cls("tip-title")}">${ct(T)}\x3c/div>\x3cdiv class="${t.cls("tip-row")}">\x3cspan>No data\x3c/span>\x3c/div>`;let v=b[d],L=`\x3cdiv class="${t.cls("tip-title")}">${ct(o.data.x[d])}\x3c/div>`;(a.categories?(L+=it(t.cls("tip-row"),f(d),"Category",(Z=a.categories[d])!=null?Z:"None")):!1),(v!=null?(L+=it(t.cls("tip-row"),(a.categories?!0:h)?"transparent":f(d),o.data.series[0].label,t.fmtValue(v)),((!h?g.length>2:!1)?(L+=it(t.cls("tip-row"),"transparent","Rank",`${_n(k.get(d))} of ${g.length}`)):!1)):!1);for(let q of(Q=a.tips)!=null?Q:[])(q.values[d]?(L+=it(t.cls("tip-row"),"transparent",q.label,q.values[d])):!1);return L},M=y.append("g").selectAll("path").data(n.features).join("path").attr("class",t.cls("place")).each(function(d){let T=x.get(d.id);Ct(this,{fill:h?t.dark?Te:Ce:T===void 0?t.dark?Pt:Dt:f(T),stroke:"none","fill-rule":"evenodd"})}),I=y.append("path");N(I.node(),P,n.id==="us-counties"?.4:.75);let B=y.append("path");N(B.node(),P,1.2);let O=y.append("path").attr("class",t.cls("map-hover"));N(O.node(),t.dark?nt.darkPrimary:mt.earth,1.5),O.style("display","none");let Y=null;(h?!0:t.tooltip.bind(y,d=>{let T=d.target.__data__;if((!T?!0:!d.target.classList.contains(t.cls("place"))))return;let[v,L]=r.pointer(d,t.chartEl);Y=T,O.attr("d",l.d(T)).style("display",null),t.tooltip.show(S(x.get(T.id),T.name),v,L)},()=>{Y=null,O.style("display","none")}));let K=()=>{};if(h){let d=s.domain?Math.max(Math.abs(s.domain[0]),Math.abs(s.domain[1])):0,T=s.symbolMax*Math.min(1,t.width/600)*(t.mobile?.8:1),v=D=>(D===null?!0:!d)?3.5:Math.max(1.5,T*Math.sqrt(Math.abs(D)/d)),L=new Map(n.features.map(D=>[D.id,D])),Z=o.data.x.map((D,w)=>({i:w,r:v(b[w])})).sort((D,w)=>w.r-D.r),Q=D=>a.categories?f(D):mt.turquoise,q=n.sphere?1:t.width/n.w,et=D=>{var ut;let w=(ut=a.xy)==null?void 0:ut[D];if(w)return[w[0]*q,w[1]*q];let U=a.ids[D]?L.get(a.ids[D]):void 0;return U?l.anchor(U):null},A=e.append("g").selectAll("circle").data(Z).join("circle").attr("class",t.cls("symbol")).attr("r",D=>D.r).each(function(D){Ct(this,{fill:Q(D.i),"fill-opacity":d?"0.78":"0.9",stroke:P,"stroke-width":"0.75px"})});K=()=>A.each(function(D){var U,ut;let w=et(D.i);this.setAttribute("cx",String((U=w==null?void 0:w[0])!=null?U:0)),this.setAttribute("cy",String((ut=w==null?void 0:w[1])!=null?ut:0)),this.style.setProperty("display",w?"":"none")}),t.tooltip.bind(A,(D,w)=>{let[U,ut]=r.pointer(D,t.chartEl);t.tooltip.show(S(w.i,o.data.x[w.i]),U,ut)})}let tt=()=>{R.attr("d",c?l.sphere():l.land()),_.attr("d",l.sphere()),V.attr("d",l.graticule()),M.attr("d",d=>l.d(d)),I.attr("d",l.inner()),B.attr("d",l.group()),(Y?O.attr("d",l.d(Y)):!1),K()};if(tt(),c){let d=Math.min(t.width,l.height)/2,T=r.drag().on("drag",v=>{let L=75/d;p.rotate=[p.rotate[0]+v.dx*L,Math.max(-85,Math.min(85,p.rotate[1]-v.dy*L))],l=Ne(t,n,p.rotate),tt()});e.call(T).style("touch-action","none").style("cursor","grab")}if((o.type==="map-states"?s.labels:!1)){let d=e.append("g").attr("class",t.cls("map-labels")).style("pointer-events","none"),T=n.features.map(q=>({f:q,a:l.anchor(q)})).filter(q=>!!q.a),v=T.filter(q=>Ve.includes(q.f.code)).sort((q,et)=>q.a[1]-et.a[1]),L=(520)>(t.width),Z=(q,et,A,D,w)=>d.append("text").attr("class",t.cls("map-label")).attr("x",q).attr("y",et).attr("dy","0.35em").attr("text-anchor",A).style("fill",D).style("fill-opacity","0.8").text(w),Q=t.width/n.w;for(let{f:q,a:et}of T){if((!q.code?!0:Ve.includes(q.code)))continue;let A=x.get(q.id),D=Pn[q.code],[w,U]=D?[D[0]*Q,D[1]*Q]:et;Z(w,U,"middle",A===void 0?t.dark?nt.darkPrimary:nt.primary:Ot(f(A)),q.code)}if(!L){let q=t.width-16*Q,et=-1/0;for(let{f:A,a:D}of v){et=Math.max(D[1],et+14);let w=d.append("line").attr("x1",D[0]).attr("y1",D[1]).attr("x2",q-14).attr("y2",et);Ct(w.node(),{stroke:t.dark?nt.darkMuted:nt.secondary,"stroke-width":"0.75px"}),Z(q,et,"end",t.dark?nt.darkPrimary:nt.primary,A.code)}}}return l.height}var kt=8,Vt=2,oe=Vt+kt+13,ze=oe+5;function He(t,n,r,o){var b,x,g,k,P,N,F,G;if(!n)return;let e=r.style.map,a=r.data.map,s=t.dark?nt.darkSecondary:nt.secondary,c=t.dark?Pt:Dt,i=new Set(a.ids.filter(y=>y!==null)),m=(r.type!=="map-dots"?o.features.some(y=>!i.has(y.id)):!1),p=(y,R)=>`\x3cspan class="${t.cls("legend-item")}">\x3csvg class="${t.cls("swatch")}" width="12" height="12" aria-hidden="true">\x3crect width="12" height="12" rx="2" fill="${y}"/>\x3c/svg>${ct(R)}\x3c/span>`,l=m?p(c,__gvOr(e.noDataLabel,()=>("No data"))):"",h=y=>{if(!m)return{svg:"",width:0};let R=__gvOr(e.noDataLabel,()=>("No data")),_=Vt+kt/2;return{svg:`\x3crect class="${t.cls("legend-nodata")}" x="${y}" y="${_-5}" width="10" height="10" rx="2" fill="${c}"/>\x3ctext x="${y+16}" y="${_}" dy="0.35em" class="${t.cls("legend-key")}">${ct(R)}\x3c/text>`,width:40+R.length*7.5}},f="";if(e.categories.length)f=e.categories.map(y=>p(y.color,y.name)).join("")+l;else if(r.type==="map-dots"){let y=e.domain?Math.max(Math.abs(e.domain[0]),Math.abs(e.domain[1])):0,R=e.symbolMax*Math.min(1,t.width/600)*(t.mobile?.8:1),_=V=>R*Math.sqrt(V/y);if((y?e.sizeTicks.length:!1)){let V=_(e.sizeTicks[e.sizeTicks.length-1]),S=V*2+7,M=[];[...e.sizeTicks].reverse().forEach((K,tt)=>M.push(Math.max(S-2*_(K),tt?M[tt-1]+12:7)));let I=V*2+70,B=Math.max(S+3,M[M.length-1]+8),O=`stroke:${s} !important;fill:none !important`,Y=[...e.sizeTicks].reverse().map((K,tt)=>{let H=S-2*_(K);return`\x3ccircle cx="${V+1}" cy="${S-_(K)}" r="${_(K)}" style="${O};stroke-width:1px"/>\x3cpolyline points="${V+1},${H} ${V*2+4},${H} ${V*2+8},${M[tt]}" style="${O};stroke-width:0.5px"/>\x3ctext x="${V*2+11}" y="${M[tt]}" dy="0.35em" class="${t.cls("legend-label")}">${ct(t.fmtValue(K))}\x3c/text>`}).join("");f=`\x3csvg width="${I}" height="${B}" aria-hidden="true">${Y}\x3c/svg>`}}else if(((e.continuous?e.stops.length>=2:!1)?e.stops[0]!==e.stops[e.stops.length-1]:!1)){let y=Math.min(260,t.width-20),R=t.id("legend-grad"),_=e.colors.map((M,I)=>`\x3cstop offset="${I/(e.colors.length-1)*100}%" stop-color="${M}"/>`).join(""),V=[e.stops[0],e.stops.length===3?e.stops[1]:null,e.stops[e.stops.length-1]].map((M,I)=>M===null?"":`\x3ctext x="${I/2*y}" y="${oe}" text-anchor="${["start","middle","end"][I]}" class="${t.cls("legend-label")}">${ct(t.fmtValue(M))}\x3c/text>`).join(""),S=h(y+24);f=`\x3csvg width="${y+S.width+4}" height="${ze}" aria-hidden="true">\x3cdefs>\x3clinearGradient id="${R}">${_}\x3c/linearGradient>\x3c/defs>\x3crect class="${t.cls("legend-step")}" y="${Vt}" width="${y}" height="${kt}" rx="${kt/2}" fill="url(#${R})"/>${V}${S.svg}\x3c/svg>`}else if((e.colors.length===1?!0:((e.continuous?e.stops.length>=2:!1)?e.stops[0]===e.stops[e.stops.length-1]:!1))){let y=(x=(b=e.domain)==null?void 0:b[0])!=null?x:e.stops[0];f=(y===void 0?"":p(e.colors[0],t.fmtValue(y)))+l}else if(e.colors.length){let y=e.colors.length,R=(P=(k=(g=e.domain)==null?void 0:g[0])!=null?k:e.thresholds[0])!=null?P:0,_=(G=(F=(N=e.domain)==null?void 0:N[1])!=null?F:e.thresholds[e.thresholds.length-1])!=null?G:0,V=$t(t.d3,r.style.yFormat,[R,_],Math.max(1,e.thresholds.length)),S=e.thresholds.map(H=>V(H)),M=Math.max(0,...S.map(H=>H.length))*7+6,I=Math.max(M,Math.min(44,Math.floor((Math.min(320,t.width)-20)/y))),B=I*y,O=t.id("legend-clip"),Y=e.colors.map((H,X)=>`\x3crect class="${t.cls("legend-step")}" x="${X*I}" y="${Vt}" width="${I}" height="${kt}" fill="${H}"/>`).join(""),K=S.map((H,X)=>`\x3ctext x="${(X+1)*I}" y="${oe}" text-anchor="middle" class="${t.cls("legend-label")}">${ct(H)}\x3c/text>`).join(""),tt=h(B+24);f=`\x3csvg width="${B+tt.width+4}" height="${ze}" aria-hidden="true">\x3cdefs>\x3cclipPath id="${O}">\x3crect y="${Vt}" width="${B}" height="${kt}" rx="${kt/2}"/>\x3c/clipPath>\x3c/defs>\x3cg clip-path="url(#${O})">${Y}\x3c/g>${K}${tt.svg}\x3c/svg>`}n.innerHTML=f,n.style.display=f?"":"none",n.removeAttribute("role"),n.removeAttribute("aria-label")}function se(t){return t.replace(/[\x26\x3c>"]/g,n=>({"\x26":"\x26amp;","\x3c":"\x26lt;",">":"\x26gt;",'"':"\x26quot;"})[n])}var zn=["line","area","column","bar","stacked","combo","dot","scatter"];function ie(t){return (t.style.legend==="direct"?be.includes(t.type):!1)}function Oe(t,n,r,o){var g,k,P,N;if(!n)return;let e=r,a=e.data.series,s=(g=e.style.legend)!=null?g:"top",c=()=>{n.innerHTML="",n.style.display="none",n.removeAttribute("role"),n.removeAttribute("aria-label")};if(((s==="none"?!0:s==="subtitle")?!0:ie(e)))return c();let i=(F,G,y)=>F==="line"?`\x3csvg class="${t.cls("swatch")}" width="24" height="10" aria-hidden="true">\x3cline x1="1" x2="23" y1="5" y2="5" stroke="${G}" stroke-width="3.5" stroke-linecap="round"${y?' stroke-dasharray="6 4"':""}/>\x3c/svg>`:F==="dot"?`\x3csvg class="${t.cls("swatch")}" width="12" height="12" aria-hidden="true">\x3ccircle cx="6" cy="6" r="5" fill="${G}"/>\x3c/svg>`:`\x3csvg class="${t.cls("swatch")}" width="12" height="12" aria-hidden="true">\x3crect width="12" height="12" rx="2" fill="${G}"/>\x3c/svg>`,m=F=>e.type==="line"?"line":e.type==="combo"?F===0?"box":"line":(e.type==="scatter"?!0:e.type==="dot")?"dot":"box",p=(F,G,y,R=!1)=>{let _=(y!==void 0?l:!1)?"button":"span",V=_==="button"?` type="button" data-key="${se(y)}" aria-pressed="${!o.has(y)}" title="Show or hide ${se(F)}"`:"",S=`${t.cls("legend-item")}${(y!==void 0?o.has(y):!1)?` ${t.cls("legend-item--off")}`:""}`;return`\x3c${_} class="${S}"${V}>${G}${se(F)}${R?`\x3cspan class="${t.cls("legend-axis")}">right axis\x3c/span>`:""}\x3c/${_}>`},l=__gvAnd(__gvAnd(zn.includes(e.type),()=>(a.length>1)),()=>(!e.style.paletteId.startsWith("highlight"))),h=[];if(e.type==="donut"){let F=(k=e.data.categoryColors)!=null?k:[];h=e.data.x.map((G,y)=>p(String(G),i("box",qt(e,F[y],t.dark))))}else if(e.type==="slope"){let F=e.style.paletteId;if(((F==="rise-fall"?!0:F==="rise-fall-azure")?!0:F==="political")){let G=(P=e.data.categoryColors)!=null?P:[],[y,R]=e.data.series,_=I=>G.find((B,O)=>__gvAnd(((y==null?void 0:y.values[O])!=null?(R==null?void 0:R.values[O])!=null:!1),()=>(I(y.values[O],R.values[O])))),V=_((I,B)=>B>I),S=_((I,B)=>(I)>(B)),M=_((I,B)=>B===I);h=[V?p("Rose",i("line",qt(e,V,t.dark))):"",S?p("Fell",i("line",qt(e,S,t.dark))):"",M?p("No change",i("line",qt(e,M,t.dark))):""].filter(Boolean)}}else if((e.style.paletteId.startsWith("highlight")?a.length>1:!1)){let F=Math.max(0,a.findIndex(G=>G.key===e.style.highlight));h=[p(a[F].label,i(m(F),at(e,F,t.dark))),p("All others",i(m(F),at(e,F===0?1:0,t.dark)))]}else if(a.length>1){let F=__gvAnd(a.some(G=>G.axis==="right"),()=>(a.some(G=>G.axis!=="right")));h=a.map((G,y)=>p(G.label,i(m(y),at(e,y,t.dark),G.dashed),G.key,(F?G.axis==="right":F)))}let f=h.join(""),b=n.ownerDocument.activeElement,x=(b?n.contains(b):!1)?(N=b.dataset)==null?void 0:N.key:void 0;if(n.innerHTML=f,n.style.display=h.length?"":"none",(l?h.length:!1)?(n.setAttribute("role","group"),n.setAttribute("aria-label","Series. Select to show or hide.")):(n.removeAttribute("role"),n.removeAttribute("aria-label")),x!==void 0){let F=[...n.querySelectorAll("[data-key]")].find(G=>G.dataset.key===x);((F?n.ownerDocument.activeElement!==F:!1)?F.focus():!1)}}function qt(t,n,r){return yt(t,n!=null?n:nt.muted,r)}function qe(t,n,r,o={}){let e=t.svg.append("g").attr("class",t.cls("tick-probe")).attr("opacity",0),a=n.map(s=>{var i;let c=e.append("text").attr("class",(i=o.cls)!=null?i:null).style("font-size",`${r}px`).text(s);return (o.weight?c.style("font-weight",String(o.weight)):!1),Math.ceil(c.node().getComputedTextLength())});return e.remove(),a}function lt(t,n,r,o={}){return Math.max(0,...qe(t,n,r,o))}function wt(t,n){return n.ticks(t.mobile?4:5)}function Tt(t,n,r,o){let e=wt(t,r),a=t.fmtAxis;n.append("g").attr("class",t.cls("grid")).selectAll("line").data(e).join("line").attr("x1",0).attr("x2",o).attr("y1",i=>Math.round(r(i))+.5).attr("y2",i=>Math.round(r(i))+.5),n.append("g").attr("class",t.cls("ticks")).selectAll("text").data(e).join("text").attr("x",-8).attr("y",i=>r(i)).attr("dy","0.32em").attr("text-anchor","end").text(i=>a(i))}function St(t,n,r,o){let[e,a]=r.domain();if((e>0?!0:(0)>(a)))return;let s=((0)>(e)?a>0:!1);n.append("line").attr("class",t.cls(s?"zero":"baseline")).attr("x1",0).attr("x2",o).attr("y1",Math.round(r(0))+.5).attr("y2",Math.round(r(0))+.5)}function Xt(t,n,r,o){n.append("line").attr("class",t.cls("baseline")).attr("x1",0).attr("x2",r).attr("y1",o+.5).attr("y2",o+.5)}function Wt(t,n){return Math.max(2,Math.floor(t/(n?70:90)))}var Hn=10;function On(t){return t.mobile?12:14}function Bn(t,n,r,o){return (r)>(t-n/2)?{anchor:"start",start:t,end:t+n}:t+n/2>o?{anchor:"end",start:t-n,end:t}:{anchor:"middle",start:t-n/2,end:t+n/2}}function Yt(t,n,r,o){let e=-t.margin.left,a=t.width-t.margin.left,s=new Map,c=p=>{let l=[...new Set(p.filter(h=>!s.has(h)))];return qe(t,l,On(t)).forEach((h,f)=>s.set(l[f],h)),p.map(h=>s.get(h))},i=null,m=-1;for(let p=Math.max(1,Math.floor(o));p>=1;p--){let l=r(p);if(l.ticks.length===m)continue;m=l.ticks.length;let h=l.ticks.map(l.label),f=c(h),b=l.ticks.map((k,P)=>Bn(n(k),f[P],e,a));i={...l,anchor:k=>b[k].anchor};let x=b.every(k=>(k.start>=e-.5?(a+.5)>=(k.end):!1)),g=b.every((k,P)=>(P===0?!0:(k.start)>=(b[P-1].end+Hn)));if((x?g:!1))return i}return i!=null?i:{...r(1),anchor:()=>"middle"}}function Zt(t,n){let r=n.domain();return t.spec.data.xKind==="year"?o=>({ticks:n.ticks(o).filter(e=>Number.isInteger(e)),label:e=>String(e)}):o=>{let e=t.xAxis(r,o);return{ticks:n.ticks(o),label:a=>e(a)}}}function Ut(t,n,r,o,e){n.append("g").attr("class",t.cls("ticks")).attr("transform",`translate(0,${r})`).selectAll("text").data(o.ticks).join("text").attr("x",a=>e(a)).attr("y",22).attr("text-anchor",(a,s)=>o.anchor(s)).text((a,s)=>o.label(a,s))}function jt(t,n,r,o){let e=[...t].sort((m,p)=>m.y-p.y),a=e.length;if(!a)return;let s=a>1?Math.min(n,Math.max(0,o-r)/(a-1)):n,c=m=>{m.top=Math.max(r,Math.min(o-(m.size-1)*s,m.sum/m.size))},i=[];e.forEach((m,p)=>{let l={start:p,size:1,sum:m.y,top:m.y};for(c(l),i.push(l);i.length>1;){let h=i[i.length-1],f=i[i.length-2];if((h.top+1e-9)>=(f.top+f.size*s))break;f.sum+=h.sum-h.size*f.size*s,f.size+=h.size,i.pop(),c(f)}});for(let m of i)for(let p=0;(m.size)>(p);p++)e[m.start+p].y=m.top+p*s}function je(t,n,r,o,e){let a=[],s=[];for(let i of t){let m=[...a,{item:i,y:i.y}].map(l=>({own:l.y,y:l.y})),p=(o-r)>=((m.length-1)*n);(p?jt(m,n,r,o):!1),(p?m.every(l=>__gvLe(Math.abs(l.y-l.own),e)):!1)?a.push({item:i,y:i.y}):s.push(i)}let c=a.map(i=>({y:i.y}));return jt(c,n,r,o),a.forEach((i,m)=>i.item.y=c[m].y),{kept:a.map(i=>i.item),dropped:s}}function Xe(t,n,r,o){let e=[...new Set(r.map(g=>g.getTime()))].sort((g,k)=>g-k),a=qn(r,e),s=[...[t.utcDay,t.utcDay.every(2),t.utcWeek,t.utcWeek.every(2)].map(g=>[g,"day"]),...[1,2,3,6].map(g=>[t.utcMonth.every(g),"month"]),...[1,2,5,10,20,25,50,100,200,250,500,1e3].map(g=>[t.utcYear.every(g),"year"])],c=s.slice(s.findIndex(([,g])=>g===a)),[i,m]=n.domain(),[p,l]=c[c.length-1],h=[];for(let[g,k]of c){let P=Be(g,e,i,m);if((o)>=(P.length)){[p,l,h]=[g,k,P];break}}(h.length?!0:(h=Be(p,e,i,m))),((!h.length?e.length:!1)?(h=e.length===1?[new Date(e[0])]:[new Date(e[0]),new Date(e[e.length-1])]):!1);let f=(g,k)=>(k===0?!0:h[k-1].getUTCFullYear()!==g.getUTCFullYear()),b={year:t.utcFormat("%Y"),month:t.utcFormat("%b"),monthYear:t.utcFormat("%b %Y"),day:t.utcFormat("%b %-d"),dayYear:t.utcFormat("%b %-d, %Y")};return{ticks:h,label:(g,k)=>l==="year"?b.year(g):l==="month"?f(g,k)?b.monthYear(g):b.month(g):f(g,k)?b.dayYear(g):b.day(g)}}function qn(t,n){if(t.every(a=>(a.getUTCMonth()===0?a.getUTCDate()===1:!1)))return"year";if((2)>(n.length))return t.every(a=>a.getUTCDate()===1)?"month":"day";let o=1/0;for(let a=1;(n.length)>(a);a++)o=Math.min(o,n[a]-n[a-1]);let e=o/864e5;return e>=360?"year":e>=28?"month":"day"}function Be(t,n,r,o){let e=t.range(t.floor(r),new Date(o.getTime()+1)),a=[];return e.forEach((s,c)=>{var p;let i=((p=e[c+1])!=null?p:t.offset(s,1)).getTime(),m=jn(n,s.getTime());((n.length)>(m)?(i)>(n[m]):!1)?a.push(new Date(n[m])):((s>=r?(o)>=(s):!1)?a.push(s):!1)}),a}function jn(t,n){let r=0,o=t.length;for(;(o)>(r);){let e=r+o>>1;(n)>(t[e])?r=e+1:o=e}return r}function dt(t,n){var o,e,a;let r=(o=t.spec.style.imageFill)==null?void 0:o.photos;if(!r)return null;for(let s of n)if((s!==void 0?(((e=r[s])!=null?e.url:!1)):!1))return r[s].url;return __gvOr(((a=r["*"])==null?void 0:a.url),()=>(null))}function Et(t){var r;let n=(r=t.spec.style.imageFill)==null?void 0:r.photos;return(!!n?Object.values(n).some(o=>!!((o!=null?o.url:!1))):!1)}function ft(t,n,r,o){let e=t.svg.select("defs").empty()?t.svg.append("defs"):t.svg.select("defs"),a=t.id("grey");(e.select(`#${a}`).empty()?e.append("filter").attr("id",a).append("feColorMatrix").attr("type","saturate").attr("values","0"):!1);let s=new Map;return{clip:(m,p)=>{let l=p?`${m}|${p.x},${p.y},${p.w},${p.h}`:m,h=s.get(l);if(!h){let f=t.id(`clip-${e.selectAll("clipPath").size()}`);h={id:f,url:m,box:p!=null?p:{x:0,y:0,w:r,h:o},sel:e.append("clipPath").attr("id",f)},s.set(l,h)}return h.sel},paint:()=>{for(let m of s.values())n.insert("image",":first-child").attr("class",t.cls("photo")).attr("href",m.url).attr("x",m.box.x).attr("y",m.box.y).attr("width",Math.max(1,m.box.w)).attr("height",Math.max(1,m.box.h)).attr("preserveAspectRatio","xMidYMid slice").attr("clip-path",`url(#${m.id})`).attr("filter",`url(#${a})`)}}}function Kt(t,n){var o;let r=t.spec.style.imageFill;return __gvAnd((!!r?r.mode==="category":!1),()=>(!!(((o=r.photos[n])!=null?o.url:!1))))}function ht(t,n){var r,o;return n?(o=(r=t.spec.style.imageFill)==null?void 0:r.opacity)!=null?o:.65:1}function Qt(t,n,r,o,e,a){if(((0)>=(r)?!0:(0)>=(o)))return"";let s=Math.min(e,(a==="up"?!0:a==="down")?r/2:o/2,(a==="up"?!0:a==="down")?o:r),c=t+r,i=n+o;switch(a){case"up":return`M${t},${i}V${n+s}Q${t},${n} ${t+s},${n}H${c-s}Q${c},${n} ${c},${n+s}V${i}Z`;case"down":return`M${t},${n}V${i-s}Q${t},${i} ${t+s},${i}H${c-s}Q${c},${i} ${c},${i-s}V${n}Z`;case"right":return`M${t},${n}H${c-s}Q${c},${n} ${c},${n+s}V${i-s}Q${c},${i} ${c-s},${i}H${t}Z`;case"left":return`M${c},${n}H${t+s}Q${t},${n} ${t},${n+s}V${i-s}Q${t},${i} ${t+s},${i}H${c}Z`}}function Mt(t,n,r,o){let e=t.length?t[0]:0,a=e;for(let s of t)((e)>(s)?(e=s):!1),(s>a?(a=s):!1);return (t.length?!0:([e,a]=[0,1])),(n?(e=Math.min(0,e),a=Math.max(0,a)):!1),(r!==null?(e=r):!1),(o!==null?(a=o):!1),(e===a?(a=e+1):!1),(e>a?([e,a]=[a,e]):!1),[e,a]}function Ye(t){var q,et;let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=r.type==="area",c=(s?e.series.length>1:s),i=e.xKind==="category",m=e.x.map((A,D)=>e.xKind==="date"?Le(A):i?D:Number(A)),p=m.length;if(p===0)return;let l=__gvAnd((!s?e.series.some(A=>A.axis==="right"):!1),()=>(e.series.some(A=>A.axis!=="right"))),h=A=>(l?e.series[A].axis==="right":l),f=A=>e.series.filter((D,w)=>h(w)===A).flatMap(D=>D.values).filter(D=>D!==null),b=[],x,g;if(c){let A=m.map((D,w)=>e.series.map(U=>{var ut;return(ut=U.values[w])!=null?ut:0}));b=n.stack().keys(e.series.map((D,w)=>w)).value((D,w)=>D[w]).offset(n.stackOffsetDiverging)(A),[x,g]=Mt(b.flatMap(D=>D.flatMap(w=>[w[0],w[1]])),!0,a.yMin,a.yMax)}else[x,g]=Mt(f(!1),__gvOr(__gvOr(a.yFromZero,()=>(s)),()=>(We(t))),a.yMin,a.yMax);let k=t.margin,P=t.height-k.top-k.bottom,N=t.mobile?4:5,F=n.scaleLinear().domain([x,g]).nice(N).range([P,0]);t.setAxis(F.domain(),N),k.left=lt(t,wt(t,F).map(t.fmtAxis),t.mobile?12:14)+10;let G=l?n.scaleLinear().domain(Mt(f(!0),a.rightFromZero,null,null)).nice(N).range([P,0]):F,y=l?t.rightAxis(G.domain(),N):t.fmtAxis,R=l?G.ticks(N):[],_=l?lt(t,R.map(y),t.mobile?12:14)+10:0,V=A=>h(A)?G:F,S=A=>t.fmtFor(e.series[A]),M=e.series.map(A=>{for(let D=A.values.length-1;D>=0;D--)if(A.values[D]!==null)return D;return-1}),I=__gvAnd(ie(r),()=>(!c)),B=__gvAnd((__gvOr(a.valueLabels,()=>(I))),()=>(!c)),O=A=>{if((0)>(M[A]))return["",""];let D=S(A)(e.series[A].values[M[A]]);return I?[e.series[A].label,a.valueLabels?D:""]:["",D]},Y=A=>O(A).filter(Boolean).join(" "),K=_?_+6:9,tt=I?{cls:t.cls("direct-label"),size:13,weight:700}:{cls:t.cls("value-label"),size:12,weight:500};if(B){let A=lt(t,e.series.map((D,w)=>Y(w)),tt.size,tt);k.right=Math.max(k.right,Math.min(A,t.width/3)+K+6)}else l?k.right=Math.max(k.right,_+4):(a.endDots?(k.right=Math.max(k.right,10)):!1);let H=Math.max(40,t.width-k.left-k.right),X=e.xKind==="date"?n.scaleUtc().domain(n.extent(m)).range([0,H]):n.scaleLinear().domain(n.extent(m)).range([0,H]),E=o.append("g").attr("transform",`translate(${k.left},${k.top})`);if(Tt(t,E,F,H),Xt(t,E,H,P),St(t,E,F,H),l){let A=xt(r,at(r,e.series.findIndex(D=>D.axis==="right"),t.dark),t.dark);E.append("g").attr("class",t.cls("ticks")).selectAll("text").data(R).join("text").attr("x",H+8).attr("y",D=>G(D)).attr("dy","0.32em").style("fill",A).text(D=>y(D)),(a.rightLabel?o.append("text").attr("class",t.cls("axis-title")).attr("x",t.width).attr("y",t.rightTitleY).attr("text-anchor","end").style("fill",A).text(a.rightLabel):!1)}let u=A=>X(A);Ut(t,E,P,Yt(t,u,Xn(t,X,m),i?p:Wt(H,t.mobile)),u);let d=A=>X(m[A]),T=t.id("plot");o.append("defs").append("clipPath").attr("id",T).append("rect").attr("x",-8).attr("y",-8).attr("width",H+16).attr("height",P+16);let v=E.append("g").attr("clip-path",(a.yMin!==null?!0:a.yMax!==null)?`url(#${T})`:null),L=E.append("g");if(s){let A=Et(t)?ft(t,v,H,P):null;(c?b:[e.series[0].values.map(w=>[0,w!=null?w:0])]).forEach((w,U)=>{var $;let j=($=n.area().x((z,W)=>d(W)).y0(z=>F(z[0])).y1(z=>F(z[1]))(w))!=null?$:"",C=A?dt(t,[e.series[U].key]):null;((A?C:!1)?A.clip(C).append("path").attr("d",j):!1),v.append("path").attr("class",t.cls("area")).attr("d",j).attr("fill",at(r,U,t.dark)).attr("fill-opacity",ht(t,C)),((p===1?e.series[U].values[0]!==null:!1)?v.append("circle").attr("cx",d(0)).attr("cy",F(w[0][1])).attr("r",3.5).attr("fill",at(r,U,t.dark)):!1)}),(A==null?!0:A.paint())}if(!s){let[A,D]=F.domain(),w=((We(t)?(0)>=(A):!1)?D>=0:!1)?dt(t,[e.series[0].key]):null,U=w?ft(t,v,H,P):null;if((U?w:!1)){let $=(q=n.area().defined(z=>z!==null).x((z,W)=>d(W)).y0(F(0)).y1(z=>F(z))(e.series[0].values))!=null?q:"";U.clip(w).append("path").attr("d",$),v.append("path").attr("d",$).attr("fill",at(r,0,t.dark)).attr("fill-opacity",ht(t,w)),U.paint()}let ut=C=>n.line().defined($=>$!==null).x(($,z)=>d(z)).y($=>V(C)($)),j=e.series.map((C,$)=>$).sort((C,$)=>Number(Ft(r,C))-Number(Ft(r,$))).reverse();for(let C of j){let $=e.series[C],z=(et=ut(C)($.values))!=null?et:"";((e.series.length>1?!Ft(r,C):!1)?v.append("path").attr("class",t.cls("line-halo")).attr("d",z):!1),v.append("path").attr("class",t.cls("line")).attr("d",z).attr("stroke",at(r,C,t.dark)).attr("stroke-width",Ft(r,C)?2:t.mobile?3:3.5).attr("stroke-dasharray",$.dashed?"6 4":null),$.values.forEach((W,st)=>{(((W===null?!0:$.values[st-1]!=null)?!0:$.values[st+1]!=null)?!0:v.append("circle").attr("cx",d(st)).attr("cy",V(C)(W)).attr("r",3.5).attr("fill",at(r,C,t.dark)))})}if((a.endDots?e.series.forEach((C,$)=>{if(((0)>(M[$])?!0:Ft(r,$)))return;let z=d(M[$]),W=V($)(e.series[$].values[M[$]]);v.append("circle").attr("class",`${t.cls("dot")} ${t.cls("dot--pulse")}`).attr("cx",z).attr("cy",W).attr("r",5).attr("fill",at(r,$,t.dark))}):!1),B){let C=e.series.map((z,W)=>({i:W,y:M[W]>=0?V(W)(z.values[M[W]]):NaN,x:M[W]>=0?d(M[W]):0})).filter(z=>(!Number.isNaN(z.y)?((!Ft(r,z.i)?!0:I)):!1));jt(C,15,6,P);let $=t.width/3;for(let z of C){let W=e.series[z.i].values[M[z.i]],[st,rt]=V(z.i).domain(),J=W>rt?-1:(st)>(W)?1:0,ot=(l?H:z.x)+K,pt=xt(r,at(r,z.i,t.dark),t.dark);(J?L.append("path").attr("class",t.cls("off-scale")).attr("d",`M${ot+4},${z.y+J*5}l-4,${-J*8}h8z`).attr("fill",pt).append("title").text((0)>(J)?"Above the axis range":"Below the axis range"):!1);let Lt=L.append("text").attr("class",t.cls(I?"direct-label":"value-label")).attr("x",ot+(J?12:0)).attr("y",z.y).attr("dy","0.32em").style("fill",pt).text(Y(z.i)),_t=Lt.node(),[At,he]=O(z.i),Nt=(At?At:he),dn=fe=>At?[`${fe.trimEnd()}\u2026`,he].filter(Boolean).join(" "):`${fe.trimEnd()}\u2026`;for(;(_t.getComputedTextLength()>$?Nt.length>4:!1);)Nt=Nt.slice(0,-2),Lt.text(dn(Nt))}}}let Z=E.append("g").attr("class",t.cls("hover")).style("display","none");Z.append("line").attr("class",t.cls("rule")).attr("y1",0).attr("y2",P);let Q=E.append("rect").attr("class",t.cls("overlay")).attr("width",H).attr("height",P);t.tooltip.bind(Q,A=>{var st;let[D]=n.pointer(A),w=X.invert(D),U=Math.max(0,Math.min(p-1,n.bisectCenter(m,w))),ut=d(U);Z.style("display",null).select("line").attr("x1",ut).attr("x2",ut);let j=e.series.map((rt,J)=>({si:J,v:rt.values[U]})).filter(rt=>rt.v!==null).sort((rt,J)=>J.v-rt.v),C=j.slice(0,8),$=C.map(rt=>it(t.cls("tip-row"),at(r,rt.si,t.dark),e.series[rt.si].label,S(rt.si)(rt.v))).join(""),z=j.length>C.length?`\x3cdiv class="${t.cls("tip-more")}">+${j.length-C.length} more\x3c/div>`:"",W=C.length?c?F((st=n.max(b,rt=>rt[U][1]))!=null?st:0):V(C[0].si)(C[0].v):P/2;t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct(i?String(e.x[U]):t.fmtX((e.xKind==="date",m[U])))}\x3c/div>${$}${z}`,ut+k.left,W+k.top)},()=>Z.style("display","none"))}function We(t){let{spec:n}=t;return __gvAnd((n.type==="line"?n.data.series.length===1:!1),()=>(!!dt(t,[n.data.series[0].key])))}function Ft(t,n){var r;return __gvAnd(t.style.paletteId.startsWith("highlight"),()=>(t.data.series[n].key!==((r=t.style.highlight)!=null?r:t.data.series[0].key)))}function Xn(t,n,r){let{d3:o,spec:e}=t,a=e.data;if(a.xKind==="date")return s=>{let c=Xe(o,n,r,s);return{ticks:c.ticks,label:(i,m)=>c.label(i,m)}};if(a.xKind==="category"){let s=a.x.map(String),c=s.length;return i=>({ticks:o.range(0,c,Math.max(1,Math.ceil(c/i))),label:m=>s[m]})}return Zt(t,n)}var Jt="http://www.w3.org/2000/svg",Ze=/[\p{Script=Latin}\p{Script=Greek}\p{Script=Cyrillic}]/u,Ue=/[_\-/.]/;function Wn(t,n,r){let o=[],e=Array.from(t);for(;(e.length>1?r(e.join(""))>n:!1);){let a=i=>{let m=e.slice(0,i).join("");return (Ze.test(e[i-1])?Ze.test(e[i]):!1)?`${m}-`:m},s=1;for(;((e.length-1)>(s)?__gvLe(r(a(s+1)),n):!1);)s++;let c=s;for(;(c>Math.ceil(s/2)?!Ue.test(e[c-1]):!1);)c--;(Ue.test(e[c-1])?(s=c):!1),o.push(a(s)),e=e.slice(s)}return{lines:o,rest:e.join("")}}function Ke(t,n,r,o){let e=[],a="";for(let s of t.split(/\s+/).filter(Boolean)){let c=a?`${a} ${s}`:s;if(__gvLe(o(c),n)){a=c;continue}(a?e.push(a):!1);let i=Wn(s,n,o);if(e.push(...i.lines),a=i.rest,e.length>r)break}if((a?e.push(a):!1),e.length>r){let s=Array.from(e[r-1].replace(/-$/,""));for(;(s.length>1?o(`${s.join("").trimEnd()}\u2026`)>n:!1);)s=s.slice(0,-1);e.length=r,e[r-1]=`${s.join("").trimEnd()}\u2026`}return e}function Qe(t){t.textContent="";let n=t.ownerDocument.createElementNS(Jt,"tspan");return t.appendChild(n),r=>(n.textContent=r,n.getComputedTextLength())}function Je(t,n,r){var a;let o=t.getAttribute("x"),e=t.ownerDocument;if(t.textContent="",(1)>=(n.length)){t.textContent=(a=n[0])!=null?a:"";return}n.forEach((s,c)=>{let i=e.createElementNS(Jt,"tspan");(o!==null?i.setAttribute("x",o):!1),(c?i.setAttribute("dy",`${r}em`):!1),i.textContent=s,t.appendChild(i)})}function ce(t,n,r,o,e){let a=Ke(n,r,o,Qe(t));Je(t,a,e);let s=__gvAnd((a.length>0?a[a.length-1].endsWith("\u2026"):!1),()=>(!n.endsWith("\u2026")));return{lines:Math.max(1,a.length),cut:s}}function Yn(t,n,r,o,e){let a=/\s/.test(t),s=f=>a?f.split(/\s+/).filter(Boolean):Array.from(f),c=f=>f.join(a?" ":""),i=s(t),m=n.filter(f=>f!==t).map(s),p=(f,b)=>(f.length>=b?c(f.slice(-b))===c(i.slice(-b)):!1),l=1;for(;((i.length)>(l)?m.some(f=>p(f,l)):!1);)l++;let h=c(i.slice(-l));for(let f=i.length-l-1;f>=0;f--){let b=c(i.slice(0,f)),x=a?`${b?`${b} `:""}\u2026 ${h}`:`${b}\u2026${h}`,g=Ke(x,r,1/0,e);if((o)>=(g.length))return g}return null}function tn(t,n){var a;let r=t.ownerDocument,o=r.createElementNS(Jt,"g"),e=r.createElementNS(Jt,"title");e.textContent=n,((a=t.parentNode)==null?!0:a.insertBefore(o,t)),o.appendChild(e),o.appendChild(t)}function le(t){var n;return __gvOr(Array.from(t.querySelectorAll("tspan")).map(r=>{var o;return(o=r.textContent)!=null?o:""}).join(" "),()=>(((n=t.textContent)!=null?n:"").trim()))}function ue(t,n,r,o=1.15){var s;let e=((s=t.textContent)!=null?s:"").trim(),a=ce(t,e,n,r,o);return (a.cut?tn(t,e):!1),a.lines}function gt(t,n,r,o=1.15){let e=t.map(s=>{var c;return((c=s.textContent)!=null?c:"").trim()}),a=t.map((s,c)=>s.getComputedTextLength()>n?ce(s,e[c],n,r,o):{lines:1,cut:!1});for(let s of Zn(t,e)){let c=Yn(e[s],e,n,r,Qe(t[s]));c?(Je(t[s],c,o),a[s]={lines:c.length,cut:!0}):a[s]=ce(t[s],e[s],n,r,o)}return a.forEach((s,c)=>__gvAnd(s.cut,()=>(tn(t[c],e[c])))),a.map(s=>s.lines)}function Zn(t,n){let r=new Map;t.forEach((e,a)=>{var s;return r.set(le(e),[...(s=r.get(le(e)))!=null?s:[],a])});let o=[];for(let e of r.values())(new Set(e.map(a=>n[a])).size>1?o.push(...e.filter(a=>n[a]!==le(t[a]))):!1);return o}var en=110,Un=3,Kn=19,Qn=10;function me(t){return t.toUpperCase()===mt.orange?mt.azure:mt.orange}function nn(t){var et,A,D,w,U,ut;let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=r.type==="stacked",c=r.type==="combo",i=j=>(!c?!0:j===0),m=j=>__gvAnd((c?j>0:c),()=>(e.series[j].axis==="right")),p=j=>t.fmtFor(e.series[j]),l=e.x.map(j=>t.fmtX(j)),h=l.length;if(h===0)return;let f=e.series.length,b=0,x=0,g=[];if(s){let j=e.x.map((C,$)=>e.series.map(z=>{var W;return(W=z.values[$])!=null?W:0}));g=n.stack().keys(e.series.map((C,$)=>$)).value((C,$)=>C[$]).offset(n.stackOffsetDiverging)(j),b=Math.min(0,(et=n.min(g,C=>n.min(C,$=>$[0])))!=null?et:0),x=Math.max(0,(A=n.max(g,C=>n.max(C,$=>$[1])))!=null?A:0)}else{let j=e.series.filter((C,$)=>!m($)).flatMap(C=>C.values).filter(C=>C!==null);b=Math.min(0,(D=n.min(j))!=null?D:0),x=Math.max(0,(w=n.max(j))!=null?w:0)}((a.yMax!==null?a.yMax>x:!1)?(x=a.yMax):!1),(b===x?(x=1):!1);let k=e.series.some((j,C)=>m(C)),P=t.mobile?4:5,N=null,F=t.fmtAxis,G=0;if(k){let j=e.series.filter((z,W)=>m(W)).flatMap(z=>z.values).filter(z=>z!==null),C=(U=n.min(j))!=null?U:0,$=(ut=n.max(j))!=null?ut:1;(a.rightFromZero?(C=Math.min(0,C),$=Math.max(0,$)):!1),(C===$?($=C+1):!1),N=n.scaleLinear().domain([C,$]).nice(P),F=t.rightAxis(N.domain(),P),G=lt(t,N.ticks(P).map(F),t.mobile?12:14)+10,t.margin.right=Math.max(t.margin.right,G+4)}let y=t.margin,R=n.scaleLinear().domain([b,x]).nice(t.mobile?4:5).range([t.height-y.top-40,0]);t.setAxis(R.domain(),t.mobile?4:5),y.left=lt(t,wt(t,R).map(t.fmtAxis),t.mobile?12:14)+10;let _=Math.max(40,t.width-y.left-y.right),V=n.scaleBand().domain(l.map((j,C)=>String(C))).range([0,_]).paddingInner(.25).paddingOuter(.1),S=V.bandwidth(),M=t.mobile?12:13,I=lt(t,l,M),B=e.xKind!=="category",O=1,Y="flat";(I>S+V.step()*.25?(B?O=Math.ceil((I+10)/V.step()):Y=((14)>=(h)?S>36:!1)?"wrap":"rotate"):!1),(Y==="rotate"?(O=Math.max(1,Math.ceil(14/Math.max(1,V.step())))):!1);let K=o.append("g").attr("class",t.cls("ticks")),tt=0,H=[];l.forEach((j,C)=>{var st;if(C%O!==0)return;let $=((st=V(String(C)))!=null?st:0)+S/2,z=K.append("text").style("font-size",`${M}px`).text(j),W=z.node();if(Y==="rotate"){z.attr("text-anchor","end").attr("transform",`translate(${$},12) rotate(-45)`);let rt=Math.min((en-12)/.72,($+y.left-M)/Math.SQRT1_2);(W.getComputedTextLength()>rt?ue(W,rt,1):!1),tt=Math.max(tt,W.getComputedTextLength())}else z.attr("x",$).attr("y",20).attr("text-anchor","middle"),(Y==="wrap"?H.push(W):!1)});let X=Math.max(1,...gt(H,V.step()-4,Un));y.bottom=Y==="rotate"?Math.min(en,tt*.72+12)+8:Y==="wrap"?Math.ceil(20+(X-1)*M*1.15+M*.35+8):30;let E=Math.max(60,t.height-y.top-y.bottom),u=n.scaleLinear().domain([b,x]).nice(P).range([E,0]);((a.valueLabels?(24)>=(h):!1)?tr(u,E,y.top,Jn(t,g)):!1),(N==null?!0:N.range([E,0])),K.attr("transform",`translate(${y.left},${y.top+E})`);let d=o.append("g").attr("transform",`translate(${y.left},${y.top})`);if(Tt(t,d,u,_),N){let j=xt(r,at(r,e.series.findIndex((C,$)=>m($)),t.dark),t.dark);d.append("g").attr("class",t.cls("ticks")).selectAll("text").data(N.ticks(P)).join("text").attr("x",_+8).attr("y",C=>N(C)).attr("dy","0.32em").style("fill",j).text(C=>F(C)),(a.rightLabel?o.append("text").attr("class",t.cls("axis-title")).attr("x",t.width).attr("y",t.rightTitleY).attr("text-anchor","end").style("fill",j).text(a.rightLabel):!1)}let T=d.append("g"),v=Et(t)?ft(t,T,_,E):null,L=c?1:f,Z=n.scaleBand().domain(n.range(L)).range([0,S]).padding(L>1?.08:0),Q=[];if(s?(g.forEach((j,C)=>{j.forEach(($,z)=>{var pt;let W=u($[0]),st=u($[1]),rt=Math.abs(W-st);if((0)>=(rt))return;let J=(pt=V(String(z)))!=null?pt:0,ot=v?dt(t,[e.series[C].key,String(e.x[z])]):null;((v?ot:!1)?v.clip(ot).append("rect").attr("x",J).attr("y",Math.min(W,st)).attr("width",S).attr("height",rt):!1),T.append("rect").attr("class",t.cls("segment")).attr("x",J).attr("y",Math.min(W,st)).attr("width",S).attr("height",rt).attr("fill",at(r,C,t.dark)).attr("fill-opacity",ht(t,ot))})}),(a.valueLabels?e.x.forEach((j,C)=>{var rt;let $=e.series.map(J=>{var ot;return(ot=J.values[C])!=null?ot:0}),z=$.filter(J=>J>0).reduce((J,ot)=>J+ot,0),W=$.filter(J=>(0)>(J)).reduce((J,ot)=>J+ot,0),st=((rt=V(String(C)))!=null?rt:0)+S/2;(((z>0?!0:W===0))?Q.push({x:st,y:u(z)-6,text:t.fmtValue(z),below:!1}):!1),((0)>(W)?Q.push({x:st,y:u(W)+14,text:t.fmtValue(W),below:!0}):!1)}):!1)):e.series.forEach((j,C)=>{(i(C)?j.values.forEach(($,z)=>{var _t,At;if($===null)return;let W=((_t=V(String(z)))!=null?_t:0)+((At=Z(C))!=null?At:0),st=Z.bandwidth(),rt=u(Math.max(0,$)),J=Math.abs(u($)-u(0)),ot=Qt(W,rt,st,J,4,$>=0?"up":"down"),pt=v?dt(t,[j.key,String(e.x[z])]):null;((v?pt:!1)?v.clip(pt,Kt(t,String(e.x[z]))?{x:W,y:rt,w:st,h:J}:void 0).append("path").attr("d",ot):!1);let Lt=at(r,C,t.dark);T.append("path").attr("class",t.cls("bar")).attr("d",ot).attr("fill",(((0)>($)?L===1:!1)?!c:!1)?me(Lt):Lt).attr("fill-opacity",ht(t,pt)),(a.valueLabels?Q.push({x:W+st/2,y:$>=0?u($)-6:u($)+14,text:p(C)($),below:(0)>($)}):!1)}):!1)}),(v==null?!0:v.paint()),St(t,d,u,_),(c?e.series.forEach((j,C)=>{var rt;if(C===0)return;let $=(m(C)?N:!1)?N:u,z=J=>{var ot;return((ot=V(String(J)))!=null?ot:0)+S/2},W=(rt=n.line().defined(J=>J!==null).x((J,ot)=>z(ot)).y(J=>$(J))(j.values))!=null?rt:"",st=at(r,C,t.dark);T.append("path").attr("class",t.cls("line-halo")).attr("d",W),T.append("path").attr("class",t.cls("line")).attr("d",W).attr("stroke",st).attr("stroke-width",t.mobile?3:3.5).attr("stroke-dasharray",j.dashed?"6 4":null),j.values.forEach((J,ot)=>{(J!==null?T.append("circle").attr("class",t.cls("dot")).attr("cx",z(ot)).attr("cy",$(J)).attr("r",h>24?2.5:4).attr("fill",st):!1)})}):!1),(Q.length?(24)>=(h):!1)){let j=(L>1?!s:!1)?Z.bandwidth():S;(__gvLe(lt(t,Q.map($=>$.text),12),j+6)?d.append("g").selectAll("text").data(Q).join("text").attr("class",t.cls("value-label")).attr("x",$=>$.x).attr("y",$=>$.y).attr("text-anchor","middle").text($=>$.text):!1)}let q=d.append("g").selectAll("rect").data(l.map((j,C)=>C)).join("rect").attr("class",t.cls("overlay")).attr("x",j=>{var C;return((C=V(String(j)))!=null?C:0)-(V.step()-S)/2}).attr("width",V.step()).attr("y",0).attr("height",E);t.tooltip.bind(q,(j,C)=>{let $=l[C],z=e.series.map((J,ot)=>J.values[C]===null?"":it(t.cls("tip-row"),at(r,ot,t.dark),J.label,p(ot)(J.values[C]))).join(""),W=(s?f>1:!1)?it(t.cls("tip-row"),"transparent","Total",t.fmtValue(e.series.reduce((J,ot)=>{var pt;return J+((pt=ot.values[C])!=null?pt:0)},0))):"",[st,rt]=n.pointer(j,t.chartEl);t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct($)}\x3c/div>${z}${W}`,st,rt)})}function Jn(t,n){var c,i,m,p;let{d3:r,spec:o}=t;if(o.type==="stacked"){let l=(c=r.min(n,h=>r.min(h,f=>f[0])))!=null?c:0;return{top:(i=r.max(n,h=>r.max(h,f=>f[1])))!=null?i:null,bottom:(0)>(l)?l:null}}let e=(o.type==="combo"?o.data.series.slice(0,1):o.data.series).flatMap(l=>l.values).filter(l=>l!==null),a=(m=r.max(e.filter(l=>l>=0)))!=null?m:null,s=(p=r.min(e.filter(l=>(0)>(l))))!=null?p:null;return{top:a,bottom:s}}function tr(t,n,r,o){let e=Math.min(.4,Qn/n),a=Math.min(.4,Math.max(0,Kn-r)/n);for(let s=0;(3)>(s);s++){let[c,i]=t.domain();((o.bottom!==null?t(o.bottom)>n*(1-e):!1)?(c=i-(i-o.bottom)/(1-e)):!1),((o.top!==null?__gvLt(t(o.top),n*a):!1)?(i=(o.top-a*c)/(1-a)):!1),t.domain([c,i])}}var er=3;function nr(t){return t>1?t*13+14:30}function rn(t){var X,E;let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=e.x.map(u=>t.fmtX(u)),c=s.length;if(c===0)return;let i=e.series.length,m=t.margin,p=e.series.flatMap(u=>u.values).filter(u=>u!==null),l=Math.min(0,(X=n.min(p))!=null?X:0),h=Math.max(0,(E=n.max(p))!=null?E:0);((a.yMax!==null?a.yMax>h:!1)?(h=a.yMax):!1),(l===h?(h=1):!1);let f=t.mobile?13:14,b=t.width*(t.mobile?.42:.34),x=Math.min(b,lt(t,s,f));m.left=x+10;let g=a.valueLabels,k=g?lt(t,p.map(t.fmtValue),12)+8:0;m.right=Math.max(m.right,k),(((0)>(l)?g:!1)?(m.left+=k):!1),m.bottom=g?8:28;let P=Math.max(40,t.width-m.left-m.right),N=o.append("g").attr("transform",`translate(${m.left},${m.top})`),F=N.append("g").attr("class",t.cls("cat-labels")),G=s.map(u=>F.append("text").attr("x",-10-(((0)>(l)?g:!1)?k:0)).attr("text-anchor","end").style("font-size",`${f}px`).text(u)),y=gt(G.map(u=>u.node()),x,er),R=G.map((u,d)=>({t:u,lines:y[d]})),_=nr(i),V=Math.max(_,Math.ceil(n.max(R,u=>u.lines)*f*1.15+10)),S=c*V,M=n.scaleLinear().domain([l,h]).nice(t.mobile?4:5).range([0,P]);t.setAxis(M.domain(),t.mobile?4:5);let I=Math.max(.25,1-_*.75/V),B=n.scaleBand().domain(s.map((u,d)=>String(d))).range([0,S]).paddingInner(I).paddingOuter(I/2),O=n.scaleBand().domain(n.range(i)).range([0,B.bandwidth()]).padding(i>1?.1:0);if(R.forEach(({t:u,lines:d},T)=>{var v;u.attr("y",((v=B(String(T)))!=null?v:0)+B.bandwidth()/2).attr("dy",`${.32-(d-1)*.575}em`)}),!g){let u=M.ticks(t.mobile?4:5);N.append("g").attr("class",t.cls("grid")).selectAll("line").data(u).join("line").attr("x1",d=>Math.round(M(d))+.5).attr("x2",d=>Math.round(M(d))+.5).attr("y1",0).attr("y2",S),N.append("g").attr("class",t.cls("ticks")).selectAll("text").data(u).join("text").attr("x",d=>M(d)).attr("y",S+20).attr("text-anchor","middle").text(d=>t.fmtAxis(d))}let Y=N.append("g"),K=Et(t)?ft(t,Y,P,S):null,tt=[];e.series.forEach((u,d)=>{u.values.forEach((T,v)=>{var w,U;if(T===null)return;let L=((w=B(String(v)))!=null?w:0)+((U=O(d))!=null?U:0),Z=O.bandwidth(),Q=M(Math.min(0,T)),q=Math.abs(M(T)-M(0)),et=Qt(Q,L,q,Z,4,T>=0?"right":"left"),A=K?dt(t,[u.key,String(e.x[v])]):null;((K?A:!1)?K.clip(A,Kt(t,String(e.x[v]))?{x:Q,y:L,w:q,h:Z}:void 0).append("path").attr("d",et):!1);let D=at(r,d,t.dark);Y.append("path").attr("class",t.cls("bar")).attr("d",et).attr("fill",((0)>(T)?i===1:!1)?me(D):D).attr("fill-opacity",ht(t,A)),(g?tt.push({x:T>=0?M(T)+6:M(T)-6,y:L+Z/2,text:t.fmtValue(T),anchor:T>=0?"start":"end"}):!1)})}),(K==null?!0:K.paint()),(0)>(l)?N.append("line").attr("class",t.cls("zero")).attr("x1",M(0)).attr("x2",M(0)).attr("y1",0).attr("y2",S):N.append("line").attr("class",t.cls("baseline")).attr("x1",M(0)+.5).attr("x2",M(0)+.5).attr("y1",0).attr("y2",S),N.append("g").selectAll("text").data(tt).join("text").attr("class",t.cls("value-label")).attr("x",u=>u.x).attr("y",u=>u.y).attr("dy","0.32em").attr("text-anchor",u=>u.anchor).text(u=>u.text);let H=N.append("g").selectAll("rect").data(s.map((u,d)=>d)).join("rect").attr("class",t.cls("overlay")).attr("x",-m.left).attr("width",t.width).attr("y",u=>{var d;return((d=B(String(u)))!=null?d:0)-(B.step()-B.bandwidth())/2}).attr("height",B.step());return t.tooltip.bind(H,(u,d)=>{if((i===1?g:!1))return;let T=s[d],v=e.series.map((Q,q)=>Q.values[d]===null?"":it(t.cls("tip-row"),at(r,q,t.dark),Q.label,t.fmtValue(Q.values[d]))).join(""),[L,Z]=n.pointer(u,t.chartEl);t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct(T)}\x3c/div>${v}`,L,Z)}),S+m.top+m.bottom}var an=40;function on(t){var X,E;let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=(X=e.points)!=null?X:[];if(!s.length)return;let c=new Map(e.series.map((u,d)=>[u.key,d])),i=u=>{var d,T;return at(r,(T=c.get((d=u.group)!=null?d:e.series[0].key))!=null?T:0,t.dark)},m=([u,d])=>{let T=(__gvOr(__gvOr(d-u,()=>(Math.abs(u))),()=>(1)))*.04;return[u-T,d+T]},[p,l]=m(n.extent(s,u=>u.x));(a.xFromZero?(p=Math.min(0,p),l=Math.max(0,l)):!1),(a.xMin!==null?(p=a.xMin):!1),(a.xMax!==null?(l=a.xMax):!1);let[h,f]=m(n.extent(s,u=>u.y));(a.yFromZero?(h=Math.min(0,h),f=Math.max(0,f)):!1),(a.yMin!==null?(h=a.yMin):!1),(a.yMax!==null?(f=a.yMax):!1),(p>l?([p,l]=[l,p]):!1),(h>f?([h,f]=[f,h]):!1);let b=t.margin;b.bottom=a.xLabel?48:30;let x=t.height-b.top-b.bottom,g=n.scaleLinear().domain([h,f===h?h+1:f]).nice(5).range([x,0]);t.setAxis(g.domain(),t.mobile?4:5),b.left=lt(t,wt(t,g).map(t.fmtAxis),t.mobile?12:14)+10;let k=Math.max(40,t.width-b.left-b.right),P=n.scaleLinear().domain([p,l===p?p+1:l]).nice().range([0,k]),N=o.append("g").attr("transform",`translate(${b.left},${b.top})`);Tt(t,N,g,k),Xt(t,N,k,x),St(t,N,g,k);let F=u=>P(u);Ut(t,N,x,Yt(t,F,Zt(t,P),Wt(k,t.mobile)),F),(a.xLabel?N.append("text").attr("class",t.cls("axis-title")).attr("x",k).attr("y",x+42).attr("text-anchor","end").text(a.xLabel):!1);let G=t.mobile?4:5.5,y=t.id("plot");o.append("defs").append("clipPath").attr("id",y).append("rect").attr("x",-G).attr("y",-G).attr("width",k+2*G).attr("height",x+2*G),N.append("g").attr("clip-path",`url(#${y})`).selectAll("circle").data(s).join("circle").attr("class",t.cls("point")).attr("cx",u=>P(u.x)).attr("cy",u=>g(u.y)).attr("r",G).attr("fill",i);let[R,_]=P.domain(),[V,S]=g.domain(),M=s.filter(u=>__gvAnd(__gvAnd(__gvAnd(__gvAnd(u.label,()=>(u.x>=R)),()=>((_)>=(u.x))),()=>(u.y>=V)),()=>((S)>=(u.y)))).slice(0,an);if((M.length?(an)>=(M.length):!1)){let{kept:u}=je(M.map(d=>({p:d,y:g(d.y)-G-5})),13,8,x,40);N.append("g").selectAll("text").data(u).join("text").attr("class",t.cls("value-label")).attr("x",d=>P(d.p.x)).attr("y",d=>d.y).attr("text-anchor",d=>P(d.p.x)>k*.85?"end":__gvLt(P(d.p.x),k*.15)?"start":"middle").text(d=>d.p.label)}let I=n.Delaunay.from(s,u=>P(u.x),u=>g(u.y)),B=N.append("circle").attr("class",t.cls("ring")).attr("r",G+3).style("display","none"),O=s.some(u=>u.group!==void 0),Y=__gvOr(__gvOr(a.yLabel,()=>((O?"Vertical axis":(E=e.series[0])==null?void 0:E.label))),()=>("Vertical axis")),K=__gvOr(a.xLabel,()=>("Horizontal axis")),tt=N.append("rect").attr("class",t.cls("overlay")).attr("width",k).attr("height",x),H=()=>B.style("display","none");t.tooltip.bind(tt,u=>{let[d,T]=n.pointer(u),v=I.find(d,T),L=s[v];if((!L?!0:Math.hypot(P(L.x)-d,g(L.y)-T)>40)){H(),t.tooltip.hide();return}B.style("display",null).attr("cx",P(L.x)).attr("cy",g(L.y));let Z=__gvOr(__gvOr(L.label,()=>(L.group)),()=>("")),Q=((O?L.group:!1)?L.label:!1)?it(t.cls("tip-row"),i(L),L.group,""):"",q=((O?L.group:!1)?L.label:!1)?"transparent":i(L),et=Q+it(t.cls("tip-row"),"transparent",K,t.fmtX(L.x))+it(t.cls("tip-row"),q,Y,t.fmtValue(L.y));t.tooltip.show(`${Z?`\x3cdiv class="${t.cls("tip-title")}">${ct(Z)}\x3c/div>`:""}${et}`,P(L.x)+b.left,g(L.y)+b.top)},H)}var rr=.25,ar=16,or=3;function sn(t){let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=e.x.map(String),c=e.series.length;if((!s.length?!0:!c))return t.height;let i=Math.max(1,Math.min(c,Math.floor(t.width/(t.mobile?170:220)))),m=Math.ceil(c/i),p=t.width/i,l=_=>_%i*p+p/2,h=c>1?e.series.map((_,V)=>o.append("text").attr("class",t.cls("donut-title")).attr("x",l(V)).attr("text-anchor","middle").text(_.label)):[],f=gt(h.map(_=>_.node()),p-12,or),b=h.map((_,V)=>({t:_,lines:f[V]})),x=Math.max(1,...b.map(_=>_.lines)),g=c>1?30+Math.ceil((x-1)*ar*1.15):0,k=Math.max(50,Math.min(p/2-12,t.mobile?130:150)),P=a.donutHole?k*.56:0,N=g+k*2+18,F=_=>{var V,S;return yt(r,(S=(V=e.categoryColors)==null?void 0:V[_])!=null?S:nt.muted,t.dark)},G=n.format(".0%"),y=n.arc().innerRadius(P).outerRadius(k).padAngle(a.donutHole?.012:.006).cornerRadius(a.donutHole?2:0),R=n.arc().innerRadius(P?(P+k)/2:k*.62).outerRadius(P?(P+k)/2:k*.62);return e.series.forEach((_,V)=>{var H;let S=Math.floor(V/i),M=l(V),I=S*N+g+k+6,B=_.values.map(X=>(X!==null?X>0:!1)?X:0),O=B.reduce((X,E)=>X+E,0),Y=o.append("g").attr("transform",`translate(${M},${I})`);if(((H=b[V])==null?!0:H.t.attr("y",S*N+18)),!O)return;let K=n.pie().sort(null).value(X=>X)(B),tt=ft(t,Y,0,0);K.forEach((X,E)=>{var v;if((0)>=(X.value))return;let u=(v=y(X))!=null?v:"",d=dt(t,[s[E],_.key]);(d?tt.clip(d,{x:-k,y:-k,w:k*2,h:k*2}).append("path").attr("d",u):!1);let T=Y.append("path").attr("class",t.cls("slice")).attr("d",u).attr("fill",F(E)).attr("fill-opacity",ht(t,d));t.tooltip.bind(T,L=>{var et;let[Z,Q]=n.pointer(L,t.chartEl),q=it(t.cls("tip-row"),F(E),c>1?_.label:"Value",t.fmtValue((et=_.values[E])!=null?et:0))+it(t.cls("tip-row"),"transparent","Share",G(X.value/O));t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct(s[E])}\x3c/div>${q}`,Z,Q)})}),tt.paint(),K.forEach((X,E)=>{if(((rr)>(X.endAngle-X.startAngle)?!0:(0)>=(X.value)))return;let[u,d]=R.centroid(X),T=Ot(F(E)),v=Y.append("text").attr("class",t.cls("slice-label")).attr("x",u).attr("y",d).attr("dy","0.35em").attr("text-anchor","middle").text(G(X.value/O));(T!=="#FFFFFF"?v.style("fill",T).style("stroke","rgba(255,255,255,0.35)"):!1)})}),m*N+6}function ln(t){let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,[s,c]=e.series;if(((!s?!0:!c)?!0:!e.x.length))return;let m=e.x.map(String).map((u,d)=>({i:d,name:u,a:s.values[d],b:c.values[d]})).filter(u=>(u.a!==null?u.b!==null:!1));if(!m.length)return;let p=t.margin;p.top=Math.max(p.top,34),p.bottom=14;let l=t.mobile?12:13,h=l+3,f=Math.max(t.height-p.top-p.bottom,m.length*h);o.attr("height",f+p.top+p.bottom);let[b,x]=Mt(m.flatMap(u=>[u.a,u.b]),a.yFromZero,a.yMin,a.yMax),g=n.scaleLinear().domain([b,x]).nice().range([f,0]),[k,P]=g.domain(),N=(u,d)=>d==="left"?{name:u.name,value:t.fmtValue(u.a),nameFirst:!0}:{name:t.mobile?"":u.name,value:t.fmtValue(u.b),nameFirst:!1},F=(u,d=u.name)=>d?u.nameFirst?`${d} ${u.value}`:`${u.value} ${d}`:u.value,G=u=>F(N(u,"left")),y=u=>F(N(u,"right")),R=t.width*(t.mobile?.4:.3),_=Math.min(R,lt(t,m.map(G),l))+12,V=Math.min(R,lt(t,m.map(y),l))+12,S=_,M=Math.max(S+60,t.width-V),I=u=>{var d,T;return yt(r,(T=(d=e.categoryColors)==null?void 0:d[u])!=null?T:nt.muted,t.dark)},B=u=>(I(u).toUpperCase()===nt.muted.toUpperCase()?!0:I(u).toUpperCase()===nt.darkMuted.toUpperCase()),O=o.append("g").attr("transform",`translate(0,${p.top})`);o.append("text").attr("class",t.cls("slope-head")).attr("x",S).attr("y",18).attr("text-anchor","middle").text(s.label),o.append("text").attr("class",t.cls("slope-head")).attr("x",M).attr("y",18).attr("text-anchor","middle").text(c.label),O.append("line").attr("class",t.cls("slope-axis")).attr("x1",S).attr("x2",S).attr("y1",0).attr("y2",f),O.append("line").attr("class",t.cls("slope-axis")).attr("x1",M).attr("x2",M).attr("y1",0).attr("y2",f);let Y=t.id("plot");o.append("defs").append("clipPath").attr("id",Y).append("rect").attr("x",0).attr("y",-5).attr("width",t.width).attr("height",f+10);let K=O.append("g").attr("clip-path",(a.yMin!==null?!0:a.yMax!==null)?`url(#${Y})`:null),tt=[...m].sort((u,d)=>+!B(u.i)-+!B(d.i));for(let u of tt){let d=I(u.i);K.append("line").attr("class",t.cls("slope-line")).attr("x1",S).attr("x2",M).attr("y1",g(u.a)).attr("y2",g(u.b)).attr("stroke",d).attr("stroke-width",B(u.i)?2:3),K.append("circle").attr("cx",S).attr("cy",g(u.a)).attr("r",4).attr("fill",d),K.append("circle").attr("cx",M).attr("cy",g(u.b)).attr("r",4).attr("fill",d)}let H=new Set,X=u=>{let d=m.map(v=>({r:v,y:g(u==="left"?v.a:v.b)}));sr(d,h,h/2,f);let T=u==="left"?S:M;for(let v of d){let L=u==="left"?v.r.a:v.r.b,Z=L>P?-1:(k)>(L)?1:0;((Z?!H.has(`${u}${Z}`):!1)?(H.add(`${u}${Z}`),O.append("path").attr("class",t.cls("off-scale")).attr("d",`M${T},${(0)>(Z)?-8:f+8}l-5,${-Z*8}h10z`).attr("fill",t.dark?nt.darkSecondary:nt.secondary).append("title").text((0)>(Z)?"Above the axis range":"Below the axis range")):!1);let Q=N(v.r,u),q=O.append("text").attr("class",t.cls("slope-label")).attr("x",u==="left"?S-10:M+10).attr("y",v.y).attr("dy","0.32em").attr("text-anchor",u==="left"?"end":"start").style("font-size",`${l}px`).text(F(Q));(B(v.r.i)?!0:q.style("fill",xt(r,I(v.r.i),t.dark)));let et=q.node(),A=Q.name;for(;(et.getComputedTextLength()>R?A.length>3:!1);)A=A.slice(0,-1),q.text(F(Q,`${A.trimEnd()}\u2026`))}};X("left"),X("right");let E=O.append("rect").attr("class",t.cls("overlay")).attr("x",S).attr("width",M-S).attr("height",f);t.tooltip.bind(E,u=>{let[d,T]=n.pointer(u),v=(d-S)/(M-S),L=m[0],Z=1/0;for(let et of m){let A=g(et.a)+(g(et.b)-g(et.a))*v;(__gvLt(Math.abs(A-T),Z)?([L,Z]=[et,Math.abs(A-T)]):!1)}let Q=L.b-L.a,q=it(t.cls("tip-row"),I(L.i),s.label,t.fmtValue(L.a))+it(t.cls("tip-row"),I(L.i),c.label,t.fmtValue(L.b))+it(t.cls("tip-row"),"transparent","Change",`${Q>=0?"+":""}${t.fmtValue(Q)}`);t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct(L.name)}\x3c/div>${q}`,d,T+p.top)})}function sr(t,n,r,o){let e=[...t].sort((a,s)=>a.y-s.y);e.forEach((a,s)=>a.y=Math.max(a.y,s?e[s-1].y+n:r));for(let a=e.length-1;a>=0;a--)e[a].y=Math.min(e[a].y,(e.length-1)>(a)?e[a+1].y-n:o)}var ir=3;function cn(t){let{d3:n,spec:r,svg:o}=t,{data:e,style:a}=r,s=e.x.map(E=>t.fmtX(E)),c=s.length;if((!c?!0:!e.series.length))return t.height;let i=t.margin,m=t.mobile?30:32,p=t.mobile?13:14,l=t.width*(t.mobile?.38:.3),h=Math.min(l,lt(t,s,p));i.left=h+14,i.right=Math.max(i.right,16),i.bottom=30,i.top=Math.max(i.top,6);let f=Math.max(60,t.width-i.left-i.right),b=o.append("g").attr("transform",`translate(${i.left},${i.top})`),x=s.map(E=>b.append("text").attr("class",t.cls("cat-label")).attr("x",-12).attr("text-anchor","end").style("font-size",`${p}px`).text(E)),g=gt(x.map(E=>E.node()),h,ir),k=Math.max(m,Math.ceil(Math.max(1,...g)*p*1.15+10)),P=c*k,N=e.series.flatMap(E=>E.values).filter(E=>E!==null),[F,G]=Mt(N,a.yFromZero,a.yMin,a.yMax),y=t.mobile?4:5,R=n.scaleLinear().domain([F,G]).nice(y).range([0,f]);t.setAxis(R.domain(),y);let[_,V]=R.domain(),S=E=>(E>=_?(V)>=(E):!1),M=E=>E*k+k/2,I=E=>e.series.map(u=>u.values[E]).filter(u=>u!==null),B=s.map((E,u)=>a.valueLabels?lr(I(u),S):[]);(a.valueLabels?pr(t,R,f,B):!1);let O=cr(t,R,y),Y=E=>lt(t,[t.fmtValue(E)],12),K=B.map(E=>ur(R,f,E,Y)),tt=t.id("plot");o.append("defs").append("clipPath").attr("id",tt).append("rect").attr("x",R(_)-8).attr("y",0).attr("width",R(V)-R(_)+16).attr("height",P),b.append("g").attr("class",t.cls("grid")).selectAll("line").data(O).join("line").attr("x1",E=>Math.round(R(E))+.5).attr("x2",E=>Math.round(R(E))+.5).attr("y1",0).attr("y2",P),b.append("g").attr("class",t.cls("ticks")).selectAll("text").data(O).join("text").attr("x",E=>R(E)).attr("y",P+20).attr("text-anchor","middle").text(E=>t.fmtAxis(E)),(((0)>(F)?G>0:!1)?b.append("line").attr("class",t.cls("zero")).attr("x1",R(0)).attr("x2",R(0)).attr("y1",0).attr("y2",P):!1);let H=b.append("g").attr("clip-path",`url(#${tt})`);s.forEach((E,u)=>{x[u].attr("y",M(u)).attr("dy",`${.32-(g[u]-1)*.575}em`);let d=I(u),T=Math.min(...d),v=Math.max(...d);(((d.length>1?v>=_:!1)?(V)>=(T):!1)?H.append("line").attr("class",t.cls("dumbbell")).attr("x1",R(Math.max(_,T))).attr("x2",R(Math.min(V,v))).attr("y1",M(u)).attr("y2",M(u)):!1),mr(t,b,R,M(u),d),e.series.forEach((L,Z)=>{let Q=L.values[u];(Q!==null?H.append("circle").attr("class",t.cls("dot")).attr("cx",R(Q)).attr("cy",M(u)).attr("r",t.mobile?6:7).attr("fill",at(r,Z,t.dark)):!1)});for(let L of K[u])b.append("text").attr("class",t.cls("value-label")).attr("x",R(L.v)+L.dx).attr("y",M(u)).attr("dy","0.32em").attr("text-anchor",L.anchor).text(t.fmtValue(L.v))});let X=b.append("g").selectAll("rect").data(s.map((E,u)=>u)).join("rect").attr("class",t.cls("overlay")).attr("x",-i.left).attr("width",t.width).attr("y",E=>E*k).attr("height",k);return t.tooltip.bind(X,(E,u)=>{let d=e.series.map((L,Z)=>L.values[u]===null?"":it(t.cls("tip-row"),at(r,Z,t.dark),L.label,t.fmtValue(L.values[u]))).join(""),[T,v]=n.pointer(E,t.chartEl);t.tooltip.show(`\x3cdiv class="${t.cls("tip-title")}">${ct(s[u])}\x3c/div>${d}`,T,v)}),P+i.top+i.bottom}function lr(t,n){if(!t.length)return[];let r=Math.min(...t),o=Math.max(...t),e=[];return (((o)>(r)?n(r):!1)?e.push({v:r,anchor:"end",dx:-11}):!1),(n(o)?e.push({v:o,anchor:"start",dx:11}):!1),e}function cr(t,n,r){for(let o=r;o>=1;o--){t.setAxis(n.domain(),o);let e=n.ticks(o),a=e.map(c=>lt(t,[t.fmtAxis(c)],12));if((e.every((c,i)=>(i===0?!0:n(c)-n(e[i-1])>=(a[i]+a[i-1])/2+8))?!0:o===1))return e}return[]}function ur(t,n,r,o){let e=l=>{let h=l.anchor==="start"?t(l.v)+l.dx:t(l.v)+l.dx-o(l.v);return[h,h+o(l.v)]},a=l=>(e(l)[0]>=1?__gvLe(e(l)[1],n-1):!1),s=l=>({v:l.v,anchor:l.anchor==="end"?"start":"end",dx:-l.dx}),c=Math.min(...r.map(l=>l.v)),i=Math.max(...r.map(l=>l.v)),m=l=>((2)>(r.length)?!0:(e(l)[0]>=t(c)+7?__gvLe(e(l)[1],t(i)-7):!1)),p=[];for(let l of r){let h=a(l)?l:s(l);(((!a(h)?!0:(h!==l?!m(h):!1))?!0:p.some(f=>(__gvLt(e(f)[0],e(h)[1]+6)?__gvLt(e(h)[0],e(f)[1]+6):!1)))?!0:p.push(h))}return p}function mr(t,n,r,o,e){let[a,s]=r.domain(),c=e.filter(l=>(a)>(l)),i=e.filter(l=>l>s),m=t.dark?nt.darkSecondary:nt.secondary,p=(l,h,f)=>{let b=`M${l},${o}l${-h*6},-5v10z`;n.append("path").attr("class",t.cls("off-scale")).attr("d",b).attr("fill",m).append("title").text(`${f} ${f===1?"value is":"values are"} ${(0)>(h)?"below":"above"} the axis range`)};(c.length?p(r(a)-2,-1,c.length):!1),(i.length?p(r(s)+2,1,i.length):!1)}function pr(t,n,r,o){let e=new Map,a=i=>((e.has(i)?!0:e.set(i,lt(t,[t.fmtValue(i)],12))),e.get(i)),s=0,c=0;for(let i=0;(4)>(i);i++){let m=0,p=0;for(let l of o.flat()){let h=n(l.v)+l.dx;l.anchor==="end"?m=Math.max(m,a(l.v)-h+2):p=Math.max(p,h+a(l.v)-r+2)}if(((.5)>=(m)?(.5)>=(p):!1))return;s=Math.min(r*.3,s+Math.max(0,m)),c=Math.min(r*.3,c+Math.max(0,p)),n.range([s,r-c])}}var pe={paletteId:"",political:!1,background:"white",yFormat:{prefix:"",suffix:"",decimals:null},xFormat:{prefix:"",suffix:"",decimals:null},yFromZero:!0,yMin:null,yMax:null,valueLabels:!1,endDots:!0,imageFill:null,width:"column",height:400,yLabel:"",xLabel:"",highlight:null,legend:"top",xFromZero:!1,xMin:null,xMax:null,rightAxis:[],rightFormat:{prefix:"",suffix:"",decimals:null},rightLabel:"",rightFromZero:!0,donutHole:!0,partners:[],map:{method:"rounded",classes:5,breaks:[],palette:"seq-orange",reverse:!1,midpoint:null,continuous:!1,labels:!0,symbolMax:18,noDataLabel:"No data",thresholds:[],stops:[],colors:[],domain:null,categories:[],sizeTicks:[],projection:"equal-earth",sphere:!1,graticule:!1,center:[-30,20]}};var mn=600;function un(t){var n;return{...t,style:{...pe,...t.style,map:{...pe.map,...(n=t.style)==null?void 0:n.map}}}}function pn(t,n){var e;if(!n.size)return de(t);let r=t.type==="combo"?t.data.series.flatMap((a,s)=>n.has(a.key)?s===0?[{...a,values:a.values.map(()=>null)}]:[]:[a]):t.data.series.filter(a=>!n.has(a.key)),o=(e=t.data.points)==null?void 0:e.filter(a=>{var s,c;return!n.has((c=a.group)!=null?c:(s=t.data.series[0])==null?void 0:s.key)});return de({...t,data:{...t.data,series:r,points:o}})}function de(t){if((t.type!=="line"?t.type!=="combo":!1))return t;let n=t.data.series.filter(s=>s.values.some(c=>c!==null));if((!n.length?!0:!n.every(s=>s.axis==="right")))return t;let r=t.data.series.map(s=>({...s,axis:"left"})),o=t.style,e=__gvOr(o.rightLabel,()=>((hr(o.yFormat,o.rightFormat)?o.yLabel:""))),a={...o,yFormat:o.rightFormat,yFromZero:o.rightFromZero,yMin:null,yMax:null,yLabel:e,rightLabel:""};return{...t,style:a,data:{...t.data,series:r}}}function dr(t){if((t.type!=="line"?t.type!=="combo":!1))return!1;let n=(r,o)=>(r.axis==="right"?((t.type==="line"?!0:o>0)):!1);return __gvAnd(t.data.series.some(n),()=>(t.data.series.some((r,o)=>!n(r,o))))}function hr(t,n){var r,o;return __gvAnd(__gvAnd((t.prefix===n.prefix?t.suffix===n.suffix:!1),()=>(t.decimals===n.decimals)),()=>(((r=t.multiply)!=null?r:1)===((o=n.multiply)!=null?o:1)))}function fr(t,n,r,o=null){var y,R,_,V;let e=un(n),a=o?we(o):null,s=new Set,c=`gv-${e.slug}`,i=S=>`${c}__${S}`,m=t.querySelector(`.${i("chart")}`),p=t.querySelector(`.${i("legend")}`),l=Ge(m,i("tooltip")),h=-1,f,b=0;(p==null?!0:p.addEventListener("click",S=>{let M=S.target.closest("[data-key]"),I=M==null?void 0:M.dataset.key;(I!==void 0?(s.has(I)?s.delete(I):((e.data.series.length-1)>(s.size)?s.add(I):!1),x()):!1)}));let x=()=>{var Q,q,et,A,D;b=0;let S=Math.floor(m.clientWidth);if((0)>=(S))return;let M=e.style.background==="white"?re(t):{color:null,dark:!1},I=M.dark;t.classList.toggle(`${c}--dark`,I),M.color?t.style.setProperty("--gv-halo",M.color):t.style.removeProperty("--gv-halo"),h=S,f=M.color;let B=(mn)>(t.clientWidth);((Q=m.querySelector("svg"))==null?!0:Q.remove());let O=m.ownerDocument.createElementNS("http://www.w3.org/2000/svg","svg");m.insertBefore(O,m.firstChild);let Y=r.select(O).attr("class",i("svg")).attr("width",S).attr("aria-hidden","true"),K=ge(e.type),tt=K?400:B?Math.min(e.style.height,360):e.style.height;Y.attr("height",tt);let H=pn(e,s),X=H.style.yFormat,E=H.style.rightFormat,u=Gt(r,X.prefix,X.suffix,X.decimals,X.multiply),d=Gt(r,E.prefix,E.suffix,E.decimals,E.multiply),T=w=>u.value(w),v={d3:r,spec:H,base:c,root:t,chartEl:m,svg:Y,width:S,height:tt,mobile:B,dark:I,page:M.color,margin:{top:(((H.style.yLabel?!0:H.style.rightLabel))?!["bar","donut","dot","slope"].includes(e.type):!1)?30:10,right:14,bottom:30,left:40},id:w=>`${c}-${w}`,cls:i,fmtAxis:w=>T(w),setAxis:(w,U)=>{T=$t(r,X,w,U)},fmtValue:u.value,fmtRightValue:d.value,rightAxis:(w,U)=>$t(r,E,w,U),fmtFor:w=>w.axis==="right"?d.value:u.value,fmtX:Fe(r,e,B),xAxis:(w,U)=>$t(r,e.style.xFormat,w,U),color:w=>at(H,w,I),tooltip:l,rightTitleY:14},L=(K?a:!1)?Re(a,e):a;K?(L?He(v,p,e,L):!1):Oe(v,p,e,s);let Z=__gvAnd(__gvAnd(__gvAnd((!K?e.type!=="bar":!1),()=>(e.type!=="donut")),()=>(e.type!=="dot")),()=>(e.type!=="slope"));if((((Z?H.style.yLabel:!1)?H.style.rightLabel:!1)?dr(H):!1)){let[w,U]=[H.style.yLabel,H.style.rightLabel].map(ut=>lt(v,[ut],12));(w+U+16>S?(v.rightTitleY=30,v.margin.top+=16):!1)}((H.style.yLabel?Z:!1)?Y.append("text").attr("class",i("axis-title")).attr("x",0).attr("y",14).text(H.style.yLabel):!1);try{let w=e.type;if(K){if((!a?!0:a.id!==((q=e.data.map)==null?void 0:q.geo)))throw new Error("map geography missing");Y.attr("height",Ie(v,L))}else (w==="line"?!0:w==="area")?Ye(v):((w==="column"?!0:w==="stacked")?!0:w==="combo")?nn(v):w==="bar"?Y.attr("height",(et=rn(v))!=null?et:tt):w==="scatter"?on(v):w==="donut"?Y.attr("height",(A=sn(v))!=null?A:tt):w==="slope"?ln(v):(w==="dot"?Y.attr("height",(D=cn(v))!=null?D:tt):!1)}catch(w){Y.selectAll("*").remove(),Y.append("text").attr("class",i("ticks")).attr("x",0).attr("y",20).text("Chart could not be drawn."),console.error("[gristviz]",w)}},g=()=>{(b?!0:(b=requestAnimationFrame(x)))},k=new ResizeObserver(()=>{(Math.floor(m.clientWidth)!==h?g():!1)});k.observe(m);let P=()=>{((e.style.background==="white"?re(t).color!==f:!1)?g():!1)},N=new MutationObserver(P),F=t.ownerDocument;N.observe(F.documentElement,{attributes:!0,attributeFilter:["class","style","data-theme"]}),(F.body?N.observe(F.body,{attributes:!0,attributeFilter:["class","style","data-theme"]}):!1);let G=(R=(y=F.defaultView)==null?void 0:y.matchMedia)==null?void 0:R.call(y,"(prefers-color-scheme: dark)");return((_=G==null?void 0:G.addEventListener)==null?!0:_.call(G,"change",P)),x(),((V=F.fonts)==null?!0:V.ready.then(()=>g())),{update(S){e=un(S);for(let M of[...s])(e.data.series.some(I=>I.key===M)?!0:s.delete(M));x()},destroy(){var S;k.disconnect(),N.disconnect(),l.destroy(),((S=G==null?void 0:G.removeEventListener)==null?!0:S.call(G,"change",P)),(b?cancelAnimationFrame(b):!1)}}}return xn(gr);})(); function run(d3){var el=document.getElementById(ID);if(el)__gvRuntime.mount(el,SPEC,d3,GEO);} function fail(){var el=document.getElementById(ID);var c=el?el.querySelector("."+ID+"__chart"):null;if(c)c.textContent="This chart could not load. Try refreshing the page.";} function loadD3(){return new Promise(function(res,rej){ var s=document.createElement("script"),page=window.d3,mine,trap=false; try{Object.defineProperty(window,"d3",{configurable:true,enumerable:true, get:function(){return document.currentScript===s?mine:page;}, set:function(v){if(document.currentScript===s)mine=v;else page=v;}});trap=true;} catch(e){window.d3=undefined;} function settle(){if(trap){delete window.d3;if(page!==undefined)window.d3=page;}else{mine=window.d3;window.d3=page;}} s.src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js";s.integrity="sha384-su5kReKyYlIFrI62mbQRKXHzFobMa7BHp1cK6julLPbnYcCW9NIZKJiTODjLPeDh";s.crossOrigin="anonymous";s.async=true; s.onload=function(){settle();if(mine?mine.stack:!1)res(Object.assign({},mine));else rej(new Error("d3 did not load"));}; s.onerror=function(e){settle();rej(e);}; document.head.appendChild(s);});} function go(){ if(window.d3?window.d3.stack?/^7\./.test(window.d3.version?window.d3.version:""):!1:!1){run(window.d3);return;} if(!window.__gvD3)window.__gvD3=loadD3(); window.__gvD3.then(run,fail); } if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",go);else go(); })();“There is a huge amount of disparity,” in the results, said Christianne Eason, the organization’s president of sport safety and education. Thirteen states and Washington, D.C., scored 15 points or higher, while 17 came in at 5 points or below. Some of the strongest policies are in the Southeast, where heat and humidity can produce some of the nation’s most dangerous conditions. Georgia has led the way.
Between 1994 and 2009, the state recorded six high school football deaths, which was among the highest in the country. After a string of high-profile incidents, officials examined what schools were doing in order to find ways to improve. “The policies for each school district were all over the map,” said Bud Cooper, a clinical professor emeritus of kinesiology at the University of Georgia who was involved in that work. One school, he remembered, wouldn’t suspend practice until the heat index hit 140. But the research showed a clear trend, he said: “As the temperatures got greater and practices got longer, the risk went up.”
In 2012, the Georgia High School Association implemented some of the most robust policies in the country. Schools are required to take wet bulb globe temperature measurements and adjust practice lengths accordingly. Football teams also must abide by an acclimatization period that limits practices during the first five days of training so players can grow accustomed to the heat. Researchers found that, within three years, heat-related illness had dropped dramatically.
The only heat-related death since the policies took effect, Cooper said, was Imani Bell, a 16-year-old basketball player who died after running stairs in extreme heat in 2019. Her family accused the school of violating the heat rules and settled with the district for $10 million; two coaches are awaiting trial on charges that include second-degree murder and involuntary manslaughter.
Georgia’s turnaround shows that strict heat policies can work. “You could say it was luck, for one year, two years, three years,” Cooper said, but it’s been about 15 seasons. “That goes beyond luck. That’s a result.”
The analysis by the Korey Stringer Institute shows that, aside from Vermont and New Hampshire, where officials have adopted stringent heat policies, many of the states that still have the most work to do are along the nation’s northern border. Even athletes in cooler climates need to acclimatize to summer temperatures, said Cooper, especially as climate change makes extremes and spikes more common. Pushing athletes into tough practices in hot conditions too quickly is a recipe for harm.
“Those student athletes aren’t ready for that,” he said.
Some resistance to stronger heat policies centers on resources — school districts may worry about the cost of WBGT gauges, athletic trainers, or equipment like immersion tubs. But coaches also fear they won’t be competitive under new rules.
“We had to reassure them that what they’re doing is the right thing,” Cooper said of his experience in Georgia. “But at the end of the day, the level of play in high school football in the state of Georgia is still just as high as it was 15 years ago.”
High school athletic trainers in Norwich, Connecticut, douse a colleague in ice water during a training exercise meant to help them protect players from extreme heat. Cold water immersion is the most effective treatment for heat stroke. Mark Mirko/Connecticut Public via Getty ImagesProtections are even more important in youth sports, because children are more vulnerable to extreme heat. But deficiencies can be even greater, with policy development often falling to individual leagues, teams, or coaches, many of them volunteers. “It’s truly the wild west,” said pediatrician and researcher Dr. Michele LaBotz, who wants heat taken as seriously as threats such as concussions or lightning. “There is not a mechanism yet for disseminating good information.”
College athletes are in many ways better positioned. Athletic trainers are more ubiquitous, and multimillion-dollar budgets make acquiring equipment less of an obstacle. But the NCAA has few heat-related mandates; most of its guidance is voluntary. “They have not been willing to make things required,” said Casa. “You don’t get credit if it’s a recommendation.”
The NCAA confirmed that it provides “recommendations and guidelines” but declined to answer follow-up questions on the record. The potential for confusion is evident in Arizona State’s heat policy, which runs three pages and uses the words “should,” “will,” “may,” “can,” “recommended,” and “guidelines.”
On Friday, ASU announced that former Arizona Supreme Court Chief Justice Scott Bales will lead an independent review of the university’s planning, policies, and response to outdoor athletic activities, including the use of outside consultants. The university has asked Bales to complete the review by early December.
In a statement that Carey released Friday afternoon, Mayich’s family welcomed Bales’ appointment but said the planned review does not go far enough. It wants an independent investigation of what happened on the field, who was responsible, and whether university, athletic conference, or NCAA rules were violated. Carey called on the university to expand Bales’ mandate to answer those questions or appoint a second independent investigator, and to make the findings public.
Whatever comes of the review, ASU already had heat-safety measures that experts say could have protected Mayich – if they were followed.
Mayich’s teammates described his collapse in detail, writing in their letter that “Matthew was unintelligible and non-responsive. His lips were gray.” By the time paramedics arrived, he had been down for 17 minutes, during which “nothing effectively cooled him.” They accuse the university of a slew of policy violations in the minutes, hours, and days leading to that moment.
The missteps, they wrote, started at least eight days before the workout, when ASU hockey staff submitted an official request to have Ziesel lead it. The university timeline says the team did not include the required written activity plan, and it provides no indication that the request was reviewed or approved before Ziesel met with athletes, as school policy dictates. His lawyer, Kazan, told Grist in an email that “as far as he was told, he was approved by the coaching staff and they were aware of his leadership training plan.”
Mayich, who is from Ontario, Canada, arrived in Arizona eight days before the session. In theory, that was just enough time to complete the seven- to 14-day acclimatization period the university’s heat policy called for. But NCAA rules barred official practices until August 20. Voluntary workouts before then were held indoors with air conditioning and only short stints outdoors. That isn’t sufficient to induce acclimatization, Casa said. Research has shown that physiological adaptation takes repeated and gradually increasing exposure to heat. “Just being there,” he said, “does nothing to help with heat acclimatization.”
When the opening practice finally arrived, the university policy “recommended” that staff take wet bulb globe temperature readings. But the players wrote that “no WBGT instrument was on the field, and no measurement was taken at any point.” The university’s report says it used data from a Weather Underground sensor roughly one mile away, with WBGT estimates, not measurements.
University officials did not respond to written questions seeking clarification, but a 2021 study by researchers at the school found that taking readings at the stadium is a far more accurate indicator of potential heat stress. “On-field WBGT observations were, on average, significantly higher than WBGT estimated from regional weather stations,” the authors wrote, noting a difference of more than four degrees. Practitioners, they said, “should not rely on regional weather station estimations without corrections.”
Mayich’s teammates said the practice occurred in full sun, suggesting the wet bulb globe temperature may have been at the higher end of the university’s estimates, which reached well into the 80s. But even the off-site measurements put at least part of the work out in the “high” zone of the university’s heat-risk chart, under which only acclimatized athletes can participate.
Matthew Mayich on the ice in Ottawa, Canada, in 2024. Chris Tanouye/Getty ImagesWhether Mayich was eligible to practice or not, his teammates wrote that he never got water. There was a brief opportunity to hydrate, but only those who finished the bear crawl first had time to do so. Mayich wasn’t one of them, the players wrote, and went without. He was also showing signs of distress well before the final exercise mentioned in the university’s report. “Matthew crawled on hands and knees and appeared disoriented. When he stood, he nearly fell,” the teammates wrote in the letter. “In the buddy carry, one of us carried him, but he could not carry his partner back.”
Casa called all of that lead-up a “distraction” from arguably the biggest issue: There was no immersion tub, which ASU’s policy called for in multiple places. After he fell, Mayich’s teammates said he spent “several minutes” on the hot turf as people squirted him with water bottles and applied cold towels before he was moved to the shade. They briefly sprayed him with “warm water” from a garden hose before police and paramedics took over, according to their letter.
Mayich’s medical diagnosis may not be publicly revealed for some time. Based on what he’s read so far, Casa says that it’s “very likely a heat stroke” but can’t say for certain without more information, such as rectal temperatures. In the meantime, Mayich has remained on life support at Barrow Neurological Institute. Just 2 miles away, ASU held an event on Tuesday to launch its new Center for Heat Preparedness.
Scott Barclay, the university’s interim vice president of research, opened the day-long symposium extolling the importance of combating heat-related illnesses and death. “Heat is a killer,” he said in his remarks, which didn’t mention Mayich. “In Phoenix, you don’t have to have that reminder.”
This story was originally published by Grist with the headline Extreme heat left this student athlete on life support. He won’t be the last. on Oct 5, 2026.
Two years after Hurricane Helene, survivors are taking lessons for the future
In the days and weeks after Hurricane Helene, people throughout western North Carolina and beyond found themselves thrust into new situations, forced to learn new skills to help themselves and their neighbors.
Community centers, churches, and fire departments flung open their doors, and for months, they buzzed with activity. Stacks of clothes covered altars. Tools and equipment filled spare rooms. Residents learned how to strip homes to the studs and built networks for bringing food, water, and other essential supplies to one another.
Now, two years later, people want to turn these ad hoc efforts — which supported communities through the loss of power, water, internet, and other crucial services — into more permanent fixtures of local disaster response, called “resilience hubs.”
“It’s become one of those terms, I think, that sometimes feels a little nebulous to people,” McKenzie Jones, a director with Urban Sustainability Directors Network, said. “But resilience hubs are just existing community spaces that are used and trusted by residents.”
The East Asheville Library, for instance, is installing solar panels. At the Asheville Tool Library, people are learning how to wield power tools. And at the Old Fort Train Depot, locals recently discussed a heat wave action plan during an ice cream social.
The city is stepping up as well. Earlier this year, Asheville set aside $2 million to shore up the city’s existing hubs. City Manager D.K. Wesley made a soft commitment of spending up to $10 million over the long term.
This effort reflects a broader movement, as communities across the country invest in resilience hubs to prepare for power outages, extreme weather and other emergencies. But Helene also showed that resilience doesn’t necessarily require a designated hub. It can reside in the skills, equipment, and connections people can draw on even before the next disaster arrives.
“So the question is, How do we get them all to work together proactively before something happens and build those networks so that when it does happen, they’re able to support each other more effectively?” Jones said.
Two years after Helene, those lessons are taking root across western North Carolina. Here are four ways communities are turning what they learned in the disaster and its aftermath into tools for whatever comes next.
The solar installation at Beacon of Hope took a little over a week. Electricians who worked on the project say demand for solar has been high since the storm. Katie Myers / Grist / Blue Ridge Public Radio Keeping the lights on with solar powerOn a sunny morning in Marshall, Steve Porvaznik and Ryan Callahan, both electricians with Rhino Renewables, put the final touches on a solar installation. They secured white covers over three batteries, each about 3 feet tall and containing a nest of wires and conductors.
The work capped a week spent outfitting Beacon of Hope, a laundromat, thrift store, and food bank with the equipment needed to create a microgrid. “We were able to back up the whole store, essentially, with all the freezers and coolers,” Porvaznik said. The batteries can store an estimated 68 kilowatt-hours of solar power, allowing Beacon to keep the lights and appliances running for at least a day without sunlight or a connection to the larger electrical grid.
It is the first of 26 microgrids planned for western North Carolina. Twenty-four will serve community centers, food banks, fire departments, and other essential facilities. Two more will be mounted on trailers and sent wherever they are needed. A $5 million grant from the state Department of Environmental Quality is funding the work.
Read Next A swarm of solar ‘bees’ are coming to western North Carolina community hubs Katie MyersAt Beacon of Hope, keeping the power on means the freezers, washing machines, and other equipment continue running. Director Jessi Koontz said the food pantry provides weekly food assistance to about 1,600 families, with hunger up about 50 percent since last summer.
“People already come here,” she said. “So, how can we maximize the resources that are available and the communication that is available when they come here?”
Jessi Koontz runs Beacon of Hope, a food pantry, thrift store, and community laundromat in Marshall, North Carolina. Katie Myers / Grist / Blue Ridge Public RadioThose leading the microgrid campaign hope to expand beyond the 26 already in the works, but so far neither state nor federal officials have provided additional funding. That’s a common impediment to expanding such programs, said Alex Kwasinski, a University of Pittsburgh engineer who studies microgrids and disasters.
Sarah Nichols of Land of Sky, one of the organizations bringing the technology to the region, is working to identify more community hubs that would benefit from solar microgrids. The best locations sit on high ground and serve populations with high needs.
“Are we looking at equity?” Nichols said. “Should we put it in a more rural area or in a community that might not traditionally get access to government services?”
During an outage as widespread as Helene’s, such hubs could keep food and medication cold and communications running while providing a safe, warm, and dry place for people whose homes have lost power.
– Katie Myers
Justin Hamel of WNC Radio Project tunes into a Saturday night net hosted by a repeater in Fletcher. Laura Hackett / Blue Ridge Public Radio Staying connected when cell networks go downEvery Saturday night, William Walker has a standing appointment with his two-way radio. The retired railroad worker runs a weekly check-in, called a “net,” from his home in Fletcher, connecting with dozens of radio enthusiasts who have turned a hobby into a public service.
Over a crackly signal, regulars check in from as far away as South Carolina, sharing snippets about their lives: a 41st birthday, a granddaughter’s wedding, an afternoon spent chopping wood. These exchanges go on for about half an hour, with Walker as master of ceremonies.
“It’s kind of like having family come into your living room every Saturday night,” he said. “We’ve tried to make it a very welcoming place. I mean, if there was ever a bunch that’s never been a stranger, it’s the people that I’ve met on the GMRS radio.”
A repeater stationed high up in the Blue Ridge Mountains. Adam TrescottGMRS, or general mobile radio service, is a two-way system that doesn’t need a cell network or internet connection. A license costs $35 and there is no test, making it easy for anyone to participate. Walker’s weekly check-ins allow people to “overcome their mic fright” and make sure their equipment works.
That preparation gained urgency after Helene knocked out communication across a wide swath of the region, leaving people cut off from loved ones and vital information. The number of licenses jumped by 130 percent in the year after the storm.
Fairview resident Justin Hamel saw the value of GMRS firsthand. “We were really struggling to connect,” he said. He eventually got his hands on some “bubble radios,” as walkie-talkies with GMRS capabilities are known, and passed them out to neighbors.
It wasn’t perfect, and mountain ridges occasionally blocked signals, but everyone could share updates about water, supplies, and cleanup efforts. Hamel even helped relay information to first responders who dispatched a helicopter for a medical emergency.
Inspired by the experience, Hamel launched WNC Radio Project, a nonprofit that teaches people about the technology and works to expand its reach by installing small devices called signal repeaters on mountaintops. “With the aid of repeaters, you can talk across multiple counties,” he said. “Basically, think like a cell phone tower.”
He’s already installed two of them, and the network allowed him to communicate with neighbors during Winter Storm Fern and other severe weather — exactly the situation it was built for. “Radio’s superpower is that it enables instantaneous ad hoc group communication,” Hamel said. “All you have to do is pick up your radio, turn it on, and hit that button.”
– Laura Hackett
Shelby Treichler is the operations coordinator at the Asheville Tool Library, a site where people can rent out and train on power tools. Laura Hackett / Blue Ridge Public Radio Equipping a new wave of power tool usersThe day after Hurricane Helene made landfall, Shelby Treichler was determined to make it to the Asheville Tool Library. The power was out and she knew the library, where she is an operations coordinator, had a solar panel setup that would be crucial in the days ahead.
There was just one problem: A fallen tree blocked the only road out of her neighborhood.
“I didn’t think to bring my tools home with me. None of us thought to be on that level prepared,” she said. Armed with only a handsaw, she started cutting, hoping to at least clear a lane. Then, seemingly out of nowhere, a man wearing sandals arrived with a chainsaw. He jumped from his truck and started bucking the tree. A few minutes later, he drove off, leaving Treichler in tears.
“I was like, ‘This is community. This is beautiful,’” she said. “The guy just got back in the truck and drove away. We all barely exchanged three words except for, ‘This is crazy, huh?’”
Treichler’s experience was repeated across western North Carolina in the days after Helene. Unofficial chainsaw brigades, composed largely of volunteers, fanned out to clear roads. Appalachian poet Gerald Smith described hearing “the sweet, sweet sound of chainsaws,” a familiar refrain that inspired a new wave of people to learn how to use one.
A chainsaw safety workshop held by N.C. State and Skills Academy for Women in late 2024. Quetzal JordanQuetzal Jordan, founder of Skills Academy for Women, is among those showing them how. She has led more than 500 people through safety workshops since Helene. “I’ve taught people anywhere from 18 to 75 how to use a chainsaw,” she said. “And especially the folks who are older, I feel like they have the most transformative experience.”
The chainsaw classes are part of a broader movement in western North Carolina to treat tools and the skills to use them as a form of climate resilience. The Asheville Tool Library, for instance, lends everything from saws and shovels to generators and megaphones and teaches people how to use them. Insurance prevents it from lending chainsaws, but it keeps several among its collection of more than 4,000 tools for emergencies.
“We were doing this work before and resiliency was kind of in all of our minds, but I think, like most people who are affected by Hurricane Helene, it’s taken on a very different meaning now and a very different sense of urgency,” Treichler said.
– Laura Hackett
Swannanoa Communities Together serves Swannanoa residents, many of whom have unique medical vulnerabilities and language needs. Katie Myers / Grist / Blue Ridge Public Radio Making emergency planning more inclusiveWalter Davis, 67, has multiple disabilities and can’t drive. He takes several medications, and a work injury left him without the use of one foot. When Helene hit his apartment complex in Swannanoa, he relied on neighbors for help.
“For about three and a half weeks we had no power, no water,” he said while waiting for the bus one day last month. “We had to go down to the creek and get five-gallon buckets of water and flush our toilets with it.”
The storm also took out the only grocery store within walking distance, and many of his neighbors don’t drive.
These challenges extend far beyond Swannanoa. Census data released in 2023 show that while about 1 percent of U.S. adults had been displaced by a disaster in the previous year, the figure rose to 31 percent among those unable to care for themselves. Many people with disabilities never returned home after evacuating, and more than 74 percent of evacuees unable to walk reported experiencing food insecurity a month after a disaster.
State agencies coordinate with emergency services to get information out, but local officials aren’t always aware of the scale of need in an emergency. “Disabled folks are typically not at the table when planning for emergency response,” said Dom Kelly, the founder and director of the advocacy group New Disabled South.
Malia Johnson has a cochlear implant and identifies as deaf. She struggled to keep up with accurate information after Hurricane Helene. Katie Myers / Grist / Blue Ridge Public RadioThose gaps became apparent in Swannanoa after Helene. A friend living at Jasper Apartments asked Beth Trigg to help check on medically vulnerable residents, about 100 of whom had been unable to evacuate. She and other volunteers fanned out across that complex and others to ask what people needed and find essentials like insulin and bottled oxygen. “We really immediately saw the different needs of people who had specific medical issues or disabilities,” Trigg said.
That effort grew into Swannanoa Communities Together, which provides therapy and long-term support ranging from help navigating FEMA to rent assistance. The group operates out of a former hair salon and recently bought adjoining lots, with plans to renovate the building with ADA-compliant bathrooms, wheelchair ramps, and changing stations. An accessibility consultant is helping ensure the space can serve as many people as possible.
“We’re seeing it as a place where we can have emergency response for our community in future emergencies or future disasters,” Trigg said.
– Katie Myers
This story was originally published by Grist with the headline Two years after Hurricane Helene, survivors are taking lessons for the future on Oct 5, 2026.
How the pursuit of science also serves modernity
Navigating the great unraveling: How communities are building place‑based resilience
Oil, war and the fate of industrial societies
Godzilla El Niño is coming
We have to do something
Pranav Jani: Welcome to another episode of Together We Rise: Solidarity Stories from Central Ohio. I’m so happy to have today on our show my good friend and comrade, Kristen Guptil-Godfrey.
Kristen Guptill-Godfrey, who uses they/them pronouns, is a revolutionary socialist and organizer currently living in Arizona on unceded Tohono O’odham and Yoeme ancestral and traditional lands. Kristen’s mom was born and raised in Columbus, and although Kristen moved a lot growing up, they consider Columbus home.
They got the opportunity to live in Columbus from 2016 to 2018, and during that time, they became a revolutionary socialist and joined their first political home. Kristen also worked as a social worker and supported queer and trans young people.
They are a member of the Tempest Collective and a PhD student at the University of Arizona. Kristen strives to organize and be part of a growing imperfect Left that’s rooted in solidarity and internationalism to fight back against the authoritarianism and liberal capitulation we’re currently facing. Their local work includes organizing on campus for Palestinian liberation and fighting back against the attacks on DEI.
Do you want to talk a little bit about the work you’re doing right now in Arizona and start us off there?
Kristen Guptill-Godfrey: Yeah, for sure. In Arizona, I have been a part of an amazing group of people who have been building a branch for the Tempest Collective. The Tempest Collective is a revolutionary socialist organization with about eight branches across the country. We have been building that branch in Tucson and developing spaces for people to come together and find community and talk about the things that are happening around us, and then together debating a way forward. I’ve been building that branch over the last two years.
And then, recently on campus at the University of Arizona, I was the director of LGBTQ affairs. Since Trump was elected, the University of Arizona has just completely given in to his racist policies and basically renamed all of the cultural resource centers here. They’re no longer called centers. The LGBTQ Center cannot be called LGBTQ. And then they laid off all the directors, including myself. So, through everything that happened with these attacks on DEI, diversity, equity, and inclusion, some of us created an organization called UA Resist.
It’s a group of faculty, staff, students, and community members who are fighting for a liberatory campus. That includes Palestinian liberation, showing up for international students, and DEI. For example, tonight we’re facilitating an Organizing 101 training for students to come and learn the skills that it takes to develop relationships with people.
Also, Tempest is a part of the No Data Center Coalition. Amazon Web Services and the electric company here are creating a data center to store the cloud. And we know that cloud holds the data of people that then Amazon Web Services uses and sells to ICE.
We successfully won the first round. We convinced the city council to vote against it. It’s been nice to be a part of coalition like that. And, in a couple months, we’re going to start this political education series around data centers, what that means for environmental racism, imperialism, and attacks on indigenous people. It’s been fun to get a win. We don’t really get wins that often, so when you get a win you really gotta celebrate.
PJ: When you say you’re a revolutionary socialist, what do you mean by that?
KG: That’s a good question. I think it means, for me, is that the way out of this is revolution.
That the way out of this is masses of people recognizing, ordinary people recognizing, the power they have in themselves to act with other people. To get out of this mess—whatever it is, whatever we want to call it—this racism, this authoritarianism, this imperialism that we’re facing and that the Global South is facing, the only way out of that is through this revolutionary process. We have to take control of our future.
PJ: Thanks. People nowadays are either skittish about revolution or don’t know what it means when the right creates the meaning. Because revolution gets seen that way, how would you describe it for ordinary people who aren’t familiar with the far Left? What would revolution mean? What kind of change are you looking for?
KG: I think it means a change from the ground up. This doesn’t mean that reforms are not good. Sometimes there’s a battle between, do I fight for this reform or do I say, “Oh, that reform sucks. We’re going to be in the same place in ten years. Why not fight for something bigger?” I think reforms are important for revolution because really the end goal is learning how to trust other people and how to democratically make decisions together.
I can’t provide an answer for what revolution will look like, but I know it will only come if we know how to work together and trust each other in that process and make spaces easy for people to enter.
The only way that process can happen is if we win these reforms together and learn about how they work. Like in winning the no data center fight, the trust that was built between those comrades in those organizing rooms really is what we’re fighting for, those relationships.
I can’t provide an answer for what revolution will look like, but I know it will only come if we know how to work together and trust each other in that process and make spaces easy for people to enter.Maybe next time, it’s not fighting back against a data center. Maybe it’s fighting back against something bigger. And your politics, they move left as you’re in struggle. As you’re winning various reforms, it makes it easier to tie the connections between data centers and the border, or data centers and Palestine.
It’s not just like revolution is this thing that’s in the future, but it’s the revolutionary insight that you must have that really carries disciplined hope along, like I have to be in this for the long haul, and we have to really create change from the ground up, because this isn’t working for masses of people. Like capitalism, the racism that upholds capitalism is not working for so many people—even when they think it’s working for them.
PJ: So as a revolutionary socialist, if you’re fighting for this no data coalition, if you’re fighting around DEI—and I’m really sorry that you and others lost your jobs— if we’re trying to hold our line on those things, that’s not inherently revolutionary. It’s the process of us ourselves taking charge of things. I wanted to ask you about your work in Columbus. What are some of the memories you have of that time and the things that stand out for you about those experiences here in Columbus?
KG: Oh my gosh, that period was so important for me. I met you during that time. When I moved to Columbus, it was like I had this radicalization period during the Black Lives Matter movement. I don’t know if others listening had the same experience, but you realize that stuff is really messed up, and that there are a few people in charge, and they are running everything. As an alienated person, as an isolated person, you find other things to blame.
I had moved to Columbus from the University of Tennessee. I got my master’s in social work, and I helped organize stuff there. But I didn’t know where to place my anger. I didn’t know who the enemy was, and I didn’t know who to trust. I think this is true for a lot of Black, Brown, and Indigenous folks.
So, I moved to Columbus angry. I saw a flyer in a coffee shop, and I think it said something about socialist politics. And so I went.
I went to the talk, and I thought, “Oh, wow, this is really answering a lot of questions for me.” Anybody can organize. But people need training, people need revolutionary love to be organizers. There needs to be a shared vision, and people need to feel like they’re a part of that vision. So, we would go to coffee shops, and we would talk about all of these issues and we would read things.
I remember reading Party and Class with you, and that was foundational for me. I remember one time we were at the coffee shop, and you just went through all of the [communist] internationals and what that meant for the internationalist Left. I’m like, my mind’s just being blown everywhere.
You were a good mentor because we were reading things together. But we also were in this moment of heightened struggle. I was also going to protests with you. We were actually seeing on the ground what the stuff we were reading meant. It was nice to be doing both of those things with you as a mentor in a socialist organization.
PJ: That’s an honor when you say mentor. But I think at the end of the day, you can’t be in an organization that claims to be grassroots if you’re not meeting new people who get what you’re saying from their own experience and their own knowledge. And for us to pair up like that, those were invigorating meetings for me. It was fantastic to be able to go from those study groups to stuff on the ground and have those discussions in person with people in the middle of a time when things were really intense, in the Black Lives Matter movement. It doesn’t matter how long people have been around the movement—we were all getting educated.
KG: It was exhilarating. It was a moment—when previously you just couldn’t say that the police are bad—and it was like this ideological shift that we really had to figure out and bring people with us. It’s like after the encampment movement on college campuses, just second-guessing Zionism is not weird anymore.
There are these moments in history when organizers really have to take the moment, to meet strangers and to connect their personal experiences to an analysis of what’s happening in a way that they can easily understand and easily grasp onto. Sometimes it’s tough. It’s a lifelong process.
PJ: In Columbus, you were also doing work with trans kids. What was that work like and what did you take from it?
KG: Even before I worked there, I started working in social work in the foster care system. I managed a group home for boys in foster care.
It was at that group home that I noticed that the state was sending me trans girls to put in this home with boys. And so it was in that moment that I recognized that these systems are not set up for queer and trans people.
After I got my master’s, I got to work at an after-school program in Columbus. It was the first time that I got to think about political education with young people. That job was the first time I identified as an educator. Of course, young people need safe spaces to be and find friendship, but it was also political. Assata Shakur had just died and I did Assata’s chant with a group of young people.
I got to talk to queer and trans young people about Assata and what that meant for our own liberation as trans people. When I was at that job, I was also reckoning with my own gender. It was also a personal experience. In reckoning with my gender, I was uplifted by 13-year-olds who told me, “You can do this.” I have a video on my phone and it’s facing downwards to not record the young people, but we did Assata’s chant together.
I still do that to this day when I’m in a room full of young people because it really does influence the space that you’re in.
PJ: In memory of Assata, we should do the chant right now. Maybe go back and forth.
KG: It is our duty to fight for our freedom.
PJ: It is our duty to win.
KG: We must love each other and support one another.
PJ: We have nothing to lose but our chains.
KG: Yeah.
PJ: Yeah.
KG: May she rest in paradise.
PJ: We have been talking about bringing together Black Lives Matter and systemic racism, police violence, questions of gender, and questions of trans kids. In the shift to broader politics, what are some of the things that made you ready for that shift—made you a person who, when things are happening in the world, when these questions come, you didn’t just, say, “Wow, there’s a lot that needs to change,” or, “We ought to do something.”
You took steps toward changing this. “I have to be part of the solution.” What were some of those things that drove you to that?
KG: I think becoming a socialist made me aware of things that I didn’t think of before, like the material analysis of Marxism and the class-consciousness that is so necessary. I was also in Columbus in one of my big kid jobs when I got to really think of myself as an exploited worker, as a social worker. I thought about what was required of me as a worker and being alienated in that workplace. And I remember being in an International Socialist Organization meeting asking that question about how workers are exploited. What does that look like for educators and social workers?
I was putting together those pieces, and then it became clear to me that everything was connected, like the paycheck I had or where I lived or the gentrified neighborhood that my grandma lives in Columbus, where now her house is worth $500,000 and white people are asking to buy her house. That’s all material things we can touch and feel. It made it clear that life doesn’t have to be this way, that, as a worker, as a Black worker, I deserve more. I understood racism. But to really confront racism as it plays out in your everyday life is for you as a working-class person.
PJ: So that resonated with things you already knew but also put them in a new light.
KG: There’s this assumption in mainstream society, and even in the history classes that we’re in, that things just get better.
You know how people say, “I can’t believe you said that word. It’s 2025.” Like things just get better. And people are even now, “How are they going after same-sex marriage? It’s 2025.” And it’s like no, this is a battle, and if we whatever we want to call ourselves, the Left, progressives, if we don’t join together and fight that battle, we lose.
What we’re seeing is this back and forth of winning and losing, and when we lose, we are not organized. We are not talking to each other. We are not bringing new people into the movement. The Marxist analysis of history convinced me that I have to play a role in that history, that I’m just not going to wake up tomorrow and Black liberation will come. I think I read somewhere that there are more Black men in prison now than were enslaved. It’s a real thing you can touch to know that things don’t just get better. We have to fight for the things that we deserve, and they’re not just going to come to us, and we can’t rely on anybody but ourselves and other ordinary people to make that happen.
This is a battle, and if we whatever we want to call ourselves, the Left, progressives, if we don’t join together and fight that battle, we lose. . . . We have to fight for the things that we deserve, and they’re not just going to come to us, and we can’t rely on anybody but ourselves and other ordinary people to make that happen.PJ: You’ve seen not only in Ohio but everywhere, these attacks on trans rights that are actually attacks on trans people. It’s not even been abstract, like you can’t have this right. It’s been like, why do you exist.
KG: Exactly—the demonization of a whole group of people.
PJ: As a cisgender person, I’m in solidarity in the fight against that, but I don’t feel it in the same way that a trans person would feel it. I don’t want to ask an unfair question, but how do you look at this moment? How are you experiencing this moment? You’ve been through a lot of moments, in your life as an activist and as a person where you’ve said this is a really bad time. This is a really hard time. How does this time feel to you?
KG: It feels rough because it feels unorganized.
In different meetings that I’m in, whether it’s a big coalition meeting or whether it’s a small Tempest meeting, it’s hard to even think about strategies and tactics. It’s like a lot of bad things are happening to us, but there’s not necessarily thousands of people going into the streets.
So then as a revolutionary, as someone who knows that we need people in this, we need people to take action, I think that is what honestly scares me the most.
And I think Trump is really good at this. He was good at this his first time around, but putting so much on us so quickly. It’s like you learn about one thing, and then he throws something else at you, so it’s too hard to keep up. And I know people feel that way, but it just feels like we don’t have enough people on our side doing active things every day to fight back.
And that’s not to say that people are not active. People are. And they are really giving their all. But I think it’s when we are unorganized, it is easier for people to be hopeless and move away if they have that privilege, or to just hold their ground and to see where it’s going to go.
Even now, it’s hard to offer someone a vision, and I think that’s what Trump is good at. He gave people a wrong vision, but he did give people a vision and an answer to why they can’t afford groceries. An inaccurate one, but the U.S. is founded on racism and enslavement and genocide, so when you tell somebody, “You don’t live a good life because of immigrants,” it’s easy to understand that.
What is our vision, and how do we share that with other people? It feels different from the Black Lives Matter movement. There were some parts of it that were unorganized, but there just seemed to be this force of people into the streets. People saying, “I’m going to do something about it.” It might be unorganized, and it might be tactically strong with no strategy. But people were doing something. And now it feels like we need that pressure. And we saw some of that for Palestine, but even that has died down, especially in the U.S.
PJ: So there needs to be this revival of this sense of vision, I think that’s a good word. There are a lot of people fighting, and a lot of us have been very busy. But we are missing this sense of collectively are we going to take this on or not?
Even people say fascism is this. That’s fine. People can say whatever word they want. But what are we going to do? That’s the question—and are we going to do it together? It’s about solidarity. Different people are at the front lines of different kinds of attacks, and that’s undeniable. At the same time, we’re in this together. No individual group is going to liberate themselves. What does that look like for you? What does solidarity in practice look like for you? How do we get this diverse group of people, who share a lot but also have differences, together?
I’m not asking you for a formula, but what I’m asking you for, how do we do it? If you have it, you should share it. But what I’m asking is, what have some of your experiences have been of those moments of solidarity, experiencing it and organizing around it?
KG: I think a couple things. I think one is connecting struggles, and two is not just connecting struggles, but also—I’m trying to think of a way to phrase it. For cis people to care about trans folks, for example. Why would a cis person want to show up for trans folks? Let’s say you don’t have any trans family members, you don’t have any trans kids. You’ve just heard about them on the news, and now you’re trying to figure out which way to go. I think the way to do that is to think about your own struggles that you’re facing and then having this material analysis and asking, what will I lose if trans people keep losing rights?
I think we saw this coming when they got rid of Roe v. Wade, right? That is an attack on trans folks and cis women. But it’s tough to see that attack happen without a huge movement to fight back against it. Now we’re seeing the demonization of trans people. This attack on a person’s ability to have an autonomous body where they make decisions for themselves. And that should be the number one thing we’re all fighting for. And that has everything to do with cis men, right? Cis men oftentimes, I think, don’t have autonomy over their bodies in that you get to only be emotional and express a certain type of emotion in a certain setting, if any.
You’re judged for how you express yourself; you’re judged if you don’t express yourself the right way. So that has everything to do with trans rights. That has everything to do with the medical industry and what services that we can be provided with, whether it’s hormones or abortion rights. I think that’s one way in terms of thinking about how this affects me. I could go my whole life not meeting a trans person, let’s say, but what does that trans person’s experience have to do with me? And if I don’t show up for that trans person, my own material rights are going to be taken away.
I’m not going to have abortion rights, or I’m not going to be able to think differently about my masculinity. I think those two things are very connected. Like with the border—not being allowed to move your body where you need to, whether it’s for your family to live or because you want to go somewhere else. That is an issue of autonomy about what you can do for you and your family,
PJ: And then there is the kind of moral and ethical question to just stand up for people next to you.
KG: If people are moved in that way: I have to show up because it’s the right thing to do, I think that’s brilliant. But also, I think there is this insight that, if they lose their rights, they’re coming for me next. I think that is very real, and we have seen that play out in the last 15 or 20 years.
I think another piece of solidarity for me is letting people mess up. I was just listening to Keeanga-Yamahtta Taylor giving a talk. And she was like, “What if during the Black Lives Matter movement, we didn’t expect people to already be abolitionists when they came into our meetings?”
What if we invited people to a meeting and a white working-class person comes who is not convinced that cops are bad, and says, “Sometimes my neighbors and I do call the cops because things happen”? And then sometimes what we saw in that moment was maybe cancel politics. Maybe, “Oh we’re not going to invite that person to the next meeting” instead of a holding organizing spaces that can actually be somewhere where you get your questions answered in a loving, comradely way to then move people to understand—like what I just explained for a cis man caring about trans people. That just can’t happen in your own home. That has to be in collectivity with someone else who’s also thinking about it.
Say you’re a teacher and it’s your first time hearing about a gender-neutral restroom in your school. The spaces that organizers create have to be where people can connect those struggles. Then solidarity can be material. But if we are expecting people to say a certain thing, or to be educated on this certain thing, I don’t know where adults are going to get educated on this thing. They’re coming to us, I hope. So when they come into our spaces that should be easily accessible.
They should say something wrong. And then we should meet them with love and care, and get them to abolitionist politics, not expecting someone to show up and completely understand Zionism, and completely understand a one-state solution, and completely understand Palestinian liberation.
How can we be the landing pad for people to recognize the material connections from themselves and a Palestinian in Gaza? We have to be doing that work.
I just heard David McNally say that the spaces that we’re in, they might not be revolutionary spaces, but if they are spaces where people are at, we must be there. And we don’t change our politics, but we create spaces to talk about things with other people and bring our revolutionary politics into that.
I know both you and I are at universities where people have many different ideas. But universities are also made up of poor people, of working-class people, of Black and Brown people, so we must be there. Then we have to offer a different vision of what the university could be like. We have to talk to people who maybe have not thought about a free education. Or about an LGBTQ center that will always be in existence, or no police on campus. We have to be in these spaces where people are to offer these different types of visions, to work with people, and to move each other. We have to be open to being shifted by other people that we’re meeting. I think that’s how the relationship has to work to be a true, honest, comradely relationship.
PJ: There are not thousands of people on the street. Because of all the repression, the movements themselves don’t look as big in that kind of climate. There are a lot of people who are on the fence, who aren’t exactly sure what their next step should be. What kind of thoughts or advice do you have for people on the fence right now who see a lot of atrocities but aren’t sure what they should do?
We have to be in these spaces where people are to offer these different types of visions, to work with people, and to move each other. We have to be open to being shifted by other people that we’re meeting. I think that’s how the relationship has to work to be a true, honest, comradely relationship.KG: Really, I think all I can say is you can’t do it alone. And you have to do something. You have to act, but that action only means something, and you’re only provided with safety to act ifs you do it with other people. So that means understanding the community you’re in.
Who’s meeting where? What is the landscape of the city you’re in? Do you have a friend who is just as pissed off as you and you want to read this book about McCarthyism together? I’m sure all of us have a pissed off coworker or a pissed off sibling who’s also thinking about this stuff. It doesn’t have to be a meeting with 50 people. It can be getting with a couple of people and thinking about how things work and why they work the way they work and providing each other that space to ask those questions. If you hear of a protest, if you hear of a march, if you hear of a teach-in, go. And you will hopefully be met with kindness.
The role of an organizer is to ask, “You got a ride?” Or to send you an email with five resources because you had this one question that they remembered from two weeks ago. That’s the role of an organizer, to make it easier for people to think about their place in organizing, their place in this revolution.
There’s a place for everybody. But we have to do something, and we have to do it with other people.
Opinions expressed in signed articles do not necessarily represent the views of the editors or the Tempest Collective. For more information, see “About Tempest Collective.”
Featured Image credit: Becker1999 and Pranav Jani; modified by Tempest.
The post We have to do something appeared first on Tempest.
Australia’s biggest coal generator set to be replaced by the world’s biggest battery
Origin Energy seeks approval for new addition to its Eraring battery that would take the total size to 1200 MW and 8600 MWh, easily the biggest in the country.
The post Australia’s biggest coal generator set to be replaced by the world’s biggest battery appeared first on Renew Economy.
Going full hybrid: Massive, $2 billion solar and battery proposed at site of newly expanded wind farm
More projects are going hybrid: A $2 billion solar and battery addition is proposed to what is already the state's biggest and newly expanded wind farm.
The post Going full hybrid: Massive, $2 billion solar and battery proposed at site of newly expanded wind farm appeared first on Renew Economy.
Where’s Evo? The missing network in Canberra’s bold electrification experiment
Canberra is becoming a real-world laboratory for mass electrification, but its local electricity network will be watching from the sidelines.
The post Where’s Evo? The missing network in Canberra’s bold electrification experiment appeared first on Renew Economy.
THE SHELL LEAKS FILES: 4 OCTOBER 2026
Archive reference: SLF-2007-077
Collection: The Sakhalin Papers
Principal authenticated records: Royal Dutch Shell plc Annual Report and Form 20-F 2011; US Securities and Exchange Commission filing record; Gazprom corporate records concerning the 2010 Strategic Global Cooperation Protocol and the June 2011 Gazprom Neft–Shell agreement
Contemporaneous reporting: Gazprom Neft press-service material; Dow Jones; Russian business press; contemporaneous Donovan archive
Judicial context: Export Credits Guarantee Department v Friends of the Earth [2008] EWHC 638 (Admin)
Evidence standard: The June 2011 agreement is described according to what it actually did: it established basic terms for examining the creation of a joint venture. It is not represented as proof that the contemplated venture had already been incorporated or that every proposed project proceeded. Corporate statements about technology, international assets and future cooperation are attributed to the companies making them. Commentary concerning strategic motives is identified as commentary.
Yesterday’s file ended with a remarkable document.
On 30 November 2010 Shell and Gazprom signed a:
Protocol on Strategic Global Cooperation.Its reach was deliberately broad.
Western Siberia.
The Russian Far East.
European downstream markets.
And possible Gazprom participation in Shell projects outside Russia.
The language suggested ambition.
But a protocol is not a project.
It does not drill a well.
It does not transfer an asset.
It does not create a producing company.
The next question was therefore obvious:
Would Shell and Gazprom turn the rhetoric into corporate machinery?
By June 2011, the answer was beginning to emerge.
Not through Sakhalin Energy itself.
Through Gazprom’s oil subsidiary:
Gazprom Neft. 1. First came an April meetingOn 12 April 2011, Alexey Miller and Peter Voser met in Moscow.
The companies discussed implementation of the global strategic-cooperation protocol.
The agenda included possible joint projects in Western Siberia and eastern Russia, downstream cooperation in Russia and Europe, and Gazprom participation in Shell projects in third countries.
There was also an immediate Sakhalin issue.
Japan had suffered the catastrophic earthquake and tsunami of 11 March 2011, followed by the Fukushima nuclear disaster.
Contemporary reporting recorded that Gazprom and Shell discussed increasing LNG deliveries to Japan from Sakhalin II. Royal Dutch Shell Plc .com
The Sakhalin partnership therefore had two dimensions by spring 2011.
It was an operating LNG business.
And it was becoming the institutional foundation for something much larger.
2. 16 June 2011: Shell and Gazprom Neft sign the basic termsGazprom’s subsequent official corporate record dates the next major step to:
16 June 2011.Gazprom Neft and Shell signed what Gazprom described as the:
Basic Terms and Conditions of the Agreement.
The parties would examine the possibility of creating a joint venture for projects in:
Western Siberia;
other Russian regions;
and:
“third countries.”Gazprom repeated that description in later official releases, including its June 2012 account of continuing Shell cooperation. Gazprom
A contemporaneous Gazprom Neft press-service account carried by Russian business media described the same agreement and its intended geographical scope. BFM.ru – деловой портал
This was the bridge between the grand 2010 protocol and possible operating ventures.
3. A small but important correction: no new joint venture yetThe wording needs care.
Shell and Gazprom Neft did not announce on 16 June that a new joint venture had already been created.
They agreed to:
assess the potential of creating one.The surviving English-language version of the announcement states that the companies would examine a joint venture to pursue projects inside and outside Russia.
Peter Voser described the agreement as a:
“launch pad for new joint projects”
in Russia and elsewhere.
Alexander Dyukov said working with Shell could give Gazprom Neft access to advanced technology and opportunities involving assets outside Russia. Royal Dutch Shell Group .com
That distinction is central to this instalment.
The ambition was established.
The corporate vehicle was still being designed.
4. Western Siberia was not new territory for ShellShell was not entering Western Siberia for the first time.
It already had a substantial producing business there.
Shell and Gazprom Neft each held 50 per cent of the Salym development.
Shell’s 2011 Annual Report and Form 20-F records that Salym production averaged approximately:
165,000 barrels of oil equivalent per dayduring 2011.
The same filing records Shell’s continuing 27.5 per cent interest in Sakhalin II. FinancialFilings
So the contemplated new joint venture was not an experiment between companies unfamiliar with one another.
There was already a working precedent.
Sakhalin II linked Shell with Gazprom.
Salym linked Shell with Gazprom Neft.
5. Salym provided a different model from SakhalinThe contrast is worth making explicit.
At Sakhalin II, Shell had begun as the controlling shareholder and later became a minority partner after Gazprom acquired 50 per cent plus one share.
At Salym, Shell and Gazprom Neft were equal partners.
That meant Shell already possessed an example of Russian cooperation based on:
50–50 ownership.The June proposal therefore did not simply extend the ownership structure imposed at Sakhalin II.
It pointed towards a different model:
equal partnership with the oil arm of Gazprom.
That was potentially much easier for Shell to present internally and externally as conventional commercial cooperation.
6. And Salym was producing at substantial scaleShell’s SEC-filed 2011 annual report provides useful perspective.
Sakhalin II had reached planned plateau production of about:
360,000 boe per dayin 2010.
Its two LNG trains had been designed around approximately 9.6 million tonnes per annum, and Shell said optimisation increased production to:
10 million tonnes per annumin 2011.
Salym, meanwhile, was producing approximately:
165,000 boe per day.These were not marginal experimental assets.
Together they demonstrated that Shell’s Russian partnerships were already capable of producing hydrocarbons at material scale. FinancialFilings
The strategic-cooperation programme therefore rested on substantial operating experience.
7. Gazprom Neft said openly what it wanted from ShellAlexander Dyukov’s statement accompanying the June agreement is unusually revealing.
Gazprom Neft wanted:
experience;
advanced technology;
and:
access to assets outside Russia.That last element directly echoed the reciprocity principle discussed in yesterday’s file.
Gazprom’s senior management had already said that foreign companies obtaining access to Russian upstream projects should be prepared to offer access to attractive international opportunities in return.
The Gazprom Neft statement now expressed the same idea at operating-company level. Royal Dutch Shell Group .com
Russia had the resource base.
Shell had international assets and technology.
The contemplated venture was intended to combine them.
8. Shell’s description was equally revealingVoser did not describe the June agreement as damage limitation following Sakhalin.
He said it built upon the companies’:
“successful partnership”.And he called it a potential:
“launch pad”for projects in Russia and elsewhere. Royal Dutch Shell Group .com
The choice of language matters.
Four and a half years earlier Shell had been fighting to retain control of its largest Russian investment.
Now its chief executive was treating the relationship that emerged from that confrontation as a base from which to expand.
That statement is corporate fact.
Why Shell regarded this as strategically sensible belongs partly to commentary.
But what Shell said publicly is unambiguous.
9. The proposed reach was deliberately wider than oil productionThe agreement was not confined to drilling.
The contemporary Gazprom Neft press-service account said the companies wanted to develop cooperation across:
geological exploration;
production;
processing;
and:
marketing of hydrocarbons.That meant the proposed partnership could span a substantial part of the oil and gas value chain. BFM.ru – деловой портал
Again, this closely reflected the November 2010 Global Strategic Cooperation Protocol.
The June agreement was beginning to give that framework an operating shape.
10. “Third countries” may be the most important phraseWestern Siberia was unsurprising.
Shell already operated there.
Other Russian regions were logical.
But the phrase:
“third countries”deserves attention.
It meant the contemplated venture was not necessarily to be confined to Russia.
Gazprom Neft wanted the possibility of accompanying Shell into international assets.
That was a major conceptual shift from the early Sakhalin relationship.
In the 1990s and early 2000s, Shell had brought international capital and expertise into a Russian project.
By 2011, Russia’s state-controlled energy companies were seeking routes outward.
Shell could potentially provide them.
11. Shell was not relying exclusively on GazpromAnother fact prevents the story from becoming too neat.
Shell was also talking to:
Rosneft.In July 2011, after the collapse of BP’s attempted strategic alliance with Rosneft, Peter Voser confirmed that Shell had held early-stage discussions with the Russian state and Rosneft about opportunities both inside and outside Russia.
He specifically acknowledged Shell’s interest in Arctic acreage, including the Russian Arctic.
Dow Jones contemporaneously reported Voser saying the discussions were still at an early stage and that any outcome would be speculative. Royal Dutch Shell Group .com
That matters.
Shell’s strategy was not simply:
attach ourselves permanently to Gazprom.
A more defensible reading is:
secure access to Russian resources through relationships with the state-controlled companies capable of providing it.
Gazprom was central.
It was not necessarily exclusive.
12. September: the proposed joint venture returns to the agendaOn 15 September 2011, Alexey Miller and Peter Voser met again at Gazprom headquarters.
The official account, reproduced contemporaneously, states that the parties discussed implementation of the June agreement.
Specifically, they considered issues connected with:
creating a joint venturefor projects in:
Western Siberia;
other Russian regions;
and third countries. Oreanda News
Three months after the June signing, therefore, the venture was still prospective.
The companies were discussing its creation.
That reinforces the evidential distinction made earlier.
13. The September meeting broadened the discussion againThe Miller–Voser meeting also addressed wider cooperation in:
geological exploration;
hydrocarbon production;
processing;
and distribution;
in Russian and international oil and gas markets. Oreanda News
The progression can now be traced document by document.
November 2010A protocol for global strategic cooperation.
April 2011Detailed discussion of Russian and international opportunities.
June 2011Basic terms for examining a new Shell–Gazprom Neft joint venture.
September 2011Management discussions about actually creating that venture.
The relationship was moving incrementally from political language towards operating structures.
14. Shell’s own year-end filing shows how important Russia remainedRoyal Dutch Shell filed its 2011 Annual Report and Form 20-F with the US Securities and Exchange Commission on:
15 March 2012. SECIts Russia section did not describe a company retreating from the country.
It recorded:
a 27.5 per cent interest in Sakhalin II;
a 50 per cent interest in Salym;
additional exploration interests in Russia;
and new exploration rights acquired during the year.
Shell also reported that total LNG sales rose to:
18.83 million tonnes in 2011,with higher Sakhalin II production among the factors contributing to the increase. FinancialFilings
Russia remained embedded in Shell’s growth portfolio.
15. Sakhalin II was now performing better than its original nameplate figureThere is another small but telling detail in the annual report.
The original two-train Sakhalin LNG plant was designed around approximately:
9.6 mtpa.After optimisation, Shell reported that production from the two trains reached:
10 mtpain 2011. FinancialFilings
The project over which Shell had fought so bitterly was not merely operational.
It was performing strongly.
That made the commercial logic of staying in Russia easier to understand.
Shell had lost control.
It had not lost the profitability or strategic value of its remaining share.
16. The proposed new partnership therefore rested on success, not failure aloneIt is easy to frame every subsequent Shell-Gazprom agreement as an aftershock of the 2006 crisis.
That misses half the story.
By 2011 Shell had practical evidence that joint Russian ventures could work commercially.
Sakhalin II was exporting LNG.
Salym was producing approximately 165,000 boe per day.
Gazprom and Shell had established long-term LNG and pipeline-gas arrangements.
Both sides had experience working together.
The new venture discussions were therefore not occurring in the shadow of Sakhalin alone.
They were also being driven by the operating results that followed it.
17. But the political asymmetry had not vanishedThis is where fact and commentary must be separated.
Nothing in the June agreement says:
Shell accepted a weaker political position in exchange for resource access.
Nothing in the September account says:
Gazprom was rewarding Shell for its behaviour at Sakhalin II.
No such proposition should be presented as documented fact.
But the institutional structure remained asymmetric.
Shell could provide technology, capital and international assets.
It could not grant itself licences to strategic Russian resources.
Russian state-controlled companies occupied the stronger position in determining access.
That structural fact helps explain why partnership became central to Shell’s Russian strategy.
It does not prove a secret bargain.
18. The High Court record remains relevant — but only as historyThe surviving judicial record concerning Sakhalin II remains:
Export Credits Guarantee Department v Friends of the Earth [2008] EWHC 638 (Admin).
Mr Justice Mitting delivered judgment on 17 March 2008.
The case concerned access to environmental information relating to possible UK financial support for Sakhalin II.
It recorded the project’s environmental significance and the ownership transition involving the Russian participant.
It did not consider the 2010 strategic protocol.
It did not consider the 2011 Gazprom Neft agreement.
It did not rule on Shell’s decision to expand its Russian partnerships.
And it made no finding that later commercial cooperation constituted compensation for Shell’s earlier loss of control. vLex
The court record supplies historical context.
It does not supply motive.
19. What was actually created in June 2011?The documentary answer is narrower than the headline ambition.
The parties created:
an agreed framework for studying a joint venture.They did not yet create the joint venture itself.
That distinction is supported twice:
first by the June wording;
and again by the September meeting, when Miller and Voser were still discussing the issues involved in creating the vehicle. Royal Dutch Shell Group .com
This is an important example of why corporate announcements must be read literally.
“Agreement.”
“Joint venture.”
“Strategic cooperation.”
“Basic terms.”
These phrases can sound interchangeable in headlines.
Legally and commercially, they are not.
20. What the agreement nevertheless demonstratesEven with that caution, the significance is substantial.
Shell and Gazprom had moved from:
a contested ownership restructuring;
to operating cooperation;
to LNG sales;
to global strategic cooperation;
to studying a new international joint venture.
That sequence was completed in less than five years.
The 2006 confrontation therefore did not produce a long-term commercial rupture.
It produced a different architecture for Shell’s Russian business.
One in which state-controlled Russian companies would be embedded much more deeply in Shell’s future plans.
Documentary Findings EstablishedOn 30 November 2010, Shell and Gazprom signed a Protocol on Strategic Global Cooperation covering Russian and international opportunities.
On 16 June 2011, Gazprom Neft and Shell signed basic terms governing study of a possible joint venture for projects in Western Siberia, other Russian regions and third countries. Gazprom later repeated that chronology in its official corporate records. Gazprom
The contemporary Gazprom Neft press-service account said the proposed cooperation covered exploration, production, processing and marketing of hydrocarbons. BFM.ru – деловой портал
Peter Voser described the agreement as a potential “launch pad” for joint projects in Russia and elsewhere. Royal Dutch Shell Group .com
Alexander Dyukov said cooperation with Shell could provide Gazprom Neft with advanced technology, additional experience and access to assets outside Russia. Royal Dutch Shell Group .com
On 15 September 2011, Alexey Miller and Peter Voser were still discussing the creation of the contemplated joint venture. Oreanda News
Shell’s 2011 Form 20-F recorded a 50 per cent interest in Salym, where production averaged about 165,000 boe/d, and a 27.5 per cent interest in Sakhalin II. FinancialFilings
Shell reported that Sakhalin II LNG production reached approximately 10 mtpa after optimisation of the two existing trains. FinancialFilings
Established broader contextShell was simultaneously holding early-stage discussions with Rosneft concerning further Russian and international opportunities, including possible Arctic involvement. Royal Dutch Shell Group .com
This shows that Shell’s Russian strategy was not confined exclusively to Gazprom.
Judicial boundaryThe relevant High Court litigation concerned environmental-information disclosure and pre-dated the 2010–11 strategic agreements.
It did not adjudicate Shell’s later partnership strategy or the motives behind it. vLex
Not establishedThe June 2011 document did not itself establish the contemplated new joint venture.
No evidence examined here establishes that Shell was guaranteed any particular Russian field.
No evidence examined here establishes that Gazprom Neft obtained a specific overseas Shell asset under the June agreement.
No court finding establishes that later cooperation was compensation for Shell’s loss of control of Sakhalin II.
No public document examined here establishes a secret quid pro quo connecting the 2006 ownership transfer with the 2011 joint-venture negotiations.
CommentaryThe language of the June agreement is revealing precisely because it was so practical.
The 2010 protocol had spoken of “strategic global cooperation.”
Seven months later the companies were asking the more difficult question:
What corporate structure would actually deliver it?
The answer under consideration was a joint venture.
Western Siberia provided an obvious starting point.
Shell and Gazprom Neft were already producing oil together at Salym.
The commercial relationship had operating history.
The technical relationship had substance.
The companies knew one another.
But “third countries” shows that the ambition went further.
Gazprom Neft did not merely want Shell’s help producing Russian oil.
It wanted the experience of working internationally.
Shell, meanwhile, wanted continuing access to a resource-rich country in which access to strategic acreage depended heavily upon relationships with state companies.
That is the bargain visible in the public record.
Not a secret bargain.
A structural one.
Resources and access on one side.
Technology, international reach and project experience on the other.
Sakhalin II had demonstrated how unequal the political relationship could become when circumstances changed.
Salym demonstrated that equal commercial partnership could nevertheless work.
By 2011 Shell was trying to build upon both lessons.
The irony remains unavoidable.
Five years earlier Shell had been struggling against the dilution of its largest Russian investment.
Now its chief executive was publicly calling cooperation with the same state-controlled corporate system a:
“launch pad”.That does not mean Shell had forgotten Sakhalin.
It may mean Shell had learned from it.
Source RecordRoyal Dutch Shell plc’s Annual Report and Form 20-F 2011, filed with the US Securities and Exchange Commission on 15 March 2012, records Shell’s Russian production interests, including Sakhalin II and Salym. SEC
US SEC — Royal Dutch Shell plc 2011 Form 20-F filing index
Gazprom’s official 21 June 2012 review of Shell cooperation confirms that Gazprom Neft and Shell signed the Basic Terms and Conditions on 16 June 2011, contemplating a joint venture for Western Siberia, other Russian regions and third countries. Gazprom
Gazprom — Gazprom and Shell develop cooperation in Russian and international oil and gas markets
The contemporaneous Gazprom Neft press-service account describes the purpose of the June agreement and records the statements of Alexander Dyukov and Peter Voser. BFM.ru – деловой портал
Royal Dutch Shell archive — Shell and Gazprom Neft to Implement Joint Projects
The 15 September 2011 Miller–Voser meeting record confirms that creation of the proposed venture was still under discussion three months later. Oreanda News
Contemporaneous Dow Jones reporting recorded Shell’s simultaneous early-stage discussions with Rosneft and Peter Voser’s expressed interest in Russian Arctic opportunities. Royal Dutch Shell Group .com
The relevant judicial background remains Export Credits Guarantee Department v Friends of the Earth [2008] EWHC 638 (Admin), judgment of Mr Justice Mitting dated 17 March 2008. vLex
Archive disclaimer: Agreements to investigate, study or establish future ventures are not treated as completed investments unless the documentary record establishes completion. Corporate statements are distinguished from independent reporting and from judicial findings. Strategic interpretation is identified as commentary rather than fact.
Site-wide disclaimer applies.
Next instalment SLF-2007-078 — The Sakhalin Papers LXVIII: From Siberia to the Arctic — Shell Takes the Gazprom Partnership Into Russia’s New FrontierThe joint-venture discussions did not disappear.
They evolved.
By 2013, Shell and Gazprom were ready to move into territory considerably more politically and environmentally sensitive than Salym.
In April 2013, during Vladimir Putin’s visit to the Netherlands, Gazprom and Shell signed a memorandum covering possible cooperation on:
Russia’s Arctic shelf.At the same time Shell and Gazprom Neft moved toward a 50–50 venture for liquids-rich shale development in Western Siberia, with the existing Salym organisation expected to provide initial oilfield services. Gazprom’s own corporate history records the Arctic cooperation memorandum; contemporaneous accounts record the parallel shale arrangement. Gazprom
The timing would be extraordinary.
Only months earlier, Shell’s own attempt to conquer the Alaskan Arctic had ended its 2012 drilling season amid a catalogue of operational setbacks.
Yet rather than retreat from the Arctic idea, Shell was preparing to pursue another Arctic frontier —
this time with Gazprom.
The next file will examine how the partnership born from the Sakhalin crisis moved north into the Russian Arctic, and why Shell remained determined to pursue high-risk frontier oil even after its Alaskan experience had gone badly wrong.
THE SHELL LEAKS FILES: 4 OCTOBER 2026 was first posted on October 4, 2026 at 7:32 pm.©2018 "Royal Dutch Shell Plc .com". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at john@shellnews.net
2026 SkS Weekly Climate Change & Global Warming News Roundup #40
Climate Policy and Politics (7 items)
- Midterm Battleground State Poll: Political Priorities & Opinions on the Clean Energy Transition The data relating to “climate hushing” is particularly revealing, showing that — by large margins — battleground state voters (a) want politicians to spend more time talking about climate change (not less), and (b) are more likely to vote for candidates who make transitioning away from fossil fuels a top priority if elected. Environmental Voter Project, EVP staff, Sep 22, 2026.
- Gavin Newsom condemns Democrats` `climate hushing`, predicts Trump`s downfall and expects AOC to run in 2028 Energy modernization means more affordable energy and politicians should not be afraid to say it. The Guardian, Mark Hertsgaard, Sep 24, 2026.
- Fed up with Brazil’s politicians not listening, a climate scientist runs for office Luciana Gatti, who studies carbon uptake in the Amazon, aims to join Brazil’s lower house in this weekend’s elections Science, Daniel Grossman, Sep 28, 2026.
- Alito`s Recusal From Climate Case: Too Little, Too Late? The justice’s participation in the Boulder case already may have been pivotal, and his continued stock holdings—including in fossil fuels—keep an ethics cloud over the Supreme Court. Inside Climate News, Marianne Lavelle, Sep 29, 2026.
- AI Was Supposed to Cut Emissions. Instead, Fossil Fuel Companies Are Using It to Find More Oil and Gas. A new study found AI-driven fossil fuel productivity could increase emissions. Here are examples of companies already using AI to boost production. Desmog, Sarah Hofmann, Sep 30, 2026.
- A Climate Change Rebrand More politicians have stopped talking about the climate, but love of money and risky geopolitics leave the 'green transition' still moving forward. NYT, Katrin Bennhold, Oct 01, 2026.
- Texas can`t hide from climate change by stopping students from learning about it Climate change will shape the future of Texas. Students should be allowed to learn about it. The Climate Brink, Andrew Dessler, Oct 02, 2026.
Climate Science and Research (7 items)
- `Concerning` low sea ice persists as Antarctic hits third-lowest winter peak Antarctic sea ice has recorded its third-smallest winter peak extent since satellite records began 48 years ago, new data reveals. Carbon Brief, Ayesha Tandon, Sep 25, 2026.
- Who is responsible for limiting global warming to 1.5°? Climate mitigation as systems integration: researcher models and quantifies Interlocking systemic changes spanning government, industry and households necessary for adhering to a 1.5°C warming limit. Phys.org, Irene Ketting, Sep 27, 2026.
- Godzilla El Niño is about to hit the Arctic. How bad will it be? Part 1 of a 2-part collaboration between Dave Borlace ("Just have a Think") and Ella Gilbert (Dr Gilbz) about possible connections between the Super El Nino and Artic sea ice in the northern and Antarctica in the southern hemisphere. "Just have a Think" on Youtube, Dave Borlace, Sep 27, 2026.
- “Godzilla” El Niño = crashing Antarctic sea ice? Part 2 of a 2-part collaboration between Dave Borlace ("Just have a Think") and Ella Gilbert (Dr Gilbz) about possible connections between the Super El Nino and Artic sea ice in the northern and Antarctica in the southern hemisphere. Dr Gilbz on Youtube, Ella Gilbert, Sep 27, 2026.
- The impacts of this year`s record-shattering El Niño El Niño will drive severe drought from Indonesia to the Southern Africa and northern South America, with wetter winters from the US Gulf Coast to Southern South America. The Climate Brink, Zeke Hausfather, Sep 28, 2026.
- Planetary Health Check 2026 The 2026 Planetary Health Check identifies 7 of 9 planetary boundaries as exceeded and includes a special focus on carbon sinks. Planetary Health Check, Carlos Nobre et al. , Sep 29, 2026.
- Skeptical Science New Research for Week #40 2026 Skeptical Science's weekly survey of academic, government and NGO climate research. Skeptical Science, Doug Bostrom & Marc Kodack, Oct 01, 2026.
Climate Change Impacts (7 items)
- Explainer: How sea level rise poses an `existential threat` to humans, heritage and nature Here, Carbon Brief unpacks some of the key ways that sea level rise threatens both societies and ecosystems. Carbon Brief, Giuliana Viglione, Sep 22, 2026.
- Sea level rise is reshaping a California beach town and threatening a key rail line “The constant pressure is sea level rise,” said Sean Vitousek, research oceanographer with the U.S. Geological Survey. “It is going to keep rising, and rising, and the beaches will retreat landward.” AP News, Amy Taxin, Sep 27, 2026.
- Antarctica`s ice loss is locked in, and extra snowfall won`t save it - that`s bad news for low-lying coastal areas elsewhere The Conversation, Yucheng Lin, Robert Kopp, Sep 30, 2026.
- Past emissions will continue warming the planet for decades New research shows that past emissions from oil, gas, coal, and cement will continue to affect the environment and increase the odds of extreme weather for decades. Futurity, U. Washington, Sep 30, 2026.
- Swiss glaciers suffer another year of record ice loss Switzerland's glaciers lost more than 5% of their ice in 2026, marking another year of rapid decline. NPR, Imogen Foulkes, Sep 30, 2026.
- Gas from thawing Arctic permafrost is changing world's climate future Two recent studies project that by the end of this century, methane in permafrost liberated by warming due to burning of fossil fuels will add a quarter degree Celsius of warmth to Earth's atmosphere. AP News, Seth Borenstein, Oct 02, 2026.
- Europe`s Extreme Summer Triggered Cascading Climate Shocks A summer of record heat, severe drought and compounding impacts tested Europe's infrastructure and resilience. Inside Climate News, Bob Berwyn, Oct 02, 2026.
Climate Law and Justice (4 items)
- Scrutinizing the Achievement of Climate Targets, Part I: The Widening Reach of Implementation Litigation Columbia University's Sabin Center for Climate Change Law does a deep dive into the role of judiciaries and courts in forcing governments to actually do as they say they will to deal with climate change mitigations. Climate Law Blog, Joe Udell and Filippo Fantozzi, Sep 28, 2026.
- Inside the anti-climate campaign against researchers A POLITICO investigation reveals more than 100 open records requests demanding documents from climate scientists nationwide. Politico, Chelsea Harvey, Lesley Clark and Corbin Hiar, Sep 29, 2026.
- States want to make Big Oil pay for climate harm. Now, courts are weighing in. New York’s "climate superfund” law has suffered two losses in court, while a U.S. Supreme Court case next week could determine the fate of similar efforts nationwide. Grist, Joseph Winters, Sep 30, 2026.
- The surprising allies backing Boulder`s climate case before the Supreme Court Ranchers, conservative legal scholars, and former Republican EPA chiefs are siding against oil companies. Here's why. Grist, Kate Yoder, Oct 01, 2026.
International Climate Conferences and Agreements (1 item)
- `We want action`: Fijian climate activist sends message ahead of UN talks in Pacific Lavenia Naivalu has seen the impact of the climate crisis first-hand and is determined to amplify Pacific voices at this year’s pre-Cop summit in Fiji The Guardian, Sera Sefeti, Oct 02, 2026.
Public Misunderstandings about Climate Solutions (1 item)
- Australia`s climate chief promises harder line on misinformation Senior public servant says bureaucrats will speak up about misinformation that risks policy progress. Politico, Miriam Webber, Oct 01, 2026.
Miscellaneous (1 item)
- 2026 SkS Weekly Climate Change & Global Warming News Roundup #39 A listing of 28 news and opinion articles we found interesting and shared on social media during the past week: Sun, September 20, 2026 thru Sat, September 26, 2026. Skeptical Science, Bärbel Winkler & Doug Bostrom, Sep 27, 2026.
To win over locals, data centers pump $340M into rural Texas projects
A new water tower in Turkey: $3 million. Upgrades for a museum in Stamford: $400,000. A first responders appreciation barbecue in Medina County: $10,000.
These are just some of the public investments data center companies have paid for across rural Texas in the past year.
According to a Texas Tribune analysis, data center companies have donated or invested more than $343 million across the Lone Star state for various community needs, including school programs, infrastructure repairs and emergency services. Much of that money has gone to the very communities that have fought against data center development and is seemingly an effort to win over public support through their bottomless bank accounts.
The Texas Tribune reviewed news releases, public meeting agendas, and interviewed local officials to understand how data centers are using their money in Texas. Because not every donation is made public, the total — the first of its kind compiled in Texas — is likely an undercount.
Google donated millions of dollars to the Haskell area for its hospital, pregnancy center, and other causes. Rowan Digital Infrastructure is giving $38 million to Temple for its water infrastructure, along with more money for STEM Centers at schools in nearby small towns.
Read Next The rush to power data centers is weakening the Clean Air Act Emily JonesData centers also created community action grants, which are used for recurring investments in the communities they’re building in. Others, such as Google’s Texas Water Impact Fund, provide funds to restore resources that cause concern for Texans or provide direct lump sum donations to both community and state funds.
As data centers move into the state at a rapid pace, Texas communities in mostly rural areas face a fiscal cliff from property tax cuts, inflation, and overall economic uncertainty. Over the last year, data center companies have stepped in as a white knight of community investment.
“There is no question that these data centers are an opportunity for rural communities that are living in the margin,” said Suzanne Bellsnyder, an editor and publisher of two Panhandle newspapers and a Substack focused on rural issues. “Most infrastructure resources are paid with tax dollars, and there’s not a ton there.”
It’s not a new strategy. Major corporations regularly invest in communities and make charitable gifts big and small. Oil and gas companies in West Texas, for example, have donated to fire and police stations and hosted back-to-school backpack drives to weave themselves into communities.
Data centers have also capitalized on tax breaks from both state and local governments. A Texas Tribune analysis earlier this year found the state will forgo at least $3 billion in sales tax revenue over the next two years due to the exemption for the state’s booming data center industry.
Read Next In rural communities, fears amplified by ‘AI slop’ and social media hamper solar boom Delaney Nolan, The LensBecause of the negative public perception toward data centers, however, they still have some ways to go. In an August poll from The Texas Politics Project, a nonpartisan research hub focused on Texas government and politics, 57 percent of respondents said they would oppose the construction of a data center in their communities.
“I hope their intentions are good, and they’re not just trying to buy these communities off,” Bellsnyder said.
Tied into the communityIt’s been two years since a tornado struck Temple, a city of just over 96,000 people that lies 70 miles north of Austin. The city was devastated. Hundreds of homes and businesses were severely damaged or destroyed. One of the buildings lost was the beloved Sammons Community Center, where senior citizens could come together for bingo, swimming, and meals.
The price tag for the city’s recovery was high — $7.7 million.
Then, Rowan Digital Infrastructure stepped in. The company is developing a $4.2 billion data center campus with six facilities planned in East Temple.
Earlier this month, Rowan announced a $38 million investment in Temple’s public infrastructure, including $25 million to the South Temple Water Infrastructure Capital Program and $10 million for an aquifer storage and recovery program.
Read Next It’s official: Data centers are slowing America’s shift away from coal Jake BittleAs for the Sammons Community Center, city leaders have proposed a $15 million bond to rebuild it. If voters approve the measure, Rowan has promised to put $3 million to help the project. It’s one of many actions that has made Rowan stand out to Tim Davis, Temple’s mayor, particularly since the company is not making money from the town yet.
“To go ahead and invest dollars into the community for a current need is very generous of them,” Davis said. “That tells me they want to work hard to have a positive impact, and they’ve chosen to help the city.”
Gaining public support is an important tactic for data center companies coming to Texas, and one that can’t be ignored. Over the last year, communities all over the state have voiced opposition to data centers coming to their areas — their main concerns being rising electric bills, losing water and housing issues. Some cities have prevented developments from moving forward. For example, a project in East Texas was pulled after community backlash, and Lubbock leaders passed a 90-day moratorium on large-scale projects following a citizen-led petition.
Nathaniel Brown, director of public relations for Rowan, admits that integrating into a community hasn’t been an easy task. Brown said Rowan began hosting neighbor dinners every month for residents to talk with the construction team and ask them questions. The company has also held public hearings and open houses and has Facebook pages dedicated to its project updates.
“This development doesn’t happen in a vacuum. It needs to be able to fit into the community’s vision for their area,” Brown said.
Read Next Nebraska wants data centers to come clean about water usage Anila YoganathanGoogle has used a similar strategy. On top of community meetings, the tech company hosted a dinner in August to announce $6 million for nonprofits in Haskell, Stamford and Rule.
Suzie Shin, manager of data center sustainability programs for Google, said some of their investments are the company’s way of saying they are listening to the public’s concerns. The company has given millions toward major water infrastructure projects, as well as supporting local school programs. Most recently, the company announced a $4.5 million commitment to help Vernon, a town with less than 10,000 residents, fix a leaking pipeline.
Shin said she feels strongly about investing in modernizing water and wastewater infrastructure for the broader community, not just their data centers.
“I think there’s a win-win for communities,” Shin said. “Again, we have employees who live and work there. We are part of the community. It’s a great way to show the value and help improve outcomes, not only for the watershed but for the water users there.”
Bellsnyder, the newspaper publisher and resident in Spearman, said she’s spoken with some of the data center executives who visit the Texas Panhandle. She does think their intentions are to partner with the communities and make them better.
However, she’s still wary because of the boom-and-bust industrial patterns that have become all too familiar for rural Texas. Spearman was built by an oil and gas service company, Bellsnyder said, and when the business left, there wasn’t a long-term plan for the town.
“I don’t want our entire identities to be built around what one company can provide to us,” Bellsnyder said. “We still need to figure out ways to take care of our own business. Nobody likes taxes, but taxpayers will have to be invested in the community.”
Pros vs. consWhen the water tower went out in Turkey, a small Panhandle town of about 275 residents, people were without water for weeks and had to find places in other towns to live temporarily. Lynette Findley, the city manager, said everyone’s known for years that the tower would fail. However, with an annual budget of $500,000, the city had no way to pay for it to be fixed.
After weeks of no water, QTS Data Centers, one of the data center companies in the county, said it would replace it for the city. The cost for the company, which is a major global data center developer, is estimated to be between $3 million and $5 million.
“It was right before major conversations were starting on how QTS could help with our infrastructure,” Findley said. “I joke about it failing at the exact right time.”
For cities and towns facing a budget crunch, data centers are hard to turn away, especially as the Legislature continues to cut their resources. Kevin Hodges, the city manager for Childress, said the more restrictions on cities, the less money they have to put into the city’s needs.
Read Next Climate activists take on a new foe: Data centers Kate YoderChildress is facing a similar problem as Turkey. The small town of just over 5,834 people has been under a boil-water notice for a month, and the town issued a disaster declaration because of the problems. Local leaders have handed out bottled water to residents the last few weeks, and employees from IREN, one of the two data centers in town, stepped in to help.
“We’ve had some of our employees help distribute water, particularly to folks who might be challenged to get it, or to the health services, and the elderly,” said David Shaw, COO of IREN. “We’ve been in Childress for around four years now, so it was important to us to establish that connection with the community.”
Hodges, the city manager, blames the ongoing drought for their water issues because Greenbelt Lake levels dropped. While people in town blame the town’s water shortage problems on IREN and Lancium, another data center company in town, Hodges says they are helping.
“The fact of the matter is Lancium does not get any water from Greenbelt Lake,” Hodges said. “They get zero, but they’re willing to give us water from their own water wells.”
While Lancium does not take water from the lake, the company does have wells to take water from the nearby Blaine Aquifer. Hodges said Lancium is running a 16-mile pipeline from its campus to the Greenbelt storage tank, and the company will treat and provide the city with 1 million gallons of water a day — all with no cost to the town, Hodges said.
Read Next Cow manure could be the next data center fuel Marin Scotten, Sentient“They’re not taking,” Hodges said. “They’re providing.”
Hodges said the Legislature will look into more property tax cuts and other measures that could cause cities to lose money. That will hurt small towns, Hodges said, but data centers could give municipalities the money they wouldn’t normally get.
Davis, Temple’s mayor, agrees. He said municipalities are also impacted by inflation, and delivering essential services is expensive. However, the tax revenue generated by a data center will allow a city to set its own path financially, Davis said.
“If the ability to raise money is hampered, then those dollars have to come from somewhere,” Davis said. “Or, a community simply delivers less services to its residents. And I don’t think that’s acceptable to them.”
Still, Davis said leaders have to weigh the city’s capabilities and guard against any damage that could happen from a data center moving in.
Findley, the city manager in Turkey, said QTS and Lancium have promised to help with other needs too by providing funds for emergency services and the schools. She said all the contracts are with Hall County — not the city — and they are trying to navigate what has been put in their backyard.
“Data centers get a ton of negative publicity, so I’m sure it is a little self-serving on their end,” Findley said. “But to be honest, I don’t know what we would have done without their assistance.”
Alejandra Martinez contributed to this reporting.
Disclosure: Google has been a major financial supporter of The Texas Tribune. The Texas Tribune is a nonprofit, nonpartisan news organization that is funded in part by donations from members, foundations, and corporate sponsors. Financial supporters play no role in our journalism. Find a complete list of them and more information about our financial and disclosure policies here.
PARSELY = { autotrack: false, onload: function() { PARSELY.beacon.trackPageView({ url: "https://www.texastribune.org/2026/10/01/texas-data-centers-reputation-rural-towns-funding/", urlref: window.location.href }); } }This story was originally published by Grist with the headline To win over locals, data centers pump $340M into rural Texas projects on Oct 4, 2026.
October 4 Green Energy News
Headline News:
- “Like A ‘Huge Game Of Monopoly’: Green Councillor Not Impressed By Amazon Wind Farm Agreement” • The Shetland Islands Green councilor Alex Armitage says he is “disgusted at the way Shetland’s renewable resources are being passed around by huge corporations.” He said it is as if corporations are “playing a huge game of Monopoly.” [Shetland News]
Mossy Hill wind farm (Statkraft image, cropped)
- “Australia Is Making Big Bets On A Slow Transition, But The Technology S-Curve Tells A Different Story” • Based on the historical Australian and global energy data, logistic S-curve projections suggest that renewable electricity growth and decline of fossil fuels are approaching the fastest part of a transition that has been under way for decades. [Renew Economy]
- “Top Democrats Battle Over California’s Proposed Billionaire Tax” • Senator Bernie Sanders and Representative Ro Khanna rallied in support of an initiative that would place a one-time, 5% tax on California billionaires’ wealth. Their efforts to barnstorm the state come as early voting begins. Millions of dollars have been spent to kill the initiative. [ABC News]
- “OpenAI Safety Staffer Quits, Says AI Labs Should Run Like Nuclear Plants” • A leading member of OpenAI’s safety team has quit, warning that the company is not taking enough care with AI’s risks. In an essay for The Atlantic, David Robinson wrote that the ChatGPT maker “has thrived by trial and error.” He warned that approach no longer works. [The Next Web]
- “Big Oil Fears The Evidence Of Its Deliberate Climate Lies” • No one knows how the US Supreme Court will rule in Suncor v Boulder, which will likely decide whether the city and county of Boulder, Colorado, will be able to put oil giants ExxonMobil and Suncor Energy on trial for deceiving the public for decades on the climate harms of fossil fuels. [Asia Times]
For more news, please visit geoharvey – Daily News about Energy and Climate Change.
Not a “dealbreaker:” Big Victorian wind project doesn’t need VNI West
The Macorna wind project will have a simpler ride through state planning, and insists it is still viable even if the proposes VNI West transmission line is not built.
The post Not a “dealbreaker:” Big Victorian wind project doesn’t need VNI West appeared first on Renew Economy.
Pages
The Fine Print I:
Disclaimer: The views expressed on this site are not the official position of the IWW (or even the IWW’s EUC) unless otherwise indicated and do not necessarily represent the views of anyone but the author’s, nor should it be assumed that any of these authors automatically support the IWW or endorse any of its positions.
Further: the inclusion of a link on our site (other than the link to the main IWW site) does not imply endorsement by or an alliance with the IWW. These sites have been chosen by our members due to their perceived relevance to the IWW EUC and are included here for informational purposes only. If you have any suggestions or comments on any of the links included (or not included) above, please contact us.
The Fine Print II:
Fair Use Notice: The material on this site is provided for educational and informational purposes. It may contain copyrighted material the use of which has not always been specifically authorized by the copyright owner. It is being made available in an effort to advance the understanding of scientific, environmental, economic, social justice and human rights issues etc.
It is believed that this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit to those who have an interest in using the included information for research and educational purposes. If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. The information on this site does not constitute legal or technical advice.




