Exploring Caller Info Attributes

Last year, Microsoft announced a simple new feature in C# 5: Caller Info Attributes.  These attributes let you to create methods with optional parameters and tell the compiler to pass the caller’s filepath, line number, or member name instead of the parameter’s default value.  This allows you to create logging methods that automatically know where they’re being called.

When the feature was announced, I wrote a couple of blog posts that delved into some of the corner cases of the new feature.  At the time, there was no public implementation, so they were pure conjecture.

This morning, Microsoft released the beta of Visual Studio 11, which is the first public build supporting these attributes.  Now, I can finally test my theories.  Here are the results:

Although these classes are new to the .Net Framework 4.5, you can still use this feature against older framework versions by creating your own classes in the System.Runtime.CompilerServices namespace.  However, the feature will only work if the code calling the method is compiled with the C# 5 compiler; older compilers will ignore the attributes and simply pass the parameters’ default values.

All of the attributes can only be applied to arguments of types that have standard (not custom) implicit conversions to int or string.  This means that it isn’t practical to overflow [CallerLineNumber] (the compiler ran out of memory first), so I can’t test how that behaves.

Using [CallerMemberName] on field initializers passes the field name, and on static or instances constructors passes the string ".cctor" or ".ctor" (as documented)  In indexers, it passes "Item".

If a class has a constructor that takes only caller info attribute parameters, and you create another class that inherits it and does not declare a constructor (thus implicitly passing optional parameters), it passes the line number and file name of the class keyword in the derived class, but leaves the declared default for the member name (I suspect that’s a bug). 

If you do declare a constructor, it passes the string ".ctor" as the member name for the implicit base() call (just like a normal method call from inside a constructor) and the line number of the beginning of the constructor declaration.  If you actually write a base() call, it passes the line number of the base keyword.

If a call spans multiple lines, [CallerLineNumber] passes the line containing the openning parenthesis.

Delegates are fully supported; if you call a delegate that has an argumented annotated with a caller info attribute, the compiler will insert the correct value, regardless of the method you’re actually calling (which the compiler doesn’t even know).

LINQ query comprehension syntax is not supported at all; if you create a (for example) Select() method that contains a caller info attribute, then call it from a LINQ query (not lambda syntax), the compiler will crash (!).  (they will fix that)

Expression trees do not support optional parameters at all, so that corner case is irrelevant.

Attributes are the most interesting story.  What should happen if you declare a custom attribute that takes parameters with caller info attributes, then apply that attribute in various cases?  This could potentially be very useful, since there is currently no way for an attribute to know what it’s being applied to. (I hadn’t thought of this usage when I wrote the original blog post)

The documentation says that this will work in all cases, and that [CallerMemberName] will pass whatever the attribute is being applied to.  However, in the beta build, this doesn’t always work.

Attributes applied to method arguments or return values do not pass any caller info at all.  Attributes applied to types or generic type arguments do not pass member names (this is very disappointing)

Hopefully, those will be fixed before release.

331 comments:

«Oldest   ‹Older   201 – 331 of 331   Newer›   Newest»

Welcome to the Join Pak Navy if someone interested to apply for pak navy then they can visit this site as we almost cover everything related to this topic.

Really impressed! Everything is very open and very clear clarification of issues. It contains truly facts. Your website is very valuable. Thanks for sharing.

Data Science Course in Mangalore

You totally coordinate our desire and the assortment of our data.
data analytics course in yelahanka

You totally coordinate our desire and the assortment of our data.
data science courses malaysia

wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated.

Data Science Course in Mysore

I think it could be more general if you get a football sports activity
Data Science Training in Hyderabad

First You got a great blog .I will be interested in more similar topics. I see you have really very useful topics, i will be always checking your blog thanks.
Best Data Science Courses in Hyderabad


I was taking a gander at some of your posts on this site and I consider this site is truly informational! Keep setting up..
Best Data Science Courses in Hyderabad

This comment has been removed by the author.


Top quality blog with excellent information looking forward for next updated thank you.
Ethical Hacking Course in Bangalore

I will really appreciate the writer's choice for choosing this excellent article appropriate to my matter.Here is deep description about the article matter which helped me more.

