These examples were created in release 3.3.0. Take care copy-pasting these examples into your version of GannetPreInitialise.m. You may be using a different release that has older/newer variables that could result in an error during the analysis pipeline.

GABA-edited MEGA-PRESS data

% Acquisition parameters
    MRS_struct.p.target = {'GABAGlx'}; % Edited metabolite(s) of interest; permitted options are:
                                       % If MEGA-PRESS:
                                       %   {'GABA'}, {'GABAGlx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       % If HERMES:
                                       %   {'GABAGlx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
                                       % If HERCULES:
                                       %   {'GABAGlx','GSH'}
                                       % If phantom data:
                                       %   and MEGA-PRESS: {'GABA'}, {'Glx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       %   and HERMES: {'GABA','GSH'}, {'Glx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
    MRS_struct.p.seqorig = 'JHU'; % Origin of Philips MEGA-PRESS or GE HERMES sequences;
                                  % options are 'JHU' or 'Philips' if Philips, or 'Lythgoe' if GE (HERMES only)
    
% Analysis parameters
    MRS_struct.p.LB            = 3; % Exponential line-broadening (in Hz)
    MRS_struct.p.water_ECC     = 1; % 1 = YES, perform eddy current correction on water data
    MRS_struct.p.metab_ECC     = 0; % 1 = YES, perform eddy current correction on metabolite data (requires a water reference)
    MRS_struct.p.water_removal = 1; % 1 = YES, remove residual water signal in DIFF spectrum using HSVD
    MRS_struct.p.alignment     = 'RobustSpecReg'; % Alignment method; options are 'RobustSpecReg' (recommended), 'SpecReg', 'SpecRegHERMES',
                                                  % 'Cr', 'Cho', 'NAA', 'H2O', 'CrOFF', or 'none' (recommended for phantom data)
    MRS_struct.p.use_prealign_ref = 0; % 1 = YES; in some cases, using RobustSpecReg to align HERMES/HERCULES data can result in
                                       % worse alignment compared to the pre-aligned data; setting this parameter to 1 will
                                       % make RobustSpecReg use the averaged pre-aligned subspectra as references to align the
                                       % averaged post-aligned subspectra, which may improve the final alignment
    MRS_struct.p.vox                = {'vox1'}; % For naming voxels in PRIAM data, e.g. {'anterior','posterior'}, {'right','left'}, etc.
    MRS_struct.p.fit_resid_water    = 0; % 1 = YES, fit the residual water signal in the OFF spectrum to calculate a water suppression factor
    MRS_struct.p.weighted_averaging = 1; % 1 = YES, average subspectra using weighted averaging
    
% Flags(0 = NO; 1 = YES)
    MRS_struct.p.HERMES   = 0; % Data acquired using HERMES
    MRS_struct.p.HERCULES = 0; % Data acquired using HERCULES; if 1, MRS_struct.p.HERMES must be set to 1 as well
    MRS_struct.p.PRIAM    = 0; % Data acquired using PRIAM
    MRS_struct.p.phantom  = 0; % Data are from a phantom (assumes phantom was scanned at room temperature)
    MRS_struct.p.join     = 0; % Join multiple files (this can be batched across subjects)
    MRS_struct.p.mat      = 0; % Save MRS_struct as a .mat file
    MRS_struct.p.csv      = 0; % Extract useful data from MRS_struct and export them to a .csv file (applies to GannetFit,
                               % GannetSegment and GannetQuantify)
    MRS_struct.p.append   = 0; % Append PDF outputs into one PDF (separately for each module) (requires export_fig in the Gannet
                               % folder to be added to the search path and Ghostscript to be installed)
    MRS_struct.p.hide     = 0; % Do not display output figures

GABA-/GSH-edited HERMES data

% Acquisition parameters
    MRS_struct.p.target = {'GABAGlx','GSH'}; % Edited metabolite(s) of interest; permitted options are:
                                       % If MEGA-PRESS:
                                       %   {'GABA'}, {'GABAGlx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       % If HERMES:
                                       %   {'GABAGlx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
                                       % If HERCULES:
                                       %   {'GABAGlx','GSH'}
                                       % If phantom data:
                                       %   and MEGA-PRESS: {'GABA'}, {'Glx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       %   and HERMES: {'GABA','GSH'}, {'Glx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
    MRS_struct.p.seqorig = 'JHU'; % Origin of Philips MEGA-PRESS or GE HERMES sequences;
                                  % options are 'JHU' or 'Philips' if Philips, or 'Lythgoe' if GE (HERMES only)
    
% Analysis parameters
    MRS_struct.p.LB            = 3; % Exponential line-broadening (in Hz)
    MRS_struct.p.water_ECC     = 1; % 1 = YES, perform eddy current correction on water data
    MRS_struct.p.metab_ECC     = 0; % 1 = YES, perform eddy current correction on metabolite data (requires a water reference)
    MRS_struct.p.water_removal = 1; % 1 = YES, remove residual water signal in DIFF spectrum using HSVD
    MRS_struct.p.alignment     = 'RobustSpecReg'; % Alignment method; options are 'RobustSpecReg' (recommended), 'SpecReg', 'SpecRegHERMES',
                                                  % 'Cr', 'Cho', 'NAA', 'H2O', 'CrOFF', or 'none' (recommended for phantom data)
    MRS_struct.p.use_prealign_ref = 0; % 1 = YES; in some cases, using RobustSpecReg to align HERMES/HERCULES data can result in
                                       % worse alignment compared to the pre-aligned data; setting this parameter to 1 will
                                       % make RobustSpecReg use the averaged pre-aligned subspectra as references to align the
                                       % averaged post-aligned subspectra, which may improve the final alignment
    MRS_struct.p.vox                = {'vox1'}; % For naming voxels in PRIAM data, e.g. {'anterior','posterior'}, {'right','left'}, etc.
    MRS_struct.p.fit_resid_water    = 0; % 1 = YES, fit the residual water signal in the OFF spectrum to calculate a water suppression factor
    MRS_struct.p.weighted_averaging = 1; % 1 = YES, average subspectra using weighted averaging
    
% Flags(0 = NO; 1 = YES)
    MRS_struct.p.HERMES   = 1; % Data acquired using HERMES
    MRS_struct.p.HERCULES = 0; % Data acquired using HERCULES; if 1, MRS_struct.p.HERMES must be set to 1 as well
    MRS_struct.p.PRIAM    = 0; % Data acquired using PRIAM
    MRS_struct.p.phantom  = 0; % Data are from a phantom (assumes phantom was scanned at room temperature)
    MRS_struct.p.join     = 0; % Join multiple files (this can be batched across subjects)
    MRS_struct.p.mat      = 0; % Save MRS_struct as a .mat file
    MRS_struct.p.csv      = 0; % Extract useful data from MRS_struct and export them to a .csv file (applies to GannetFit,
                               % GannetSegment and GannetQuantify)
    MRS_struct.p.append   = 0; % Append PDF outputs into one PDF (separately for each module) (requires export_fig in the Gannet
                               % folder to be added to the search path and Ghostscript to be installed)
    MRS_struct.p.hide     = 0; % Do not display output figures

Phantom GABA-edited MEGA-PRESS data

% Acquisition parameters
    MRS_struct.p.target = {'GABA'}; % Edited metabolite(s) of interest; permitted options are:
                                       % If MEGA-PRESS:
                                       %   {'GABA'}, {'GABAGlx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       % If HERMES:
                                       %   {'GABAGlx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
                                       % If HERCULES:
                                       %   {'GABAGlx','GSH'}
                                       % If phantom data:
                                       %   and MEGA-PRESS: {'GABA'}, {'Glx'}, {'GSH'}, {'Lac'}, or {'EtOH'}
                                       %   and HERMES: {'GABA','GSH'}, {'Glx','GSH'}, {'Lac','GSH'}, or {'EtOH','GABA','GSH'}
    MRS_struct.p.seqorig = 'JHU'; % Origin of Philips MEGA-PRESS or GE HERMES sequences;
                                  % options are 'JHU' or 'Philips' if Philips, or 'Lythgoe' if GE (HERMES only)
    
% Analysis parameters
    MRS_struct.p.LB            = 3; % Exponential line-broadening (in Hz)
    MRS_struct.p.water_ECC     = 1; % 1 = YES, perform eddy current correction on water data
    MRS_struct.p.metab_ECC     = 0; % 1 = YES, perform eddy current correction on metabolite data (requires a water reference)
    MRS_struct.p.water_removal = 1; % 1 = YES, remove residual water signal in DIFF spectrum using HSVD
    MRS_struct.p.alignment     = 'none'; % Alignment method; options are 'RobustSpecReg' (recommended), 'SpecReg', 'SpecRegHERMES',
                                                  % 'Cr', 'Cho', 'NAA', 'H2O', 'CrOFF', or 'none' (recommended for phantom data)
    MRS_struct.p.use_prealign_ref = 0; % 1 = YES; in some cases, using RobustSpecReg to align HERMES/HERCULES data can result in
                                       % worse alignment compared to the pre-aligned data; setting this parameter to 1 will
                                       % make RobustSpecReg use the averaged pre-aligned subspectra as references to align the
                                       % averaged post-aligned subspectra, which may improve the final alignment
    MRS_struct.p.vox                = {'vox1'}; % For naming voxels in PRIAM data, e.g. {'anterior','posterior'}, {'right','left'}, etc.
    MRS_struct.p.fit_resid_water    = 0; % 1 = YES, fit the residual water signal in the OFF spectrum to calculate a water suppression factor
    MRS_struct.p.weighted_averaging = 1; % 1 = YES, average subspectra using weighted averaging
    
% Flags(0 = NO; 1 = YES)
    MRS_struct.p.HERMES   = 0; % Data acquired using HERMES
    MRS_struct.p.HERCULES = 0; % Data acquired using HERCULES; if 1, MRS_struct.p.HERMES must be set to 1 as well
    MRS_struct.p.PRIAM    = 0; % Data acquired using PRIAM
    MRS_struct.p.phantom  = 1; % Data are from a phantom (assumes phantom was scanned at room temperature)
    MRS_struct.p.join     = 0; % Join multiple files (this can be batched across subjects)
    MRS_struct.p.mat      = 0; % Save MRS_struct as a .mat file
    MRS_struct.p.csv      = 0; % Extract useful data from MRS_struct and export them to a .csv file (applies to GannetFit,
                               % GannetSegment and GannetQuantify)
    MRS_struct.p.append   = 0; % Append PDF outputs into one PDF (separately for each module) (requires export_fig in the Gannet
                               % directory to be added to the search path and Ghostscript to be installed)
    MRS_struct.p.hide     = 0; % Do not display output figures
LS0tCnRpdGxlOiAiR2FubmV0UHJlSW5pdGlhbGlzZSBzZXR0aW5ncyIKZGF0ZTogIkxhc3QgdXBkYXRlZDogYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlZCwgJVknKWAiCm91dHB1dDogaHRtbF9kb2N1bWVudAotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlID0gRkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgpgYGB7ciwgY2hpbGQgPSAianMvYmFjay10by10b3AuanMifQpgYGAKCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0KYm9keSAubWFpbi1jb250YWluZXIgewogIG1heC13aWR0aDogMTIwMHB4Owp9CmBgYAoKPGJyPgoKOjo6IHdhcm5pbmcKPGkgY2xhc3M9ImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSIgc3R5bGU9ImNvbG9yOiB3aGl0ZSI+PC9pPiZuYnNwOyBUaGVzZSBleGFtcGxlcyB3ZXJlIGNyZWF0ZWQgaW4gcmVsZWFzZSAzLjMuMC4gVGFrZSBjYXJlIGNvcHktcGFzdGluZyB0aGVzZSBleGFtcGxlcyBpbnRvIHlvdXIgdmVyc2lvbiBvZiBgR2FubmV0UHJlSW5pdGlhbGlzZS5tYC4gWW91IG1heSBiZSB1c2luZyBhIGRpZmZlcmVudCByZWxlYXNlIHRoYXQgaGFzIG9sZGVyL25ld2VyIHZhcmlhYmxlcyB0aGF0IGNvdWxkIHJlc3VsdCBpbiBhbiBlcnJvciBkdXJpbmcgdGhlIGFuYWx5c2lzIHBpcGVsaW5lLgo6OjoKCiMjIHsudGFic2V0IC50YWJzZXQtZmFkZSAudGFic2V0LXBpbGxzfQoKIyMjIEdBQkEtZWRpdGVkIE1FR0EtUFJFU1MgZGF0YQoKYGBge29jdGF2ZSwgZXZhbCA9IEZBTFNFfQolIEFjcXVpc2l0aW9uIHBhcmFtZXRlcnMKICAgIE1SU19zdHJ1Y3QucC50YXJnZXQgPSB7J0dBQkFHbHgnfTsgJSBFZGl0ZWQgbWV0YWJvbGl0ZShzKSBvZiBpbnRlcmVzdDsgcGVybWl0dGVkIG9wdGlvbnMgYXJlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIElmIE1FR0EtUFJFU1M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICB7J0dBQkEnfSwgeydHQUJBR2x4J30sIHsnR1NIJ30sIHsnTGFjJ30sIG9yIHsnRXRPSCd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgSWYgSEVSTUVTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgeydHQUJBR2x4JywnR1NIJ30sIHsnTGFjJywnR1NIJ30sIG9yIHsnRXRPSCcsJ0dBQkEnLCdHU0gnfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIElmIEhFUkNVTEVTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgeydHQUJBR2x4JywnR1NIJ30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBJZiBwaGFudG9tIGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICBhbmQgTUVHQS1QUkVTUzogeydHQUJBJ30sIHsnR2x4J30sIHsnR1NIJ30sIHsnTGFjJ30sIG9yIHsnRXRPSCd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICBhbmQgSEVSTUVTOiB7J0dBQkEnLCdHU0gnfSwgeydHbHgnLCdHU0gnfSwgeydMYWMnLCdHU0gnfSwgb3IgeydFdE9IJywnR0FCQScsJ0dTSCd9CiAgICBNUlNfc3RydWN0LnAuc2Vxb3JpZyA9ICdKSFUnOyAlIE9yaWdpbiBvZiBQaGlsaXBzIE1FR0EtUFJFU1Mgb3IgR0UgSEVSTUVTIHNlcXVlbmNlczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgb3B0aW9ucyBhcmUgJ0pIVScgb3IgJ1BoaWxpcHMnIGlmIFBoaWxpcHMsIG9yICdMeXRoZ29lJyBpZiBHRSAoSEVSTUVTIG9ubHkpCiAgICAKJSBBbmFseXNpcyBwYXJhbWV0ZXJzCiAgICBNUlNfc3RydWN0LnAuTEIgICAgICAgICAgICA9IDM7ICUgRXhwb25lbnRpYWwgbGluZS1icm9hZGVuaW5nIChpbiBIeikKICAgIE1SU19zdHJ1Y3QucC53YXRlcl9FQ0MgICAgID0gMTsgJSAxID0gWUVTLCBwZXJmb3JtIGVkZHkgY3VycmVudCBjb3JyZWN0aW9uIG9uIHdhdGVyIGRhdGEKICAgIE1SU19zdHJ1Y3QucC5tZXRhYl9FQ0MgICAgID0gMDsgJSAxID0gWUVTLCBwZXJmb3JtIGVkZHkgY3VycmVudCBjb3JyZWN0aW9uIG9uIG1ldGFib2xpdGUgZGF0YSAocmVxdWlyZXMgYSB3YXRlciByZWZlcmVuY2UpCiAgICBNUlNfc3RydWN0LnAud2F0ZXJfcmVtb3ZhbCA9IDE7ICUgMSA9IFlFUywgcmVtb3ZlIHJlc2lkdWFsIHdhdGVyIHNpZ25hbCBpbiBESUZGIHNwZWN0cnVtIHVzaW5nIEhTVkQKICAgIE1SU19zdHJ1Y3QucC5hbGlnbm1lbnQgICAgID0gJ1JvYnVzdFNwZWNSZWcnOyAlIEFsaWdubWVudCBtZXRob2Q7IG9wdGlvbnMgYXJlICdSb2J1c3RTcGVjUmVnJyAocmVjb21tZW5kZWQpLCAnU3BlY1JlZycsICdTcGVjUmVnSEVSTUVTJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICdDcicsICdDaG8nLCAnTkFBJywgJ0gyTycsICdDck9GRicsIG9yICdub25lJyAocmVjb21tZW5kZWQgZm9yIHBoYW50b20gZGF0YSkKICAgIE1SU19zdHJ1Y3QucC51c2VfcHJlYWxpZ25fcmVmID0gMDsgJSAxID0gWUVTOyBpbiBzb21lIGNhc2VzLCB1c2luZyBSb2J1c3RTcGVjUmVnIHRvIGFsaWduIEhFUk1FUy9IRVJDVUxFUyBkYXRhIGNhbiByZXN1bHQgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB3b3JzZSBhbGlnbm1lbnQgY29tcGFyZWQgdG8gdGhlIHByZS1hbGlnbmVkIGRhdGE7IHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gMSB3aWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgbWFrZSBSb2J1c3RTcGVjUmVnIHVzZSB0aGUgYXZlcmFnZWQgcHJlLWFsaWduZWQgc3Vic3BlY3RyYSBhcyByZWZlcmVuY2VzIHRvIGFsaWduIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGF2ZXJhZ2VkIHBvc3QtYWxpZ25lZCBzdWJzcGVjdHJhLCB3aGljaCBtYXkgaW1wcm92ZSB0aGUgZmluYWwgYWxpZ25tZW50CiAgICBNUlNfc3RydWN0LnAudm94ICAgICAgICAgICAgICAgID0geyd2b3gxJ307ICUgRm9yIG5hbWluZyB2b3hlbHMgaW4gUFJJQU0gZGF0YSwgZS5nLiB7J2FudGVyaW9yJywncG9zdGVyaW9yJ30sIHsncmlnaHQnLCdsZWZ0J30sIGV0Yy4KICAgIE1SU19zdHJ1Y3QucC5maXRfcmVzaWRfd2F0ZXIgICAgPSAwOyAlIDEgPSBZRVMsIGZpdCB0aGUgcmVzaWR1YWwgd2F0ZXIgc2lnbmFsIGluIHRoZSBPRkYgc3BlY3RydW0gdG8gY2FsY3VsYXRlIGEgd2F0ZXIgc3VwcHJlc3Npb24gZmFjdG9yCiAgICBNUlNfc3RydWN0LnAud2VpZ2h0ZWRfYXZlcmFnaW5nID0gMTsgJSAxID0gWUVTLCBhdmVyYWdlIHN1YnNwZWN0cmEgdXNpbmcgd2VpZ2h0ZWQgYXZlcmFnaW5nCiAgICAKJSBGbGFncygwID0gTk87IDEgPSBZRVMpCiAgICBNUlNfc3RydWN0LnAuSEVSTUVTICAgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgSEVSTUVTCiAgICBNUlNfc3RydWN0LnAuSEVSQ1VMRVMgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgSEVSQ1VMRVM7IGlmIDEsIE1SU19zdHJ1Y3QucC5IRVJNRVMgbXVzdCBiZSBzZXQgdG8gMSBhcyB3ZWxsCiAgICBNUlNfc3RydWN0LnAuUFJJQU0gICAgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgUFJJQU0KICAgIE1SU19zdHJ1Y3QucC5waGFudG9tICA9IDA7ICUgRGF0YSBhcmUgZnJvbSBhIHBoYW50b20gKGFzc3VtZXMgcGhhbnRvbSB3YXMgc2Nhbm5lZCBhdCByb29tIHRlbXBlcmF0dXJlKQogICAgTVJTX3N0cnVjdC5wLmpvaW4gICAgID0gMDsgJSBKb2luIG11bHRpcGxlIGZpbGVzICh0aGlzIGNhbiBiZSBiYXRjaGVkIGFjcm9zcyBzdWJqZWN0cykKICAgIE1SU19zdHJ1Y3QucC5tYXQgICAgICA9IDA7ICUgU2F2ZSBNUlNfc3RydWN0IGFzIGEgLm1hdCBmaWxlCiAgICBNUlNfc3RydWN0LnAuY3N2ICAgICAgPSAwOyAlIEV4dHJhY3QgdXNlZnVsIGRhdGEgZnJvbSBNUlNfc3RydWN0IGFuZCBleHBvcnQgdGhlbSB0byBhIC5jc3YgZmlsZSAoYXBwbGllcyB0byBHYW5uZXRGaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIEdhbm5ldFNlZ21lbnQgYW5kIEdhbm5ldFF1YW50aWZ5KQogICAgTVJTX3N0cnVjdC5wLmFwcGVuZCAgID0gMDsgJSBBcHBlbmQgUERGIG91dHB1dHMgaW50byBvbmUgUERGIChzZXBhcmF0ZWx5IGZvciBlYWNoIG1vZHVsZSkgKHJlcXVpcmVzIGV4cG9ydF9maWcgaW4gdGhlIEdhbm5ldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBmb2xkZXIgdG8gYmUgYWRkZWQgdG8gdGhlIHNlYXJjaCBwYXRoIGFuZCBHaG9zdHNjcmlwdCB0byBiZSBpbnN0YWxsZWQpCiAgICBNUlNfc3RydWN0LnAuaGlkZSAgICAgPSAwOyAlIERvIG5vdCBkaXNwbGF5IG91dHB1dCBmaWd1cmVzCmBgYAoKIyMjIEdBQkEtL0dTSC1lZGl0ZWQgSEVSTUVTIGRhdGEKCmBgYHtvY3RhdmUsIGV2YWwgPSBGQUxTRX0KJSBBY3F1aXNpdGlvbiBwYXJhbWV0ZXJzCiAgICBNUlNfc3RydWN0LnAudGFyZ2V0ID0geydHQUJBR2x4JywnR1NIJ307ICUgRWRpdGVkIG1ldGFib2xpdGUocykgb2YgaW50ZXJlc3Q7IHBlcm1pdHRlZCBvcHRpb25zIGFyZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBJZiBNRUdBLVBSRVNTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgeydHQUJBJ30sIHsnR0FCQUdseCd9LCB7J0dTSCd9LCB7J0xhYyd9LCBvciB7J0V0T0gnfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIElmIEhFUk1FUzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAgIHsnR0FCQUdseCcsJ0dTSCd9LCB7J0xhYycsJ0dTSCd9LCBvciB7J0V0T0gnLCdHQUJBJywnR1NIJ30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBJZiBIRVJDVUxFUzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAgIHsnR0FCQUdseCcsJ0dTSCd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgSWYgcGhhbnRvbSBkYXRhOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgYW5kIE1FR0EtUFJFU1M6IHsnR0FCQSd9LCB7J0dseCd9LCB7J0dTSCd9LCB7J0xhYyd9LCBvciB7J0V0T0gnfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgYW5kIEhFUk1FUzogeydHQUJBJywnR1NIJ30sIHsnR2x4JywnR1NIJ30sIHsnTGFjJywnR1NIJ30sIG9yIHsnRXRPSCcsJ0dBQkEnLCdHU0gnfQogICAgTVJTX3N0cnVjdC5wLnNlcW9yaWcgPSAnSkhVJzsgJSBPcmlnaW4gb2YgUGhpbGlwcyBNRUdBLVBSRVNTIG9yIEdFIEhFUk1FUyBzZXF1ZW5jZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIG9wdGlvbnMgYXJlICdKSFUnIG9yICdQaGlsaXBzJyBpZiBQaGlsaXBzLCBvciAnTHl0aGdvZScgaWYgR0UgKEhFUk1FUyBvbmx5KQogICAgCiUgQW5hbHlzaXMgcGFyYW1ldGVycwogICAgTVJTX3N0cnVjdC5wLkxCICAgICAgICAgICAgPSAzOyAlIEV4cG9uZW50aWFsIGxpbmUtYnJvYWRlbmluZyAoaW4gSHopCiAgICBNUlNfc3RydWN0LnAud2F0ZXJfRUNDICAgICA9IDE7ICUgMSA9IFlFUywgcGVyZm9ybSBlZGR5IGN1cnJlbnQgY29ycmVjdGlvbiBvbiB3YXRlciBkYXRhCiAgICBNUlNfc3RydWN0LnAubWV0YWJfRUNDICAgICA9IDA7ICUgMSA9IFlFUywgcGVyZm9ybSBlZGR5IGN1cnJlbnQgY29ycmVjdGlvbiBvbiBtZXRhYm9saXRlIGRhdGEgKHJlcXVpcmVzIGEgd2F0ZXIgcmVmZXJlbmNlKQogICAgTVJTX3N0cnVjdC5wLndhdGVyX3JlbW92YWwgPSAxOyAlIDEgPSBZRVMsIHJlbW92ZSByZXNpZHVhbCB3YXRlciBzaWduYWwgaW4gRElGRiBzcGVjdHJ1bSB1c2luZyBIU1ZECiAgICBNUlNfc3RydWN0LnAuYWxpZ25tZW50ICAgICA9ICdSb2J1c3RTcGVjUmVnJzsgJSBBbGlnbm1lbnQgbWV0aG9kOyBvcHRpb25zIGFyZSAnUm9idXN0U3BlY1JlZycgKHJlY29tbWVuZGVkKSwgJ1NwZWNSZWcnLCAnU3BlY1JlZ0hFUk1FUycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAnQ3InLCAnQ2hvJywgJ05BQScsICdIMk8nLCAnQ3JPRkYnLCBvciAnbm9uZScgKHJlY29tbWVuZGVkIGZvciBwaGFudG9tIGRhdGEpCiAgICBNUlNfc3RydWN0LnAudXNlX3ByZWFsaWduX3JlZiA9IDA7ICUgMSA9IFlFUzsgaW4gc29tZSBjYXNlcywgdXNpbmcgUm9idXN0U3BlY1JlZyB0byBhbGlnbiBIRVJNRVMvSEVSQ1VMRVMgZGF0YSBjYW4gcmVzdWx0IGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgd29yc2UgYWxpZ25tZW50IGNvbXBhcmVkIHRvIHRoZSBwcmUtYWxpZ25lZCBkYXRhOyBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIDEgd2lsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIG1ha2UgUm9idXN0U3BlY1JlZyB1c2UgdGhlIGF2ZXJhZ2VkIHByZS1hbGlnbmVkIHN1YnNwZWN0cmEgYXMgcmVmZXJlbmNlcyB0byBhbGlnbiB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBhdmVyYWdlZCBwb3N0LWFsaWduZWQgc3Vic3BlY3RyYSwgd2hpY2ggbWF5IGltcHJvdmUgdGhlIGZpbmFsIGFsaWdubWVudAogICAgTVJTX3N0cnVjdC5wLnZveCAgICAgICAgICAgICAgICA9IHsndm94MSd9OyAlIEZvciBuYW1pbmcgdm94ZWxzIGluIFBSSUFNIGRhdGEsIGUuZy4geydhbnRlcmlvcicsJ3Bvc3Rlcmlvcid9LCB7J3JpZ2h0JywnbGVmdCd9LCBldGMuCiAgICBNUlNfc3RydWN0LnAuZml0X3Jlc2lkX3dhdGVyICAgID0gMDsgJSAxID0gWUVTLCBmaXQgdGhlIHJlc2lkdWFsIHdhdGVyIHNpZ25hbCBpbiB0aGUgT0ZGIHNwZWN0cnVtIHRvIGNhbGN1bGF0ZSBhIHdhdGVyIHN1cHByZXNzaW9uIGZhY3RvcgogICAgTVJTX3N0cnVjdC5wLndlaWdodGVkX2F2ZXJhZ2luZyA9IDE7ICUgMSA9IFlFUywgYXZlcmFnZSBzdWJzcGVjdHJhIHVzaW5nIHdlaWdodGVkIGF2ZXJhZ2luZwogICAgCiUgRmxhZ3MoMCA9IE5POyAxID0gWUVTKQogICAgTVJTX3N0cnVjdC5wLkhFUk1FUyAgID0gMTsgJSBEYXRhIGFjcXVpcmVkIHVzaW5nIEhFUk1FUwogICAgTVJTX3N0cnVjdC5wLkhFUkNVTEVTID0gMDsgJSBEYXRhIGFjcXVpcmVkIHVzaW5nIEhFUkNVTEVTOyBpZiAxLCBNUlNfc3RydWN0LnAuSEVSTUVTIG11c3QgYmUgc2V0IHRvIDEgYXMgd2VsbAogICAgTVJTX3N0cnVjdC5wLlBSSUFNICAgID0gMDsgJSBEYXRhIGFjcXVpcmVkIHVzaW5nIFBSSUFNCiAgICBNUlNfc3RydWN0LnAucGhhbnRvbSAgPSAwOyAlIERhdGEgYXJlIGZyb20gYSBwaGFudG9tIChhc3N1bWVzIHBoYW50b20gd2FzIHNjYW5uZWQgYXQgcm9vbSB0ZW1wZXJhdHVyZSkKICAgIE1SU19zdHJ1Y3QucC5qb2luICAgICA9IDA7ICUgSm9pbiBtdWx0aXBsZSBmaWxlcyAodGhpcyBjYW4gYmUgYmF0Y2hlZCBhY3Jvc3Mgc3ViamVjdHMpCiAgICBNUlNfc3RydWN0LnAubWF0ICAgICAgPSAwOyAlIFNhdmUgTVJTX3N0cnVjdCBhcyBhIC5tYXQgZmlsZQogICAgTVJTX3N0cnVjdC5wLmNzdiAgICAgID0gMDsgJSBFeHRyYWN0IHVzZWZ1bCBkYXRhIGZyb20gTVJTX3N0cnVjdCBhbmQgZXhwb3J0IHRoZW0gdG8gYSAuY3N2IGZpbGUgKGFwcGxpZXMgdG8gR2FubmV0Rml0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBHYW5uZXRTZWdtZW50IGFuZCBHYW5uZXRRdWFudGlmeSkKICAgIE1SU19zdHJ1Y3QucC5hcHBlbmQgICA9IDA7ICUgQXBwZW5kIFBERiBvdXRwdXRzIGludG8gb25lIFBERiAoc2VwYXJhdGVseSBmb3IgZWFjaCBtb2R1bGUpIChyZXF1aXJlcyBleHBvcnRfZmlnIGluIHRoZSBHYW5uZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgZm9sZGVyIHRvIGJlIGFkZGVkIHRvIHRoZSBzZWFyY2ggcGF0aCBhbmQgR2hvc3RzY3JpcHQgdG8gYmUgaW5zdGFsbGVkKQogICAgTVJTX3N0cnVjdC5wLmhpZGUgICAgID0gMDsgJSBEbyBub3QgZGlzcGxheSBvdXRwdXQgZmlndXJlcwpgYGAKCiMjIyBQaGFudG9tIEdBQkEtZWRpdGVkIE1FR0EtUFJFU1MgZGF0YQoKYGBge29jdGF2ZSwgZXZhbCA9IEZBTFNFfQolIEFjcXVpc2l0aW9uIHBhcmFtZXRlcnMKICAgIE1SU19zdHJ1Y3QucC50YXJnZXQgPSB7J0dBQkEnfTsgJSBFZGl0ZWQgbWV0YWJvbGl0ZShzKSBvZiBpbnRlcmVzdDsgcGVybWl0dGVkIG9wdGlvbnMgYXJlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIElmIE1FR0EtUFJFU1M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICB7J0dBQkEnfSwgeydHQUJBR2x4J30sIHsnR1NIJ30sIHsnTGFjJ30sIG9yIHsnRXRPSCd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgSWYgSEVSTUVTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgeydHQUJBR2x4JywnR1NIJ30sIHsnTGFjJywnR1NIJ30sIG9yIHsnRXRPSCcsJ0dBQkEnLCdHU0gnfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIElmIEhFUkNVTEVTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICAgeydHQUJBR2x4JywnR1NIJ30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBJZiBwaGFudG9tIGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICBhbmQgTUVHQS1QUkVTUzogeydHQUJBJ30sIHsnR2x4J30sIHsnR1NIJ30sIHsnTGFjJ30sIG9yIHsnRXRPSCd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgICBhbmQgSEVSTUVTOiB7J0dBQkEnLCdHU0gnfSwgeydHbHgnLCdHU0gnfSwgeydMYWMnLCdHU0gnfSwgb3IgeydFdE9IJywnR0FCQScsJ0dTSCd9CiAgICBNUlNfc3RydWN0LnAuc2Vxb3JpZyA9ICdKSFUnOyAlIE9yaWdpbiBvZiBQaGlsaXBzIE1FR0EtUFJFU1Mgb3IgR0UgSEVSTUVTIHNlcXVlbmNlczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgb3B0aW9ucyBhcmUgJ0pIVScgb3IgJ1BoaWxpcHMnIGlmIFBoaWxpcHMsIG9yICdMeXRoZ29lJyBpZiBHRSAoSEVSTUVTIG9ubHkpCiAgICAKJSBBbmFseXNpcyBwYXJhbWV0ZXJzCiAgICBNUlNfc3RydWN0LnAuTEIgICAgICAgICAgICA9IDM7ICUgRXhwb25lbnRpYWwgbGluZS1icm9hZGVuaW5nIChpbiBIeikKICAgIE1SU19zdHJ1Y3QucC53YXRlcl9FQ0MgICAgID0gMTsgJSAxID0gWUVTLCBwZXJmb3JtIGVkZHkgY3VycmVudCBjb3JyZWN0aW9uIG9uIHdhdGVyIGRhdGEKICAgIE1SU19zdHJ1Y3QucC5tZXRhYl9FQ0MgICAgID0gMDsgJSAxID0gWUVTLCBwZXJmb3JtIGVkZHkgY3VycmVudCBjb3JyZWN0aW9uIG9uIG1ldGFib2xpdGUgZGF0YSAocmVxdWlyZXMgYSB3YXRlciByZWZlcmVuY2UpCiAgICBNUlNfc3RydWN0LnAud2F0ZXJfcmVtb3ZhbCA9IDE7ICUgMSA9IFlFUywgcmVtb3ZlIHJlc2lkdWFsIHdhdGVyIHNpZ25hbCBpbiBESUZGIHNwZWN0cnVtIHVzaW5nIEhTVkQKICAgIE1SU19zdHJ1Y3QucC5hbGlnbm1lbnQgICAgID0gJ25vbmUnOyAlIEFsaWdubWVudCBtZXRob2Q7IG9wdGlvbnMgYXJlICdSb2J1c3RTcGVjUmVnJyAocmVjb21tZW5kZWQpLCAnU3BlY1JlZycsICdTcGVjUmVnSEVSTUVTJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICdDcicsICdDaG8nLCAnTkFBJywgJ0gyTycsICdDck9GRicsIG9yICdub25lJyAocmVjb21tZW5kZWQgZm9yIHBoYW50b20gZGF0YSkKICAgIE1SU19zdHJ1Y3QucC51c2VfcHJlYWxpZ25fcmVmID0gMDsgJSAxID0gWUVTOyBpbiBzb21lIGNhc2VzLCB1c2luZyBSb2J1c3RTcGVjUmVnIHRvIGFsaWduIEhFUk1FUy9IRVJDVUxFUyBkYXRhIGNhbiByZXN1bHQgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB3b3JzZSBhbGlnbm1lbnQgY29tcGFyZWQgdG8gdGhlIHByZS1hbGlnbmVkIGRhdGE7IHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gMSB3aWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgbWFrZSBSb2J1c3RTcGVjUmVnIHVzZSB0aGUgYXZlcmFnZWQgcHJlLWFsaWduZWQgc3Vic3BlY3RyYSBhcyByZWZlcmVuY2VzIHRvIGFsaWduIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGF2ZXJhZ2VkIHBvc3QtYWxpZ25lZCBzdWJzcGVjdHJhLCB3aGljaCBtYXkgaW1wcm92ZSB0aGUgZmluYWwgYWxpZ25tZW50CiAgICBNUlNfc3RydWN0LnAudm94ICAgICAgICAgICAgICAgID0geyd2b3gxJ307ICUgRm9yIG5hbWluZyB2b3hlbHMgaW4gUFJJQU0gZGF0YSwgZS5nLiB7J2FudGVyaW9yJywncG9zdGVyaW9yJ30sIHsncmlnaHQnLCdsZWZ0J30sIGV0Yy4KICAgIE1SU19zdHJ1Y3QucC5maXRfcmVzaWRfd2F0ZXIgICAgPSAwOyAlIDEgPSBZRVMsIGZpdCB0aGUgcmVzaWR1YWwgd2F0ZXIgc2lnbmFsIGluIHRoZSBPRkYgc3BlY3RydW0gdG8gY2FsY3VsYXRlIGEgd2F0ZXIgc3VwcHJlc3Npb24gZmFjdG9yCiAgICBNUlNfc3RydWN0LnAud2VpZ2h0ZWRfYXZlcmFnaW5nID0gMTsgJSAxID0gWUVTLCBhdmVyYWdlIHN1YnNwZWN0cmEgdXNpbmcgd2VpZ2h0ZWQgYXZlcmFnaW5nCiAgICAKJSBGbGFncygwID0gTk87IDEgPSBZRVMpCiAgICBNUlNfc3RydWN0LnAuSEVSTUVTICAgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgSEVSTUVTCiAgICBNUlNfc3RydWN0LnAuSEVSQ1VMRVMgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgSEVSQ1VMRVM7IGlmIDEsIE1SU19zdHJ1Y3QucC5IRVJNRVMgbXVzdCBiZSBzZXQgdG8gMSBhcyB3ZWxsCiAgICBNUlNfc3RydWN0LnAuUFJJQU0gICAgPSAwOyAlIERhdGEgYWNxdWlyZWQgdXNpbmcgUFJJQU0KICAgIE1SU19zdHJ1Y3QucC5waGFudG9tICA9IDE7ICUgRGF0YSBhcmUgZnJvbSBhIHBoYW50b20gKGFzc3VtZXMgcGhhbnRvbSB3YXMgc2Nhbm5lZCBhdCByb29tIHRlbXBlcmF0dXJlKQogICAgTVJTX3N0cnVjdC5wLmpvaW4gICAgID0gMDsgJSBKb2luIG11bHRpcGxlIGZpbGVzICh0aGlzIGNhbiBiZSBiYXRjaGVkIGFjcm9zcyBzdWJqZWN0cykKICAgIE1SU19zdHJ1Y3QucC5tYXQgICAgICA9IDA7ICUgU2F2ZSBNUlNfc3RydWN0IGFzIGEgLm1hdCBmaWxlCiAgICBNUlNfc3RydWN0LnAuY3N2ICAgICAgPSAwOyAlIEV4dHJhY3QgdXNlZnVsIGRhdGEgZnJvbSBNUlNfc3RydWN0IGFuZCBleHBvcnQgdGhlbSB0byBhIC5jc3YgZmlsZSAoYXBwbGllcyB0byBHYW5uZXRGaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIEdhbm5ldFNlZ21lbnQgYW5kIEdhbm5ldFF1YW50aWZ5KQogICAgTVJTX3N0cnVjdC5wLmFwcGVuZCAgID0gMDsgJSBBcHBlbmQgUERGIG91dHB1dHMgaW50byBvbmUgUERGIChzZXBhcmF0ZWx5IGZvciBlYWNoIG1vZHVsZSkgKHJlcXVpcmVzIGV4cG9ydF9maWcgaW4gdGhlIEdhbm5ldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBkaXJlY3RvcnkgdG8gYmUgYWRkZWQgdG8gdGhlIHNlYXJjaCBwYXRoIGFuZCBHaG9zdHNjcmlwdCB0byBiZSBpbnN0YWxsZWQpCiAgICBNUlNfc3RydWN0LnAuaGlkZSAgICAgPSAwOyAlIERvIG5vdCBkaXNwbGF5IG91dHB1dCBmaWd1cmVzCmBgYAoKCgo=


Built with R Markdown in RStudio

Copyright © 2020–2024, Mark Mikkelsen