Connect with us

California

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Published

on

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles


4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Advertisement

READY… ACCORDING TO THE MONTEREY COUNTY OF EMERGENCY SERVICES THERE’S ONLY BEEN 429 EARTHQUAKES IN OUR AREA THAT ARE ABOVE A 4.0 MAGNITUDE. BUT OFFICIALS AND EXPERTS SAY IT IS ONLY A MATTER OF TIME UNTIL THE NEXT BIG ONE. NOW TO PREPARE YOU CAN SIGN UP WITH YOUR COUNTY’S EMERGENCY SERVICES ALERTS BY GOING ON THE COUNTY WEBSITE. YOU CAN ALSO DOWNLOAD THIS APP CALLED MYSHAKE. IF A QUAKE ABOVE 4.5 MAGNITUDE HITS CALIFORNIA, YOU CAN GET AN ALERT A FEW SECONDS YOU FEEL IT IN YOUR AREA. THAT DEPENDS ON HOW CLOSE YOUR ARE TO THE EPICENTER. IT WILL REMIND YOU WHAT TO DO AND ALLOWS YOU TO SHARE AND SEE WHAT DAMAGES HAVE BEEN REPORTED NEAR YOU. NOW DOWNLOADING SOME SORT OF ALERT SYSTEM IS IMPORTANT, ESPECIALLY FOR THOSE OF US LIVING NEAR THE COAST. I SPOKE WITH SANTA CRUZ COUNTY’S OFFICE OF EMERGENCY SERVICES, AND THEY HAD FOUR REMINDERS: FIRST ONE – PREP YOUR LIVING SPACE. TRY TO AVOID PLACING BOOKSHELVES AND BIG FURNITURE NEAR ENTRY WAYS THAT COULD FALL AND BLOCK DURING AN EARTHQUAKE. SECONDLY – LIKE FOR ANY NATURAL DISASTER: HAVE A PLAN. WHEN IT COMES TO AN EARTHQUAKE, UTILITIES LIKE YOUR WATER AND SEWER SYSTEM MAY NOT WORK. THIRD – MAKE SURE YOU HAVE A GO BAG PREPPED WITH YOUR FOOD, WATER, CASH… AND THE LAST ONE: PUT ALL YOUR ESSENTIAL IDENTITY AND HEALTH DOCUMENTS IN ONE PLACE SO YOU CAN JUST GRAB IT AND GO. THE BIGGEST EARTHQUAKE TO HIT OUR NECK OF THE WOODS WAS THE LOMA PRIETA QUAKE IN 1989. THAT CLOCKE

Advertisement

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Updated: 9:36 AM CDT Apr 2, 2026

Editorial Standards

Advertisement

A magnitude 4.9 earthquake struck Northern California early Thursday, according to the U.S. Geological Survey, with many saying they felt their homes shake for a few seconds in a 100-mile stretch, including San Francisco. The quake hit at 1:41 a.m. PST east-southeast of Boulder Creek, the USGS said. It had a depth of 6.7 miles. Boulder Creek, which has about 5,000 people, is about 65 miles southeast of San Francisco.Some residents said they were first awakened by earthquake alerts on their phones, then felt their beds and windows shake. Some items were knocked off store shelves in Boulder Creek.The shaking was felt in other parts of the Central Coast, including Marina, where at least one resident said they felt slight shaking and were awakened by it.The National Tsunami Warning Center said there is no tsunami danger from the earthquake. No damage or injuries were immediately reported.

A magnitude 4.9 earthquake struck Northern California early Thursday, according to the U.S. Geological Survey, with many saying they felt their homes shake for a few seconds in a 100-mile stretch, including San Francisco.

Advertisement

The quake hit at 1:41 a.m. PST east-southeast of Boulder Creek, the USGS said. It had a depth of 6.7 miles. Boulder Creek, which has about 5,000 people, is about 65 miles southeast of San Francisco.

Some residents said they were first awakened by earthquake alerts on their phones, then felt their beds and windows shake. Some items were knocked off store shelves in Boulder Creek.

The shaking was felt in other parts of the Central Coast, including Marina, where at least one resident said they felt slight shaking and were awakened by it.

Advertisement

The National Tsunami Warning Center said there is no tsunami danger from the earthquake.

No damage or injuries were immediately reported.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

California

JD Vance accuses California of letting Medicaid fraudsters cash in at taxpayer expense | Fox Business Video

Published

on

JD Vance accuses California of letting Medicaid fraudsters cash in at taxpayer expense | Fox Business Video




Source link

Continue Reading

California

Live Updates: Candidates face off in the CBS News California and San Francisco Examiner Governor’s Debate

Published

on

Live Updates: Candidates face off in the CBS News California and San Francisco Examiner Governor’s Debate


 

Learn more about candidates’ stances on the issues in the California Governor’s Race interactive guide

CBS News California launched an interactive tool to help voters navigate this year’s gubernatorial race. The California Governor’s Race Candidate Guide features 20 hours of interviews with top-polling candidates to provide voters the opportunity to compare each candidate’s responses side-by-side on the issues that matter most to them.

Those running to succeed Gov. Gavin Newsom as California’s next chief executive offered their thoughts on more than a dozen issues, including homelessness, housing affordability, gas prices and environmental policy, immigration, healthcare, crime and public safety funding, and the state’s ongoing insurance crisis.

Advertisement
 

Here’s what to know about the CBS News California/San Francisco Examiner Governor’s Debate format