Data Science Course in Chandigarh

Thanks for sharing the information. It's Very Useful. 
 Online Primavera Trainingprimavera p6 training online

Thanks for posting the best information and the blog is very helpfulData science course in Varanasi

Thanks for sharing this knowledgeable post. What an excellent post and outstanding article. Thanks for your awesome topic . Really I got very valuable information here. For instant support related to Download AOL Desktop Gold please contact our technical expert for help.

You got a really useful blog. I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me. For instant support related to Change AOL Password Online please contact our team for instant help.

Full Body Exoskeleton - An exoskeleton usually pertains to an external body covering feature facilitating a certain biological process thereby,Using exoskeleton can prevent neurological injury and physical damage.

Tags - "full body exoskeleton , homemade exoskeleton, exoskeleton for lifting
"

Link - http://exoskeleton360.com/

Get instant Finance Assignment Help from the best experts. The experts from My Assignment Help
assignment team keep a regular watch on all the university guidelines. We always strive to provide the students with the best quality assignments. All the details are gone through each time we get a finance assignment order from the students.

combine gaming and study!
game word unscrambler will help you Improve your vocabulary
With so many words in the archives, you might find something really useful here. It not only helps to improve your vocabulary but also strengthens your language skills.

This post is very simple to read and appreciate without leaving any details out. Great work!
artificial intelligence courses in aurangabad

Global Translation Help offers NYC Translation Services at very pocket-friendly prices. We have a team of more than 500 certified native translators in New York who are highly skilled and expertise in delivering excellent translation services for any kind of documents in the desired language. We provide same-day translation and one-hour translation service for you if you have an urgent requirement.

nice article. keep posting. we provide Java Assignment Help.We provide all kinds of academic assignments such as research paper, term paper, thesis assignments and essay assignments. if anyone need Database Homework help also provide expert tutor help at the best price. 24x7 online chat support.

Attributes applied to method arguments or return values do not pass any caller info at all. Attributes applied to types or generic type arguments do not pass member names (this is very disappointing) cotton comforter , best cotton sheets ,

I really enjoy reading and also appreciate your work.
data science training in pune

We are provided by a live project based Web Development Company in Chandigarh. Violet Automation is a best team of web Development consultants. Violet Automation is a good php expert who is a reliable guide.

Thanks for the informative article.keep share and update with such blogs.
Data Science Training in Pune

Great, thank you so much for sharing such an amazing blog with us. OGEN Infosystem is one of the best Website Designing, Website Development, SEO, PPC, and Digital Marketing Services in Delhi, India.
Website Designing Company in India

They make certain to draft the best programming projects according to your particulars and necessities.
programming assignment experts

We have the best professional who can provide the best Java Homework Help at the best price. Our highly experienced & qualified tutors & writers have the capability of delivering write up based on any of the subjects or topics. For any help SAP assignment help, contact to our customer support and get expert help.

I like your blog you write your blog very carefully . it is very knowledgeable .If you like this information and want to know more about CAD you can call me at 9311002620 or can visit our website https://www.htsindia.com/autocad-training-institute

This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck.
artificial intelligence course aurangabad

It is extremely nice to see the greatest details presented in an easy and understanding manner.
data scientist course

Hi, I am John Smith I am Web Developer, It is an amazing blog thanks for the sharing the blog. Frantic infotech provide the UI/ UX android app Design Company such as an information about software development for costumer service. Franti infotech also provide the flutter app development company in india. The development of advanced web applications is Orient Software’s specialty and we will successfully fulfill all your web application development requirements, from small-sized to wider-ranged projects.

Great Work. I always use to follow your valuable contents. Thanks for sharing this kind of knowledge. It is very helpful and very informative and I really learned a lot from it.

Best Excel and Advanced Excel Training in Delhi with Professional Trainer
AutoCAD Training Course in Delhi with Fee and Duration
Tally Course Complete Details – Eligibility, Fees, Job and Salary

Jubilant to read your blog. One of the best I have gone through. If anyone want to get experience certificate in Chennai. Here the Dreamsoft is providing the genuine experience certificate in Chennai. Dreamsoft is the 20 years old consultancy providing experience certificate. You can contact at the 9599119376 or can go to our website at https://experiencecertificates.com/experience-certificate-provider-in-chennai.html

