import "sync/atomic"
func newDataMap(cMap map[string]*data) *atomic.Value {
av := new(atomic.Value)
av.Store(cMap)
return av
}
func getDataMap(av *atomic.Value) map[string]*data {
cMap, _ := av.Load().(map[string]*data)
return cMap
}
func getDataMapFunc(av *atomic.Value) func() map[string]*data {
return func() map[string]*data { return getDataMap(av) }
}
func storeDataMap(av *atomic.Value, cMap map[string]*data) {
av.Store(cMap)
}
aW1wb3J0ICJzeW5jL2F0b21pYyIKCmZ1bmMgbmV3RGF0YU1hcChjTWFwIG1hcFtzdHJpbmddKmRhdGEpICphdG9taWMuVmFsdWUgewoJYXYgOj0gbmV3KGF0b21pYy5WYWx1ZSkKCWF2LlN0b3JlKGNNYXApCglyZXR1cm4gYXYKfQoKZnVuYyBnZXREYXRhTWFwKGF2ICphdG9taWMuVmFsdWUpIG1hcFtzdHJpbmddKmRhdGEgewoJY01hcCwgXyA6PSBhdi5Mb2FkKCkuKG1hcFtzdHJpbmddKmRhdGEpCglyZXR1cm4gY01hcAp9CgpmdW5jIGdldERhdGFNYXBGdW5jKGF2ICphdG9taWMuVmFsdWUpIGZ1bmMoKSBtYXBbc3RyaW5nXSpkYXRhIHsKCXJldHVybiBmdW5jKCkgbWFwW3N0cmluZ10qZGF0YSB7IHJldHVybiBnZXREYXRhTWFwKGF2KSB9Cn0KCmZ1bmMgc3RvcmVEYXRhTWFwKGF2ICphdG9taWMuVmFsdWUsIGNNYXAgbWFwW3N0cmluZ10qZGF0YSkgewoJYXYuU3RvcmUoY01hcCkKfQo=