The format of the CBS News California and San Francisco Examiner Governor’s Debate on Thursday will allow candidates to question each other directly. 

Advertisement

Candidates will also participate in segments in which they address real-world issues California voters may face in their daily lives. The Californians who will be featured include a working single mother pursuing education; a couple struggling to achieve homeownership; and a scientist warning of the long-term consequences of inaction on climate change.

This structure for Thursday’s debate differs from the previous face-off hosted by CBS News California stations, which comprised three segments focused on affordability, accountability and social issues that lasted roughly half an hour each.

 
Advertisement

Becerra, Hilton, Steyer lead field in latest polling on California governor’s race

An Emerson College poll released the day before the CBS News California and San Francisco Examiner Governor’s Debate showed Xavier Becerra leading the field with likely voters surveyed at 19%, followed by Steve Hilton and Tom Steyer both receiving 17%. Chad Bianco came in at 11%, followed by Katie Porter at 10%, Matt Mahan at 8%, Antonio Villaraigosa at 4% and Tony Thurmond at 1%. Twelve percent said they remained undecided.

In a CBS News/YouGov poll last month conducted before the April 28 CBS California Governor’s Debate, Hilton received support from 16% of likely voters polled, with Steyer and Becerra following at 15% and 13% respectively. Bianco came in at 10%, Porter received 9%, Matt Mahan and Antonio Villaraigosa both received 4%, and Tony Thurmond received 1%. The survey also found that a significant 26% of those polled were undecided.

California’s June 2 primary is an open primary where the top two vote-getters, regardless of party affiliation, advance to face off in the November general election. 

Advertisement



Source link

Continue Reading

California

Opinion | California will make less money from greenhouse gas emission auctions

Published

on

Opinion | California will make less money from greenhouse gas emission auctions


By Dan Walters, CalMatters

The Phillips 66 refinery in Wilmington, on Sept. 30, 2025. Photo by Stella Kalinina for CalMatters

This commentary was originally published by CalMatters. Sign up for their newsletters.

Two decades ago, when California got serious about reducing or even eliminating carbon dioxide and other greenhouse gases, its political leaders weighed two potential tactics about industrial emissions.

Advertisement

The state could impose direct facility-by-facility limits, generally favored by climate change advocates. Or it could set overall emission reduction goals that would gradually decrease and auction off emission allowances, assuming their costs would encourage reductions.

The latter, known as cap-and-trade, was favored by corporate interests as being less onerous and was adopted, finally taking effect in 2012.

Since then, the California Air Resources Board has conducted quarterly auctions of emission allowances, collecting a total of $35 billion dollars so far, which, in theory, is being spent on projects that would reduce emissions.

The revenues have varied from year to year, but they have generally increased as the emission caps have declined. Since reaching a peak of $8.1 billion in the 2023-24 fiscal year, however, auction proceeds have been declining.

Roughly half of the money has been given to utilities to minimize cap-and-trade’s impact on consumer costs. However, the program has been widely criticized as a de facto tax on gasoline and other fuels, which were already among the most expensive of any state.

Advertisement

The remaining revenues have been deposited into a Greenhouse Gas Reduction Fund that governors and legislators have tapped for various purposes, not all of them connected to emission reductions. In a sense, it’s been a slush fund.

Last year Gov. Gavin Newsom and the Legislature overhauled the program in two bills, Senate Bill 840 and Assembly Bill 1207. The program was extended, it was renamed as cap-and-invest and new priorities for spending auction proceeds were set.

Notably, the state’s cash-strapped and long-stalled bullet train project would get a flat $1 billion a year, rather than the 25% share it had been getting. Project managers hope that lenders will advance enough money to complete its first leg in the San Joacim Valley; the plan is to repay the loans from the $1 billion annual cap-and-invest allocation.

Early this year, the Air Resources Board released new regulations to implement the legislative changes but faced criticism that they would increase consumer costs. That led to a revision in April that softens the rules’ impact — most obviously on refiners who have been threatening to leave California — but environmental groups are very critical.

The April version would also sharply reduce net revenues from emission auctions, according to the Legislative Analyst’s Office, providing barely enough for the $1 billion allocation to the bullet train and another $1 billion for the governor and Legislature to spend. Other programs that have been receiving cap-and-invest support, such as wildfire protection and housing, would probably get nothing.

Advertisement

The program has been tapped in recent years to backfill programs that a deficit-ridden state budget could not cover, so the projected revenue drop would exacerbate efforts by Newsom and legislators to close the state budget’s yawning gap.

“The (Greenhouse Gas Reduction Fund) is a relatively small portion of the overall state budget, but it has been a noteworthy source of funding for environmental and other programs in recent years,” the state Assembly’s budget advisor, Jason Sisney, says in an email. “Collapse of its revenues would change the state budget process noticeably. The state’s cost-pressured general fund seemingly would be unable to make up much, if any, of a significant (Greenhouse Gas Reduction Fund) revenue decline at this time.”

When Newsom presents his revised budget this week, he may reveal how he intends to cover the cap-and-invest program’s shortfall, particularly whether he will maintain the $1 billion bullet train commitment that project leaders say is vital to continuing construction of its Merced-to-Bakersfield segment.

It could boil down to bullet train vs. wildfire protection.

This article was originally published on CalMatters and was republished under the Creative Commons Attribution-NonCommercial-NoDerivatives license.

Advertisement



Source link

Continue Reading
Advertisement

Trending