ทางเข้า joker123 for a way to play slots games zapslot.net Many members who have just started signing up for the first time. May not yet know the way to play our website Members can play in a variety of ways. Whether playing through our website zapslot.net directly or download and install the application Joker slot on your mobile phone. depending on the aptitude and the needs of members If you have any questions, you can contact our staff directly. We are happy to answer all questions in use 24 hours a day.

This blog is very useful it includes very knowledgeable information. Thank you for sharing this blog with us. If anyone want to experience certificate in Bangalore can call at 9599119376 or can visit https://experiencecertificates.com/experience-certificate-provider-in-bangalore.html

Thank you for sharing this valuable information with us. Keep writing this type of the knowledgeable blogs. If anyone is interested for taking experience certificate in Gurugram.
Dreamsoft is the 20years old consultancy providing experience certificate in Gurugram for your experience certificate in Gurugram you can contact at – 9599119376 or visit our website athttps://experiencecertificates.com/experience-certificate-provider-in-Gurgaon.html

As a tech-driven website, you are doing really well while sharing these frequent posts about Augmented and Virtual reality. Thus, you’ll be a better fit in a leading AR VR app development company like AppSquadz. Check our latest updates now!

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!data science course fees in nagpur

Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites!data science in nagpur








Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you
ccna certification



I bookmarked your website because this site contains valuable information. I am very satisfied with the quality and the presentation of the articles. Thank you so much for saving great things. I am very grateful for this site.data science training in nagpur


Now is the perfect time to plan for the future and now is the time to be happy. I have read this article and if I can I would like to suggest some cool tips or advice. Perhaps you could write future articles that reference this article. I want to know more!data science institute in nagpur

I truly appreciate just perusing the entirety of your weblogs. Just needed to educate you that you have individuals like me who value your work. Unquestionably an extraordinary post. Caps off to you! The data that you have given is exceptionally useful.best data science institute in delhi

I at last discovered extraordinary post here.I will get back here. I just added your blog to my bookmark destinations. thanks.Quality presents is the urgent on welcome the guests to visit the page, that is the thing that this website page is giving.360digitmg-typeerror nonetype object is not subscriptable top cyber security institute in delhi

Thank you for taking the time to publish this information very useful! artificial intelligence training institute in noida

I really loved reading your blog. It was very well authored and easy to understand. Unlike other blogs I have read which are really not that good.Thanks alot! data scientist course in noida

If it's not too much trouble share more like that. data analytics training in noida

I am looking for and I love to post a comment that "The content of your post is awesome" Great work! Data Analytics Course in Chennai

Very good message. I came across your blog and wanted to tell you that I really enjoyed reading your articles.


Data Scientist Course in Bangalore

I want to say thanks to you. I have bookmark your site for future updates. business analytics course in mysore

Hey, great blog, but I don’t understand how to add your site in my rss reader. Can you Help me please? data science course in mysore

Assignment services are of various types and many students are taking Student Assignment Help from experts to get the assignment or projects done at affordable cost. But not every student is capable of taking these services as they think that it is a waste of money. This perception is wrong! Many cost-effective services are available online that ensure that you get the best services at an affordable cost. Visit : https://www.treatassignmenthelp.co.uk/how-to-solve-communication-problems-between-hr-and-ex-pats

Really impressed! Information shared was very helpful Your website is very valuable. Thanks for sharing.. Ufone Package Internet

Amazingly by and large very interesting post. I was looking for such an information and thoroughly enjoyed examining this one. Keep posting. An obligation of appreciation is all together for sharing.business analytics course in gwalior

I surely acquiring more difficulties from each surprisingly more little bit of it data science course in kanpur

This is my first time i visit here and I found so many interesting stuff in your blog especially it's discussion, thank you. data science course in kanpur

Wonderful blog post. This is absolute magic from you! I have never seen a more wonderful post than this one. You've really made my day today with this. I hope you keep this up!
data analytics course in hyderabad

