[Eeglablist] Version 2026 bug? Unable to rereference to the average reference and add back online ref

Gyurkovics, Mate mategy at illinois.edu
Wed Jul 1 01:43:32 PDT 2026


Thanks, Cedric, this makes a lot of sense and is quite close to my solution, except that I just hard code the coordinates for Cz. I should, however, have access to a channel locations file soon, in which case that could replace elecFile in your code, I assume?

Also, can I ask what step 5 achieves? It seems counterintuitive - we add Cz back in, recover its values through average referencing, and then immediately delete it? I get that this is to avoid rank issues, but if the objective is to recover Cz (which we will need for further analyses), this can be skipped right?

If I then go on to do an ICA after step 4, should I still use the code you suggested above for rank calculation? Or create an alternative EEG (e.g., rankEEG) without the Cz channel (as is done in your step 5), use that to calculate rank, and then go back to the original EEG which should still have Cz, and run the ICA on that with the rank calculated from rankEEG?

Relevant code:
    C = cov(double(EEG.data'));
        eigVals = eig(C);
        dataRank = sum(eigVals > 1e-7 * max(eigVals));  % relative threshold

Thanks,
Mate
________________________________
Feladó: eeglablist <eeglablist-bounces at sccn.ucsd.edu>, meghatalmazó: Cedric Cannard via eeglablist <eeglablist at sccn.ucsd.edu>
Elküldve: 2026. július 1., szerda 2:07
Címzett: eeglab list <eeglablist at sccn.ucsd.edu>
Tárgy: Re: [Eeglablist] Version 2026 bug? Unable to rereference to the average reference and add back online ref

Absolutely, you don't need oriEEG (and EEG2 was a typo from copy-pasting, sorry about that!). My previous example was overcomplicated because I was trying this recently to handle everything at once (including interpolating bad channels) after ASR/GEDAI to avoid potential rank-deficient issues (because ASR or GEDAI don't allow us to specify the data rank as the maximum number of components, unlike ICA, to my knowledge). But that made it more complex than needed for a simple average reference. Also, now that I'm looking at that code again with fresh eyes, I'm realizing that using spherical splines interpolation was a mistake, it can introduce the same effective rank deficiency we are trying to avoid (https://urldefense.com/v3/__https://www.frontiersin.org/journals/signal-processing/articles/10.3389/frsip.2023.1064138/full__;!!Mih3wA!An-LKfF9dB2no5UAkB4Iwt1Jq0RAQoCo4nd13mQmj-fAFf27bI4jaOLRhQER6wgNE8QL1PSctE1gnUwihWt5aO_Q6g$ ).

Regarding your 'E'label bug, I believe that is a classic EEGLAB quirk caused by appending a channel and forcing a coordinate conversion (topo2all) in the same step. You should be able to fix it like this:

% 1. Ensure existing channels have proper locations
dipfitDir = fileparts(which('pop_dipfit_settings'));
elecFile = fullfile(dipfitDir, 'standard_BEM', 'elec', 'standard_1005.elc');
EEG = pop_chanedit(EEG, 'lookup', elecFile);

% 2. Add back reference channel as a zero-filled placeholder
EEG.data(end+1, :) = 0;
EEG.nbchan = EEG.nbchan + 1;
EEG.chanlocs(end+1).labels = 'Cz';

% 3. Do a clean lookup to safely assign Cz's coordinates
%    (This should avoid the topo2all 'E' bug)
EEG = pop_chanedit(EEG, 'lookup', elecFile);
EEG = eeg_checkset(EEG);

% 4. Average reference (mathematically recovers Cz's true values)
EEG.data = EEG.data - mean(EEG.data, 1);

% 5. Remove the initial reference channel to restore full rank
EEG.data(end, :) = [];          % remove Cz data
EEG.nbchan = EEG.nbchan - 1;
EEG.chanlocs(end) = [];         % remove Cz channel location
EEG = eeg_checkset(EEG);

This relies on your existing channel labels matching thestandard_1005.elctemplate of course. If you still have issues, can you paste the output of{EEG.chanlocs.labels}'so we can if the issue is due to your labels.

Hope this helps,

Cedric

On Tuesday, June 30th, 2026 at 3:33 PM, Gyurkovics, Mate <mategy at illinois.edu> wrote:

> Thank you, Cedric. This seems super comprehensive, thanks for sharing.
>
> I do not yet have a full channel locations file and I am not sure whether any of the template ones work for our use case, but I will check with the collaborators who actually collected the data.
>
> The apply_car function looks very neat, but I am not sure why the interpolation step is necessary. If you have the 0-filled channels, running the average reference should just recover your reference channel(s), shouldn't it? (As they will be 0-minus-the-CAR)
>
> It's also not clear why the second 0-filled dummy line is necessary, after the interpolation. You mention rank preservation, but I assume this is not about the ICA yet.
>
> It's also not entirely clear why EEG, oriEEG, and EEG2 are all necessary.
>
> But my biggest concern is that for me, it's the pop_chanedit function that seems to screw up everything (specifically the conversion maybe) when I'm adding back Cz. So I'm worried apply_car might still result in the same bug, i.e., all other channels being converted to label 'E' with nonsensical coordinates.
>
> Can anyone comment on that issue?
>
> Thanks,
> Mate
>
> ---------------------------------------------------------------
>
> Feladó: eeglablist <eeglablist-bounces at sccn.ucsd.edu>, meghatalmazó: Cedric Cannard via eeglablist <eeglablist at sccn.ucsd.edu>
> Elküldve: 2026. június 30., kedd 18:44
> Címzett: eeglab list <eeglablist at sccn.ucsd.edu>
> Tárgy: Re: [Eeglablist] Version 2026 bug? Unable to rereference to the average reference and add back online ref
>
> Hi Mate and all,
>
> Here is how I do it with a custom function I made:
>
> 1. Load your data
>
> 2. Load your channel locations
> e.g.:
> dipfitDir = fileparts(which('pop_dipfit_settings'));
> EEG2 = pop_chanedit(EEG2, {'lookup', ...
> fullfile(dipfitDir, 'standard_BEM', 'elec', 'standard_1005.elc')});
>
> 3. Copy structure dataset with locations for interpolation
>
> oriEEG = EEG;
>
> 4. Remove bad channels
>
> 5. Clean artifacts
>
> 6. Interpolate bad channels
> EEG = pop_interp(EEG, oriEEG.chanlocs, 'spherical');
>
> 7. Re-reference, adding back the reference channels (EDIT LABELS WITH YOUR REFERENCE LABEL)
>
> EEG = apply_car(EEG, {'FCz' 'AFz'}, oriEEG.chanlocs); % add path to the below function first (or insert as local helper at the bottom of your script)
>
> 8. If running ICA, make sure to calculate the rank with:
>
> C = cov(double(EEG.data'));
> eigVals = eig(C);
> dataRank = sum(eigVals > 1e-7 * max(eigVals)); % relative threshold
> fprintf(' ICA rank: %d\n', dataRank)
> EEG = pop_runica(EEG, 'icatype','runica', 'options', {'extended', 1, 'pca', dataRank});
>
> function EEG = apply_car(EEG, refLabels, chanlocs_template)
> % apply_car - Full-rank common average reference (CAR)
> %
> % Optionally recovers online reference channel(s) by adding them with proper
> % locations and interpolating them before CAR. A zero-filled dummy channel
> % is always added for rank preservation during CAR and removed afterward.
> %
> % EEG = apply_car(EEG)
> % EEG = apply_car(EEG, refLabels, chanlocs_template)
> %
> % Inputs:
> % EEG - EEGLAB EEG struct
> % refLabels - string or cell array of reference label(s) to recover
> % chanlocs_template - chanlocs struct or path to electrode file (used as
> % fallback; BEM standard_1005.elc is primary source).
> %
> % Outputs:
> % EEG - re-referenced EEG struct. Reference channel(s) are interpolated
> % and retained before CAR is applied.
> %
> % Usage:
> % EEG = apply_car(EEG);
> % EEG = apply_car(EEG, {'FCz','AFz'}, oriEEG.chanlocs);
> %
> % References:
> % Makoto's preprocessing pipeline: https://urldefense.com/v3/__https://eeglab.ucsd.edu/wiki/Makoto's_preprocessing_pipeline__;!!DZ3fjg!9tpo51dj0XoTHZ2G88s0fiHMVD6GgqUPeb79s0Zc3QVYxV9Vrayh1kr75DPOFzB3Hxh6kGj2-a8LpAIvnaUYPtflv14$
> % Kim et al. (2023). ICA's bug. Front. Signal Process., 3, 1064138.
>
> rankBefore = sum(eig(cov(double(EEG.data'))) > 1e-7);
> fprintf('apply_car: rank before CAR = %d / %d\n', rankBefore, EEG.nbchan);
>
> retainRefs = nargin == 3 && ~isempty(refLabels) && ~isempty(chanlocs_template);
> if retainRefs
> if ischar(refLabels) || isstring(refLabels)
> refLabels = cellstr(refLabels);
> end
> refLabels = refLabels(~ismember(refLabels, {EEG.chanlocs.labels}));
> newChanIdx = zeros(1, numel(refLabels));
>
> % Add zero-filled channels with placeholder chanlocs
> for i = 1:numel(refLabels)
> EEG.data(end+1, :) = 0;
> EEG.nbchan = EEG.nbchan + 1;
> EEG.chanlocs(end+1) = EEG.chanlocs(1); % temp placeholder, overwritten below
> EEG.chanlocs(end).labels = refLabels{i};
> newChanIdx(i) = EEG.nbchan;
> end
>
> % Look up correct locations using pop_chanedit with BEM template
> % This handles all coordinate conversions (XYZ -> theta/radius/etc.)
> bemPath = which('standard_1005.elc');
> if isempty(bemPath)
> error('apply_car: standard_1005.elc not found. Ensure EEGLAB dipfit plugin is installed.');
> end
> EEG = pop_chanedit(EEG, 'lookup', bemPath);
>
> % Interpolate the newly added zero-filled channels
> EEG.data = double(EEG.data);
> EEG = eeg_checkset(EEG);
> EEG = pop_interp(EEG, newChanIdx, 'spherical');
> end
>
> % Always add dummy zero row for rank preservation, apply CAR, remove dummy
> EEG.data(end+1, :) = 0;
> EEG.nbchan = EEG.nbchan + 1;
> EEG.data = EEG.data - mean(EEG.data, 1);
> EEG.data(end, :) = [];
> EEG.nbchan = EEG.nbchan - 1;
>
> rankAfter = sum(eig(cov(double(EEG.data'))) > 1e-7);
> fprintf('apply_car: rank after CAR = %d / %d\n', rankAfter, EEG.nbchan);
>
> EEG = eeg_checkset(EEG);
> end
>
> Hope this helps,
>
> Cedric
>
> Sent with Proton Mail secure email.
>
> On Tuesday, June 30th, 2026 at 9:46 AM, Gyurkovics, Mate via eeglablist <eeglablist at sccn.ucsd.edu> wrote:
>
>> Hi Arno et al.,
>>
>> I am grappling with something similar so I thought I'd piggyback on this thread if that's okay.
>>
>> I have a 32-channel recording that was referenced to Cz online. I am trying to add back Cz and then re-referencing to the average. My problems start even before the re-referencing step.
>>
>> I tried the following line of code to add Cz:
>>
>>     EEG=pop_chanedit(EEG, 'append',31,'changefield',{32,'labels','Cz'},'changefield',{32,'theta','0'},'changefield',{32,'radius','0'},'convert',{'topo2all'});
>>
>> Not only does this not add a 32nd channel, it changes all the other channels - in EEG.chanlocs, they now all have the label 'E', and the coordinates are off too. I played around a bit with the code and it seems like the issue is the topo2all conversion. Unfortunately, this is the only coordinate info for Cz for our montage that I have from collaborators at the moment, so I cannot manually specify anything beyond the theta and the radius.
>>
>> I did try the GUI (Edit > Channel locations) as well which does give me other values once I put in theta and radius, but it also messes up the other channels in the same way. So I just took the values output by the GUI, and created a brute force way of adding Cz.
>>
>> EEG.data(32,:) = repelem(0,size(EEG.data,2));
>> EEG.nbchan = size(EEG.data,1);
>> EEG.chanlocs(EEG.nbchan).labels = 'Cz';
>> EEG.chanlocs(EEG.nbchan).sph_phi = 90; EEG.chanlocs(EEG.nbchan).sph_theta = 0;
>> EEG.chanlocs(EEG.nbchan).theta = 0; EEG.chanlocs(EEG.nbchan).radius = 0;
>> EEG.chanlocs(EEG.nbchan).X = 5.5307e-17; EEG.chanlocs(EEG.nbchan).Y = 0; EEG.chanlocs(EEG.nbchan).Z = 0.90323;
>>
>> This does work, but I'm worried it's not updating every bit of metadata that it should.
>>
>> Is this piece of code okay? If I do this and then average reference, everything looks as expected (i.e., Cz is no longer flat).
>>
>> Thanks,
>> Mate
>>
>> ________________________________
>> Feladó: eeglablist <eeglablist-bounces at sccn.ucsd.edu>, meghatalmazó: Arnaud Delorme via eeglablist <eeglablist at sccn.ucsd.edu>
>> Elküldve: 2026. június 27., szombat 3:40
>> Másolatot kap: eeglab list <eeglablist at sccn.ucsd.edu>
>> Tárgy: Re: [Eeglablist] Version 2026 bug? Unable to rereference to the average reference and add back online ref
>>
>> The issue is that
>>
>> EEG = pop_reref( EEG, [], 'refloc', struct('labels',{'Cz'}, 'type',{'eeg'}, 'theta',177.4959, 'radius',0.029055, 'X',-9.167, 'Y',-0.4009, 'Z',100.244, 'sph_theta',-177.4959, 'sph_phi',84.77, 'sph_radius',100.6631, 'urchan',EEG.nbchan+1, 'ref',{''}, 'datachan',0) );
>>
>> Is adding a second channel Cz. If you already have a channel Cz and it does not have coordinates, you should add them instead in the channel editor (or from the command line using pop_chanedit). This is detailed in that page.
>>
>> https://urldefense.com/v3/__https://eeglab.org/tutorials/05_Preprocess/rereferencing.html__;!!Mih3wA!FzwrfBmBPxLmdJ_Fasn-abQBAUGHpBk41qiqMFzw20WDRK_0wJutkbz3EN7zqsBdDxfK53TfMmd0QWF1HppIzz_d$
>>
>> Best wishes,
>>
>> Arno
>>
>> > On Jun 17, 2026, at 08:37, Miller, Carol Anne via eeglablist <eeglablist at sccn.ucsd.edu> wrote:
>> >
>> > I have encountered a problem similar to what Kelsey and Andrew described (prior to their posts). I was wondering if there have been any updates, like is it really a bug and if so has it been fixed? Using Windows, EEGLAB 2025, Matlab 2024a.
>> > Full disclosure: I have not yet tried Andrew's workaround but am hoping I won't have to!
>> >
>> > Thanks,
>> > Carol
>> >
>> >
>> > Carol A. Miller, Ph.D.
>> >
>> > Professor of Communication Sciences and Disorders and Linguistics
>> >
>> > 404K Ford Building
>> >
>> > 498 Allen Road
>> >
>> > University Park, PA 16802
>> >
>> > cam47 at psu.edu
>> >
>> > Pronouns: she/her
>> >
>> > My work day may look different than your work day. Please do not feel any pressure to respond out of your normal working hours.
>> >
>> > ________________________________
>> > From: eeglablist <eeglablist-bounces at sccn.ucsd.edu> on behalf of Andrew Corcoran via eeglablist <eeglablist at sccn.ucsd.edu>
>> > Sent: Tuesday, May 19, 2026 5:14 AM
>> > To: eeglablist at sccn.ucsd.edu <eeglablist at sccn.ucsd.edu>
>> > Subject: [Eeglablist] Version 2026 bug? Unable to rereference to the average reference and add back online ref
>> >
>> > I recently experienced a similar problem to Kelsey when trying to adapt some old code for new BioSemi data using EEGLAB 2026 in MATLAB 2025a.
>> >
>> > With some playing around via the gui I managed to get things working as follows :
>> >
>> > % import chanlocs & define chantype
>> > EEG = pop_chanedit(EEG, {'lookup','standard_1005.elc'});
>> >
>> > % assign ref
>> > EEG = pop_reref( EEG, [ contains({EEG.chanlocs.labels}, {'Cz'} ) ] );
>> >
>> > % reintroduce Cz & reref to common average
>> > EEG = pop_chanedit(EEG, 'append', EEG.nbchan, 'changefield', {EEG.nbchan+1,'labels','Cz'}, ...
>> > 'lookup', 'standard_1005.elc');
>> >
>> > EEG = pop_reref( EEG, [], 'refloc', struct('labels',{'Cz'}, 'type',{'eeg'}, ...
>> > 'theta',177.4959, 'radius',0.029055, 'X',-9.167, 'Y',-0.4009, 'Z',100.244, ...
>> > 'sph_theta',-177.4959, 'sph_phi',84.77, 'sph_radius',100.6631, 'urchan',EEG.nbchan+1, ...
>> > 'ref',{''}, 'datachan',0) );
>> >
>> > While this code appears to function as intended, running it produces the following warning :
>> > Warning: some channels have the same label
>> >
>> > I cannot see any evidence of incorrect labelling despite the warning. Whatever the source of the issue, it appears to be the same problem as previously raised on this list by Raquel London https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Fsccn.ucsd.edu*2Fpipermail*2Feeglablist*2F2016*2F011065.html&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381256261*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=dULJSVZlLGdsKJAWuaDiKUo40ZGZ2qMYOBRT9rZugks*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZBfQjSWE$ <https://urldefense.com/v3/__https://sccn.ucsd.edu/pipermail/eeglablist/2016/011065.html__;!!DZ3fjg!8PqS8j_EaZMwIRUJIrCS4cNG4BCu9OBUvTRkq9XOOg17YN2nlYdIjas9HAs68DLEeiSqyOdGq6YEyqCe_stE_Du_PcQ$ > (I’m not sure if anyone got to the bottom of it).
>> >
>> > Venlig hilsen
>> > Andrew
>> >
>> > Dr. Andrew W. Corcoran
>> > Postdoctoral Researcher
>> >
>> > Københavns Universitet
>> > Institut for Idræt og Ernæring<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fnexs.ku.dk*2F__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0blhx8-4g*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381286684*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=j9UJTHx1YLw4rDJQAFYZkyjyUZJ*2F1bep7sh*2Batgve34*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZGofja5A$ >
>> > Nørre Alle 51, 2100 København N
>> >
>> > ORCID<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Forcid.org*2F0000-0002-0449-4883__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0YamDfcuw*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381317850*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=TnN3ow91f1Hos4pKjyq6lFAu*2BHHFxqqF2lejhYse94M*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSU!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZfLJABuE$ > | Google Scholar<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fscholar.google.com*2Fcitations*3Fuser*3DyxKSfdsAAAAJ*26hl*3Den__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0YoPMVrKQ*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381355271*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=mgXXj*2B8gVbJu76tI9SISJ8cW7KU908TcaHE4GR*2B3YKg*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZupZp5yQ$ > | ResearchGate<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fwww.researchgate.net*2Fprofile*2FAndrew-Corcoran-5*3Fev*3Dhdr_xprf__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0Z7fXbeKw*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381379877*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=0sHhrCY4hxA35xiVSiO47BbGWLDZebMVSNMSXZhJYco*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZJQ2RWWU$ > | Bluesky<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fbsky.app*2Fprofile*2Fcorcorana.bsky.social__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0ZiEYOqIg*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381401413*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=GPuN*2FQE8LfaALmySXfTPFu9ntNBub5L1fX25BzduwJo*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3Z2iWBOQ4$ > | GitHub<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fgithub.com*2Fcorcorana*2F__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0ai24WmTw*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381422976*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=k1MTCOKVWPfG8CR5tM*2FH5cfYcMhfuAK4HDZva2wE9CM*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZHK0wGEM$ > | OSF<https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fosf.io*2Fuser*2F6brd4__*3B!!Mih3wA!CpsvdSQpAQtDgps7UcdHM6iIBWQoB77bprwNjhp1wo1SFvi8cNP0jI6p3Iqrle4fkR5Y6wFkqPX4w0afWNNJiw*24&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381444348*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=M4j4hyGCIXqYG1PMJVSyksegUP3ZVEjg7fIq*2Bu069Ok*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3ZXkPtXMY$ >
>> >
>> > _______________________________________________
>> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Fsccn.ucsd.edu*2Fmailman*2Flistinfo*2Feeglablist&data=05*7C02*7Ccam47*40psu.edu*7C925cf2493b44435f40b108deb59e7799*7C7cf48d453ddb4389a9c1c115526eb52e*7C0*7C0*7C639147889381629822*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=ezgoi93Jp*2B9dvacKwN*2FR*2BI2W*2B6vCD7cf*2BjJ3U7Qy79c*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!Mih3wA!BKijivb65F94Fh3pakg9Ea433tP9cJtHZ8YhJahPfm_O_VMmOZ2TiTTMrpByWciehp1wSuW1rY3Z39VuwM8$ <https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!8PqS8j_EaZMwIRUJIrCS4cNG4BCu9OBUvTRkq9XOOg17YN2nlYdIjas9HAs68DLEeiSqyOdGq6YEyqCe_stEvs3QV0s$ >.
>> > _______________________________________________
>> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!8PqS8j_EaZMwIRUJIrCS4cNG4BCu9OBUvTRkq9XOOg17YN2nlYdIjas9HAs68DLEeiSqyOdGq6YEyqCe_stEvs3QV0s$ .
>>
>>
>> _______________________________________________
>> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!8PqS8j_EaZMwIRUJIrCS4cNG4BCu9OBUvTRkq9XOOg17YN2nlYdIjas9HAs68DLEeiSqyOdGq6YEyqCe_stEvs3QV0s$ .
>> _______________________________________________
>> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!9tpo51dj0XoTHZ2G88s0fiHMVD6GgqUPeb79s0Zc3QVYxV9Vrayh1kr75DPOFzB3Hxh6kGj2-a8LpAIvnaUYJHYlMmk$ .
> _______________________________________________
> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!9tpo51dj0XoTHZ2G88s0fiHMVD6GgqUPeb79s0Zc3QVYxV9Vrayh1kr75DPOFzB3Hxh6kGj2-a8LpAIvnaUYJHYlMmk$ .
_______________________________________________
To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu or visit https://urldefense.com/v3/__https://sccn.ucsd.edu/mailman/listinfo/eeglablist__;!!DZ3fjg!4ObCT2TYHyJMQ95ze-YhiT1LLJ-LmbqruJbWQ-W0i6x2JVca0uL0MiyKI9ZIxdd7EE-4A2ogSSDJ0PFxScCWCMQ0hAw$ .


More information about the eeglablist mailing list