// This file was generated by Cobalt's Config parser based on the configuration
// YAML in the cobalt_config repository. Edit the YAML there to make changes.
pub mod a {
pub mod b {
// Metric ID Constants
// Daily rare event counts
pub const DAILY_RARE_EVENT_COUNTS_METRIC_ID = 1;
// Module views
pub const MODULE_VIEWS_METRIC_ID = 2;

// Report ID Constants
// Fuchsia Ledger Daily Rare Events
pub const FUCHSIA_LEDGER_DAILY_RARE_EVENTS_REPORT_ID = 1;
// Fuchsia Module Daily Launch Counts
pub const FUCHSIA_MODULE_DAILY_LAUNCH_COUNTS_REPORT_ID = 2;

// The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
pub const CONFIG: &str = "CmUIChAFGAEyXRUAAIA/OlYKDkxlZGdlci1zdGFydHVwCh1Db21taXRzLXJlY2VpdmVkLW91dC1vZi1vcmRlcgoOQ29tbWl0cy1tZXJnZWQKFU1lcmdlZC1jb21taXRzLW1lcmdlZAoMCAoQBRgCIgQIAhACEpgBCAoQBRgBIhdEYWlseSByYXJlIGV2ZW50IGNvdW50cypJRGFpbHkgY291bnRzIG9mIHNldmVyYWwgZXZlbnRzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIG9jY3VyIHJhcmVseSBpZiBldmVyLjIqCgpFdmVudCBuYW1lEhwKGldoaWNoIHJhcmUgZXZlbnQgb2NjdXJyZWQ/OAISfQgKEAUYAiIMTW9kdWxlIHZpZXdzKjVUcmFja3MgZWFjaCBpbmNpZGVuY2Ugb2Ygdmlld2luZyBhIG1vZHVsZSBieSBpdHMgVVJMLjIuCgN1cmwSJwolVGhlIFVSTCBvZiB0aGUgbW9kdWxlIGJlaW5nIGxhdW5jaGVkLjgCGqQBCAoQBRgBIiBGdWNoc2lhIExlZGdlciBEYWlseSBSYXJlIEV2ZW50cyo8QSBkYWlseSByZXBvcnQgb2YgZXZlbnRzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGhhcHBlbiByYXJlbHkuMAFCDAoKRXZlbnQgbmFtZVICEANaKAoAEiQKImZ1Y2hzaWEtY29iYWx0LXJlcG9ydHMtcDItdGVzdC1hcHAaoAEIChAFGAIiIkZ1Y2hzaWEgTW9kdWxlIERhaWx5IExhdW5jaCBDb3VudHMqPUEgZGFpbHkgcmVwb3J0IG9mIHRoZSBkYWlseSBjb3VudHMgb2YgbW9kdWxlIGxhdW5jaGVzIGJ5IFVSTC4wAkIFCgN1cmxSAhADWigKABIkCiJmdWNoc2lhLWNvYmFsdC1yZXBvcnRzLXAyLXRlc3QtYXBw";
}
}