Very informative message! There is so much information here that can help any business start a successful social media campaign!
Data Scientist Course in Bangalore

This is a really very nice post you shared, i like the post, thanks for sharing..
cyber security course malaysia

I recently found a lot of useful information on your website, especially on this blog page. Among the many comments on your articles. Thanks for sharing.

Data Analytics Course in Durgapur

Selenium is the widely used web-based automation testing technology that creates tremendous job opportunities for freshers and experienced candidates. The learning of the Selenium Course in Chennai brings worldwide opportunities to become automation engineers, QA professionals, Selenium Testing Engineer, etc.
Selenium Training in Chennai

It is a subcategory of data analysis. It takes out the hidden patterns from big data. Its main task is to develop models for machine learning that is employed in AI.


The next time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, but I actually thought you have something interesting to say. All I hear is a bunch of whining about something that you could fix if you werent too busy looking for attention.data science course in surat

I was learning about attributes of caller from video tutorials and wanted to download them but the download was not starting because of server error. So , with Surfshark coupon code , i bought a VPN so that i can connect to it's server and download the tutorial video on exploring caller attributes.

All things considered I read it yesterday yet I had a few musings about it and today I needed to peruse it again in light of the fact that it is very elegantly composed. data analytics courses malaysia


It would help if you thought that the data scientists are the highest-paid employees in a company.
data science course in kochi

The first and foremost thing when learning data science is the discovery of data insight. In this aspect, the raw data is analyzed to gather information from raw data.
data science course in gorakhpur

Young boys are you frustrated with your study. Are you unwell with your university and class. Do you feel like you are made with your sweetheart or she is ripped off upon you. www.bhavinee.com

Thanks and keep sharing such valuable updates through your side. You can also visit:
Cetak Brosur
Cetak Kalender Jakarta

Embark on a journey to achieve your professional goals by enrolling in the Data Scientist course in Bangalore. Learn the skills of collecting, extracting, analyzing, preparing, visualizing, and presenting results to make valuable decisions. Master the concepts of data science through hands-on projects and case studies to learn the latest trends and skills in this field.


Data Science Course Fees in Bangalore

Selamat datang dan bermain ke dalam situs TEXAS77, Website TEXAS77 merupakan salah satu situs slot online deposit pulsa terpercaya di indonesia, dengan bermain ke dalam situs texas77 anda akan mendapatkan kemudahan dalam bermain dan juga kemudahan di dalam mendapatkan kemenangan dalam bermain slot online. daftarkan diri anda segera hanya di TEXAS77 ( https://texas77xyz.blogspot.com/2022/07/daftar-website-judi-slot-gacor.html )

A web design course is now more important than ever because of the rise in demand from clients and architects. Students may climb the website architecture ladder and upscale their skills by learning With A2n academy Additionally, they assist you in creating a solid portfolio, which may inspire you to pursue your vocation more seriously.

web designing course

This comment has been removed by the author.

Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
Cetak Spanduk Terdekat
Cetak Banner Online
Cetak Banner Jakarta
Spanduk Online Murah
Cetak Backdrop Online

It would help if you thought that the data scientists are the highest-paid employees in a company.
data science course in kochi

Best in Mumbai … excellent CA faculties who teaches E-filling and returns on actual Government websites which is very important to learn. Laqshya is duly Authorized by various Government & Global institutions for delivering quality training content. Free Placement Support will be given for Lifetime to alumni students. Laqshya is Authorized by Certiport, to conduct Microsoft and Adobe global certification exams and to provide training related to such exams. The demanding nature of Data Science subject is the reason for this. To be an ace in Data Science, you must first master Mathematics, Statistics, Computer Programming, Business Understanding, Problem Solving, Visualization, Reporting, and Storytelling.

An experienced Data Scientist helps to make improved decision-making which benefits the organization. Organizing actions based on trends- A Data Scientist explores and examines the organization’s data. These actions will help to enhance the performance of the institution, better engage customers, and increase profitability.


Thanks for sharing such informative guide on .Net technology. This post gives me detailed information about the .net technology. I am working as trainer in leading IT training academy offering Linux Training Course in Delhi and i use your guide to educate my students

Great Blog
IrelandAssignmentHelper is a leading essay writing service provider, offering professional and reliable assistance to students in Ireland. Our "write my essay" service is specifically designed to cater to the academic needs of students in Ireland, with a team of highly experienced and qualified writers available 24/7 to provide you with the help you need. We offer a wide range of writing services, including custom essays, research papers, term papers, and more, all tailored to your specific requirements.

Our goal is to make academic life easier and more manageable for students in Ireland. With our professional writing services, you can achieve academic success and reach your full potential. So why wait? Contact us today to get started!

I really like your blog thanks for sharing such a informative post, if you want to know about MBA assignments then read this blog A Complete Guide on MBA Assignment Help For UK Students

Menyediakan Jasa Pembuatan Sertifikat TOEFL ITP dan IELTS Resmi Tanpa Test
Jasa Sertifikat TOEFL Asli dan Terpercaya

Nice blog.Thanks for sharing this valuable and useful information.Keep sharing with us .
website designing course in rishikesh

Grab the top data science course online in the convenience of your own home. Flexible schedules, top-notch industry instructors, and painstakingly designed curriculum. Now available!data science course training in faridabad

SAP EHS Training Institute in Noida
If you're looking for a top-notch for SAP EHS training institute in Noida, then look no further than ERP Training Noida. Contact us today to learn more about our courses and how we can help you achieve your career goals.

https://erptrainingn.livejournal.com/421.html

Great post
When it comes to ensuring your academic success, having access to the best college assignment help in Greece is crucial. At Greeceassignmenthelp.com, we have a team of talented writers who specialize in a wide range of academic fields and can provide you with the top-notch writing support you need to excel.

Maltaassignmenthelp.com’s programming assignment writing services are available 24/7, so you can get help anytime you need it. The writers understand that programming assignments can be challenging and stressful, and we are here to help you every step of the way.

I find great pleasure in reading your post, as it is filled with the precise information I was seeking. I am delighted to leave a comment expressing my admiration for the outstanding content you have presented. Your hard work is truly commendable
divorcio en las leyes de nueva jersey

Good article but must be in more precise and understandable manner. Nevertheless, please write articles on data science and machine learning>. Thank you

The best Article that I have never seen before with useful content and very informative.
A Virginia Personal Injury Lawyer is a legal professional who specializes in representing individuals who have suffered injuries or harm as a result of someone else's negligence, recklessness, or intentional actions.

If you're looking for translation services in the UK, MyTranslationServices.com is the answer to your needs. We understand that accurate communication is crucial in today's globalized world, which is why we provide top-notch translation services tailored to your specific requirements. Our team of language experts is equipped with the necessary skills and knowledge to handle diverse projects, ranging from technical documents to marketing materials. When searching for "translation services near me" in the UK, trust MyTranslationServices.com for reliable and efficient translations.

Great blog post! I must say, I'm thoroughly impressed by the quality and depth of information you've provided. This blog post has not only satisfied my curiosity but also sparked my interest to explore further. Thank you for sharing your expertise and expanding my knowledge through this outstanding piece of content!
New Jersey Reckless Driving

Abogado Tráfico Halifax Virginia
The most informative article!Keep sharing the post.

Nice article. I liked very much. All the informations given by you are really helpful for my research. godaddy discount code july 2023 keep on posting your views.

Thank you for sharing such kind of precious information with us.It really useful for many of them like me. Ziyyara Edutech offers comprehensive online tuition for CBSE board students, ensuring academic excellence from the comfort of home.
For more info contact +91-9654271931 or visit Online tuition for cbse board

APTRON Solution Noida is the ultimate destination for AutoCAD Training in Noida. Our comprehensive curriculum, experienced instructors, state-of-the-art facilities, customized learning paths, placement assistance, and flexible learning options make us the top choice for anyone looking to excel in AutoCAD. Join us today, and embark on a journey towards a successful career in drafting and design.

Very nice post here and thanks for it .I like this blog and really good content. Discover the power of phonics education with Ziyyara Edutech! Our online phonics classes, led by expert phonics tutors, are designed to enhance your child's reading and language skills.
visit Phonics tutor near me

Your work is very good, and I appreciate you and hopping for some more informative posts it may help us. Are you searching for the best online home tuition for class 7? Your search’s end here with Ziyyara Edutech's online home tuition. Our Positive Learning Environment and dedicated educators boost academic success.
Book A Free Demo Today visit Tuition at home for 7th standard

Thank you for providing valuable insights on equipment appraisal. Your expertise in evaluating equipment accurately is commendable. As a business owner, I understand the importance of knowing the true value of our assets. Your detailed appraisal services have been instrumental in our decision-making process. I highly recommend your services to anyone in need of professional equipment valuation. Keep up the excellent work! For more info visit: Equipment appraisal

Whether you're a small e-commerce website or a high-risk international business, WebPays is your trusted partner for superior credit card processing. Contact us today to streamline your payment processes and take your business to the next level.

To know more about this visit: https://webpays.com/credit-card-processing.html




Microsoft's Caller Info Attributes in C# 5 offer a powerful tool for creating dynamic, context-aware methods. Delving into this feature allows for precise logging methods, enhancing code clarity. Similarly, when students encounter complexities in programming languages like C#, exploring online resources to exam help online - get exam help online ensures a deeper understanding of such features. Just as Caller Info Attributes add clarity to code, online support can illuminate intricate concepts, aiding students in mastering their programming skills for exams and beyond.

And the vein lines are densely covered. And the testicles are also very realistic. In short, our massive dildos have a better sex experience than real men’s penis. At least our large dildo will not give up halfway.
big realistic dildos

Fill the vagina, and then the female swings her ass. With the escalation of stimulation, finally, enjoy a kind of riding sexual pleasure.href="https://www.sextorso.com/">sex doll torso

THANKS FOR POSTING THIS AMAZING CONTENT. WE PROVIDE LEGAL SERVICES IN NEY JERSY AND MARYLAND. IF YOU NEED ANY LAW RELATED SERVICES, KINDLY VISIT OUR PAGE. WE ARE BEST ATTORNEYS IN VIRGINIA. protection order virginia

The versatility of the content is notable, covering a wide range of themes and subjects with depth and expertise.

Pink Marble in Sharjah

winner55 ทางเข้า สล็อต ทางเว็บไซต์ก็ได้ขยายตลาดพร้อมปรับปรุงระบบต่างๆให้ดียิ่งขึ้นอย่างสม่ำเสมอ pg slot ทำให้การเจริญเติบโตของเว็บไซต์อยู่ในระดับต้นแล้วก็ยอดเยี่ยม

pg สล็อต คนไหนเป็นแฟนคลับเกมสล็อต เชื่อเลยว่าบางทีอาจจะไม่มีผู้ใดที่จะไม่เคยทราบและไม่เคยใช้บริการเกมสล็อต PG SLOT ด้วยเหตุว่าค่ายพีจีสล็อต ถือได้ว่าเป็นค่ายยักษ์ใหญ่

ค่าย pg ทางเข้า มือถือ ใหม่ล่าสุด ความสนุกสนานร่าเริงรวมทั้งตื่นเต้นที่สุดในทางเกมคาสิโนออนไลน์ PG ปากทางเข้าโทรศัพท์มือถือใหม่ปัจจุบัน! ในปัจจุบันที่เทคโนโลยีก้าวล้ำขึ้นอย่างเร็ว

Selenium Training in Chennai
Selenium Training in Bangalore
Selenium Training in Coimbatore
Best Selenium Training in Bangalore
Selenium Training Institute in Bangalore

"Exploring Caller Info Attributes has been an enlightening journey into understanding the intricacies of caller information retrieval. This comprehensive guide provides invaluable insights into leveraging caller attributes effectively, empowering developers to enhance user experiences and optimize applications for seamless interaction. From identifying caller origins to tailoring responses based on contextual data, this resource offers practical techniques and best practices for harnessing caller information to its fullest potential. Whether you're a seasoned developer or just diving into the realm of telephony, this exploration is an indispensable asset for anyone seeking to unlock the power of caller data in their projects."

Nueva Jersey Violencia Domestica Acto

«Oldest ‹Older   201 – 331 of 331   Newer› Newest»

Post a Comment